Баг деления на ноль в FFmpeg нашли вайб-фаззером
Разработчики нашли баг деления на ноль в FFmpeg с помощью фаззера, написанного методом вайб-кодинга. Что это значит для безопасности open source.
Фаззер на «вайбах» нашёл баг в одном из самых популярных медиафреймворков мира
Команда исследователей обнаружила ошибку деления на ноль (division by zero) в FFmpeg — и сделала это с помощью инструмента для фаззинга, написанного методом вайб-кодинга (vibe coding). Баг был задокументирован в официальном трекере FFmpeg под номером #24290 и уже попал в обсуждение на Hacker News. История примечательна не только самим багом, но и способом его нахождения: AI-ассистированный, почти непроверенный вручную код нашёл реальную уязвимость в проекте с многолетней историей аудитов.
Что такое фаззинг и почему это важно
Fuzzing (фаззинг) — это техника тестирования безопасности, при которой программе подаются случайные или намеренно искажённые входные данные в поисках ошибок и сбоев. Суть метода — случайное или систематическое искажение входных данных программы, чтобы спровоцировать её падение.
FFmpeg использует мощную инфраструктуру фаззинга для выявления повреждений памяти, падений и неопределённого поведения во всех своих библиотеках. Эта система интегрирована с Google OSS-Fuzz и предоставляет таргетированные инструменты тестирования.
Однако даже многолетнее покрытие фаззингом не гарантирует полного охвата кода. Лучшие цели для фаззинга — не те, которые никто не тестировал, а те, которые все считают протестированными, хотя на самом деле это не так.
Division by zero: чем опасен этот тип ошибки
Division by zero (деление на ноль) — классическая ошибка в низкоуровневом коде на C/C++. Уязвимость такого типа возникает из-за дефекта в исходном коде, связанного с некорректной обработкой делителя. Злоумышленник может спровоцировать ошибку деления на ноль, что приводит к атаке типа «отказ в обслуживании» (DoS). Это может привести к краху приложения или его нестабильной работе, делая его неотзывчивым или вызывая неожиданное завершение.
Как «вайб-фаззер» нашёл то, что пропустили традиционные инструменты
Авторы задокументированного бага создали фаззер с минимальным ручным написанием кода — преимущественно через AI-промпты. Подобный подход становится всё более популярным на фоне роста интереса к автоматизированному поиску уязвимостей.
Этот случай вписывается в более широкий тренд: в июне 2026 года стартап depthfirst сообщил, что его автономный AI-агент обнаружил 21 уязвимость нулевого дня в FFmpeg, проанализировав около 1,5 миллиона строк C-кода примерно за $1 000.
AI-ассистированный статический анализ кода уже позволяет находить в FFmpeg различные уязвимости безопасности памяти, которые традиционные инструменты пропускают.
«Даже проекты с многолетней историей фаззинга имеют огромные пробелы в покрытии» — вывод из исследования фаззинга FFmpeg-аудио-энкодеров
Как это работало: от промпта до краша
graph TD
A[Промпт разработчика] -->|LLM генерирует код| B[Вайб-фаззер]
B -->|Подаёт случайные данные| C[FFmpeg]
C -->|Некорректный делитель| D[Division by Zero]
D -->|Краш / DoS| E[Баг #24290 задокументирован]
E -->|Репорт в трекер| F[Исправление патчем]
Сравнение подходов к поиску уязвимостей в FFmpeg
| Метод | Стоимость | Найдено багов | Скорость |
|---|---|---|---|
| Ручной аудит | Высокая ($$$) | Немного | Медленно |
| Традиционный фаззинг (OSS-Fuzz) | Низкая | Много, но пробелы в покрытии | Дни–недели |
| AI-агент (depthfirst) | ~$1 000 | 21 zero-day | Часы |
| Вайб-фаззер (issue #24290) | Минимальная | 1 confirmed bug | Быстро |
Парадокс вайб-кодинга в безопасности
Сама по себе концепция вайб-кодинга несёт риски: AI-модели вносят ошибки примерно с той же частотой, что и неопытный разработчик без ревью, но генерируют код в сотни раз быстрее. Тестирование показывает, что около четырёх из десяти AI-сгенерированных программ содержат эксплуатируемую уязвимость.
Однако в данном случае инструмент, написанный методом вайб-кодинга, сыграл на руку защитникам, а не атакующим. Это демонстрирует двойственность подхода: тот же метод, который порождает уязвимый код в продакшене, может служить мощным инструментом для поиска ошибок в чужом коде.
Что дальше
История с вайб-фаззером в FFmpeg — ещё одно подтверждение: граница между «настоящим» и «ненастоящим» инструментом для безопасности стирается. Эксперты рекомендуют относиться к AI-выводу как к черновику джуниора: писать тесты, фаззить критические входы, проверять модели угроз — и только потом деплоить.
FFmpeg остаётся одной из самых критически важных open source библиотек в мире. FFmpeg присутствует повсюду — в браузерах, стриминговых платформах, системах видеонаблюдения, облачной инфраструктуре, Python-пакетах, контейнерных образах и IoT-устройствах. Это делает каждый найденный баг — даже кажущийся «простым» division by zero — потенциально значимым для безопасности всей экосистемы.