Vibecoded fuzzer finds divide-by-zero bug in FFmpeg's VPK demuxer
We found a division by zero bug in FFmpeg with a vibecoded fuzzer
A developer's fuzzer, built with a 'vibecoded' approach, discovered a divide-by-zero bug in FFmpeg's VPK demuxer (libavformat/vpk.c). A crafted 21-byte input can crash any FFmpeg-based application that opens a malicious .vpk file, causing a SIGFPE (integer divide-by-zero). The root cause is an unguarded division by par->ch_layout.nb_channels in vpk_read_packet, which can be zero due to a mismatch between probe and packet-read data. The issue is a reliable denial-of-service, not memory corruption. A simple guard is suggested to return an error instead of crashing.
The divide-by-zero is a denial-of-service primitive.
- aeyes
A patch for this was submitted in April: https://lists.ffmpeg.org/archives/list/ffmpeg-devel@ffmpeg.o...
Edit: And there was discussion about this back in 2024 as well
- dabinat
It’s interesting how AI may both raise and lower the quality of software. It’s very easy to send an AI agent on an open-ended bug hunt, and if it wastes a bunch of time and effort and finds nothing, no big deal. Time is much more important for a human developer with a salary.
- justonenote
Whatever about the specifics of this bug and whether its a useful vector, this is not surprising even in the slightest?
My current opinion on LLMs is that they are superhuman in that they lack fatigue, they have close to full knowledge across all subjects which are known to humans at least publicly, and the fact that you can vibe code a harness to look for bugs in a famously complicated C codebase is intern level stuff and hardly news.
Smart aspiring blackhats will be targeting tmux next, both with light llm jailbreaks, light supply chain attacks (web search results) and LPEs within certain environments which weren't particularly useful before but with agents running on auto mode for hours become a very valuable springboard. I'm not sure on the quality of tmux code but I know its written in C and is very complex and was not at all designed to defend against this type of threat.
- cptroot
This is not a real bug in FFmpeg. This is a demonstration that if you control a custom AVIO module it is possible to crash FFmpeg by giving it bad data.
- ks2048
No doubt fuzzers (vibecoded or otherwise) can be powerful, but can't you just mark all "/" as potential divide by zero errors?
I guess sometimes developers think they "know" some variable won't be zero, but unless it checked explicitly or by the compiler, that shouldn't be trusted.
- BikiniPrince
Funny thing, I know I'm brushing up against something in gStreamer developer, but Fable flips out. I have only a loose idea where the issue might be lurking.
Next week, I'll apply for the cyber and I suspect I'll find something similar.
Right now, it's just annoying and thanks the OpenAI cyber was much easier to get access to.
- 1saadcodes
I find it pretty cool that a fuzzer thrown together this way actually found a bug in ffmpeg
- skupig
Am I missing something? Who cares? This isn't a security issue, it's just an unexploitable crash on bad data.