Google помогла устранить более тысячи проблем в исходном коде проекта FFmpeg

Google помогла устранить множество проблем в исходном коде проекта FFmpeg

Корпорация Google поделилась деталями проекта, связанного с поиском и устранением ошибок в открытом мультимедиа пакете FFmpeg, который, как оказалось, активно используется внутри корпорации и в её продуктах, включая YouTube и Google Chrome.

В течение последних двух лет для процесса тестирования кодовой базы были задействованы 500 компьютерных ядер, а также исходный мультимедиа материал, собранный со всего интернета, включая файлы из самого проекта, находящиеся на сайте samples.mplayerhq.hu и собственный набор для тестирования регрессий проекта FFmpeg под названием FATE.

Тестирование заключалось в изменении исходных файлов и добавлении разнообразного случайного мусора с тем, чтобы выявить проблемы в функциях, занятых обработкой исходного материала для кодирования и декодирования - в компьютерной среде этот способ обыкновенно называется fuzzing. Другой способ тестирования - это прямой вызов функций библиотеки с не совсем корректными данными, чтобы проверить надёжность обработки подобной информации. Впоследствии, проект был расширен до 2000 ядер, а методы мутации исходных материалов были сделаны более разнообразными, пишет opennet.ru.

В ходе работы над проектом было выявлено более 1120 ошибок, которые уже устранены. Найденные ошибки можно разделить на следующие классы:

  • Разыменование NULL-указателей;
  • Неверные вычисления указателей, приводящие к SIGSEGV из-за использования "чужой" памяти;
  • Чтение и запись за пределы стека, кучи и массивов;
  • Неверные вызовы free(), а также двойное освобождение указателей;
  • Ошибки деления;
  • Ошибки assert();
  • Использование неинициализированной памяти.

Google таким же образом помогла форку FFmpeg, libav, в котором было устранено 413 ошибок.

В Exim нашли критическую RCE-уязвимость: почтовики лучше обновить срочно

В популярном почтовом сервере Exim обнаружили критическую уязвимость CVE-2026-45185. При определённых условиях она позволяет удалённому атакующему без аутентификации выполнить произвольный код на сервере. Вполне себе неприятный сценарий, поэтому лучше не затягивать с установкой патча.

Проблема затрагивает версии Exim с 4.97 по 4.99.2, если они собраны с библиотекой GnuTLS и рекламируют STARTTLS вместе с CHUNKING. Сборки на OpenSSL, по имеющимся данным, не страдают — редкий случай, когда можно выдохнуть, но только после проверки конфигурации.

Суть бага — use-after-free во время завершения TLS-сессии при обработке SMTP-трафика BDAT. Exim освобождает TLS-буфер передачи, но затем продолжает использовать устаревшие callback-ссылки, которые могут писать данные уже в освобождённую область памяти. А дальше начинается классика жанра: повреждение памяти, удалённое выполнение кода и очень плохой день у администратора.

Exim широко используется на Linux- и Unix-серверах, в корпоративных почтовых системах, а также в Debian- и Ubuntu-based дистрибутивах, где он исторически часто выступал почтовым сервером по умолчанию.

По данным XBOW, баг был передан мейнтейнерам Exim 1 мая, подтверждение пришло 5 мая, а ещё через три дня уведомили затронутые Linux-дистрибутивы. Исправление уже выпущено в Exim 4.99.3.

Отдельная перчинка — попытка собрать PoC с помощью ИИ. XBOW устроила семидневное соревнование между своей автономной системой XBOW Native и человеком-исследователем, которому помогала большая языковая модель. ИИ смог собрать рабочий эксплойт для упрощённой цели без ASLR и с бинарником non-PIE. Во втором подходе LLM добралась до эксплуатации на системе с ASLR, но всё ещё без PIE.

Победил, впрочем, человек. Исследователь признал, что ИИ сильно ускоряет разбор незнакомого кода, сборку файлов и проверку направлений атаки, но до самостоятельной эксплуатации реального софта без человеческого руля моделям ещё надо подрасти.

RSS: Новости на портале Anti-Malware.ru