Фаззер на базе вибекода нашёл деление на ноль в FFmpeg
We found a division by zero bug in FFmpeg with a vibecoded fuzzer
Фаззер, созданный с помощью вибекода, обнаружил уязвимость в FFmpeg: деление на ноль в демультиплексоре VPK (libavformat/vpk.c:89). Входной файл размером 21 байт вызывает SIGFPE в любом приложении на базе FFmpeg, открывающем вредоносный .vpk-файл. Проблема в том, что vpk_read_packet делит last_block_size на nb_channels без проверки на ноль. Предлагается добавить проверку и вернуть AVERROR_INVALIDDATA.
Оба деления — size и skip — выполняются на par->ch_layout.nb_channels; когда nb_channels равен нулю, CPU вызывает SIGFPE (исключение целочисленного деления на ноль).
- aeyes
Патч для этого был отправлен в апреле: https://lists.ffmpeg.org/archives/list/[email protected]...
И да, обсуждение этого было ещё в 2024 году.
- dabinat
Интересно, как ИИ может одновременно повышать и понижать качество программного обеспечения. Очень легко отправить ИИ-агента на открытый поиск багов, и если он потратит кучу времени и усилий и ничего не найдёт, ничего страшного. Время гораздо важнее для разработчика-человека, который получает зарплату.
- driverdan
README этого фаззера — полная каша из ИИ-мусора. https://github.com/daedalus/fuzzer/
- justonenote
Что касается конкретики этого бага и того, является ли он полезным вектором атаки, это не удивительно ни в малейшей степени.
Моё текущее мнение об LLM: они сверхчеловечны в том смысле, что им не свойственна усталость, у них есть почти полное знание по всем темам, которые известны людям, по крайней мере публично, и тот факт, что можно с помощью вибекода собрать харнесс для поиска багов в знаменитой сложной C-кодовой базе, — это уровень стажёра, и вряд ли это новость.
Умные начинающие блэкхэты будут целить в tmux следующим, используя и лёгкие джейлбрейки LLM, и лёгкие атаки на цепочку поставок (результаты веб-поиска), и LPE в определённых средах, которые раньше не были особенно полезны, но с агентами, работающими в автоматическом режиме часами, становятся очень ценной отправной точкой. Я не уверен в качестве кода tmux, но знаю, что он написан на C и очень сложен, и совсем не предназначен для защиты от такого рода угроз.
- cptroot
Это не настоящий баг в FFmpeg. Это демонстрация того, что если вы контролируете пользовательский модуль AVIO, можно уронить FFmpeg, передав ему плохие данные.
- ks2048
Несомненно, фаззеры (вибекодные или иные) могут быть мощными, но нельзя ли просто пометить все "/" как потенциальные ошибки деления на ноль?
Думаю, иногда разработчики считают, что "знают", что какая-то переменная не будет нулём, но если это не проверено явно или компилятором, этому не стоит доверять.
- 1saadcodes
Мне кажется очень крутым, что фаззер, собранный на коленке, реально нашёл баг в ffmpeg
- BikiniPrince
Забавно, я знаю, что задеваю что-то в разработчике gStreamer, но Fable сходит с ума. У меня лишь смутное представление, где может скрываться проблема.
На следующей неделе я подам заявку на кибер и подозреваю, что найду что-то похожее.
Прямо сейчас это просто раздражает, и спасибо, что получить доступ к киберу от OpenAI было намного проще.