Фаззер на базе вибекода нашёл деление на ноль в 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 (исключение целочисленного деления на ноль).
  1. aeyes

    Патч для этого был отправлен в апреле: https://lists.ffmpeg.org/archives/list/[email protected]...

    И да, обсуждение этого было ещё в 2024 году.

  2. dabinat

    Интересно, как ИИ может одновременно повышать и понижать качество программного обеспечения. Очень легко отправить ИИ-агента на открытый поиск багов, и если он потратит кучу времени и усилий и ничего не найдёт, ничего страшного. Время гораздо важнее для разработчика-человека, который получает зарплату.

  3. driverdan

    README этого фаззера — полная каша из ИИ-мусора. https://github.com/daedalus/fuzzer/

  4. justonenote

    Что касается конкретики этого бага и того, является ли он полезным вектором атаки, это не удивительно ни в малейшей степени.

    Моё текущее мнение об LLM: они сверхчеловечны в том смысле, что им не свойственна усталость, у них есть почти полное знание по всем темам, которые известны людям, по крайней мере публично, и тот факт, что можно с помощью вибекода собрать харнесс для поиска багов в знаменитой сложной C-кодовой базе, — это уровень стажёра, и вряд ли это новость.

    Умные начинающие блэкхэты будут целить в tmux следующим, используя и лёгкие джейлбрейки LLM, и лёгкие атаки на цепочку поставок (результаты веб-поиска), и LPE в определённых средах, которые раньше не были особенно полезны, но с агентами, работающими в автоматическом режиме часами, становятся очень ценной отправной точкой. Я не уверен в качестве кода tmux, но знаю, что он написан на C и очень сложен, и совсем не предназначен для защиты от такого рода угроз.

  5. cptroot

    Это не настоящий баг в FFmpeg. Это демонстрация того, что если вы контролируете пользовательский модуль AVIO, можно уронить FFmpeg, передав ему плохие данные.

  6. ks2048

    Несомненно, фаззеры (вибекодные или иные) могут быть мощными, но нельзя ли просто пометить все "/" как потенциальные ошибки деления на ноль?

    Думаю, иногда разработчики считают, что "знают", что какая-то переменная не будет нулём, но если это не проверено явно или компилятором, этому не стоит доверять.

  7. 1saadcodes

    Мне кажется очень крутым, что фаззер, собранный на коленке, реально нашёл баг в ffmpeg

  8. BikiniPrince

    Забавно, я знаю, что задеваю что-то в разработчике gStreamer, но Fable сходит с ума. У меня лишь смутное представление, где может скрываться проблема.

    На следующей неделе я подам заявку на кибер и подозреваю, что найду что-то похожее.

    Прямо сейчас это просто раздражает, и спасибо, что получить доступ к киберу от OpenAI было намного проще.

Ещё за этот день

2026-08-27