Критическая уязвимость в FFmpeg позволяет выполнять код через вредоносные медиафайлы

FFmpeg

В FFmpeg обнаружена критическая уязвимость, связанная с повреждением памяти в декодере MagicYUV. Ошибка, получившая идентификатор CVE-2026-8461 и неофициальное название PixelSmash, позволяет удалённо выполнять произвольный код при обработке специально сформированных медиафайлов. Проблеме присвоен базовый показатель CVSS 8,8 из 10, что относит её к категории высокоопасных.

Уязвимость CVE-2026-8461

Уязвимость была выявлена исследователями из JFrog Security Research. Её причина - выход за границы выделенной области кучи (heap out-of-bounds write) в библиотеке libavcodec, входящей в состав FFmpeg. Аномалия возникает в ходе вычислений высоты слайсов при декодировании формата MagicYUV. Злоумышленник может спровоцировать её, встроив вредоносные значения slice-height в контейнеры AVI, MKV или MOV. Из-за несоответствия между выделенным буфером и логикой декодирования происходит переполнение на одну строку, что позволяет записать данные за пределами отведённого участка памяти.

Последствия эксплуатации потенциально серьёзны: перезапись соседних структур кучи, таких как объект AVBuffer, даёт контроль над указателями на функции. В отчёте исследователей описан сценарий, в котором указатель free() перенаправляется на system(), что позволяет выполнять команды атакующего. Для успешной атаки не требуется аутентификация или взаимодействие с пользователем - достаточно, чтобы целевое приложение обработало вредоносный файл.

FFmpeg - широко распространённый фреймворк для работы с мультимедиа. Он используется в десктопных приложениях, облачных пайплайнах и встраиваемых системах. Соответственно, уязвимость затрагивает значительную часть программной экосистемы. Векторами атаки могут быть открытие файла в медиаплеере, загрузка на медиасерверы вроде Jellyfin или Nextcloud, а также генерация миниатюр при просмотре каталогов. Исследователи продемонстрировали успешную удалённую эксплуатацию CVE-2026-8461 на этих серверах: достаточно было загрузить скомпрометированный видеофайл размером около 50 КБ, чтобы в процессе автоматической обработки получить обратную оболочку (reverse shell) под учётной записью службы.

"PixelSmash подчёркивает риски, связанные с цепочками поставок программного обеспечения, - отмечается в бюллетене JFrog. - Одна уязвимость в широко используемой зависимости может затронуть сотни приложений". FFmpeg интегрирован не только в мультимедийные платформы, но и в пайплайны искусственного интеллекта и облачные сервисы, что делает поверхность атаки крайне обширной.

Для определения уязвимости администраторам достаточно проверить, активен ли декодер MagicYUV, выполнив команду: ffmpeg -decoders 2>/dev/null | grep magicyuv. Если в выводе присутствует "magicyuv", система, скорее всего, уязвима (речь идёт о версиях FFmpeg до 9.0). В качестве первоочередной меры защиты рекомендуется обновить FFmpeg до версии, содержащей исправление. Если обновление невозможно, временным решением станет отключение декодера на этапе сборки: ./configure --disable-decoder=magicyuv && make && make install. Кроме того, опубликован минимальный патч, проверяющий корректность значений slice-height, что блокирует использование некорректных входных данных.

Распространённость FFmpeg и простота эксплуатации делают PixelSmash серьёзной угрозой. Разработчикам и операторам систем, использующих этот фреймворк, следует незамедлительно применить обновление. Игнорирование проблемы может привести к компрометации серверов, утечке данных и другим последствиям, особенно в корпоративной и облачной среде, где автоматическая обработка медиафайлов встречается повсеместно.

Ссылки

Комментарии: 0