PixelSmash: в FFmpeg нашли 16-летнюю уязвимость, позволяющую выполнить код через видеофайл
В медиафреймворке FFmpeg обнаружили 16-летнюю уязвимость PixelSmash. Специально сформированный видеофайл открывает удалённое выполнение кода на сервере или ПК. Разбираем, как проверить свои системы и что делать.
Новости TprogerЕсли ваше приложение обрабатывает видео через FFmpeg — проверьте его сейчас. Исследователи безопасности JFrog раскрыли уязвимость PixelSmash, которая пролежала в коде 16 лет и позволяет выполнить произвольный код, просто подсунув жертве вредоносный видеофайл.
PixelSmash — это критическая уязвимость в декодере MagicYUV медиафреймворка FFmpeg. Она получила идентификатор CVE-2026-8461 и оценку CVSS 8.8. Ошибка представляет собой запись за пределы выделенной памяти (heap out-of-bounds write) и затрагивает все приложения, которые используют FFmpeg для декодирования видео.
Ключевые выводы
Уязвимость CVE-2026-8461 в FFmpeg оценена в CVSS 8.8.
Баг находился в коде 16 лет и затрагивает декодер MagicYUV.
Для атаки достаточно специально сформированного видеофайла — без прав и аутентификации.
Под угрозой плееры, медиасерверы, мессенджеры, облачные транскодеры и бытовые NAS.
Проверить систему можно командой ffmpeg -decoders | grep magicyuv.
Где опасность
Уязвимость опасна именно масштабом. MagicYUV включён по умолчанию во всех протестированных дистрибутивах — Ubuntu, Debian, Fedora, Arch, Alpine — до FFmpeg 9.0. Проблема проявляется не только в видеоплеерах, но и в файловых менеджерах, генерирующих миниатюры, медиасерверах, мессенджерах и облачных транскодерах.
Для эксплуатации не нужны ни права, ни аутентификация, ни предварительный доступ к системе. Достаточно, чтобы приложение попыталось декодировать вредоносный AVI, MKV или MOV размером около 50 КБ. Исследователи JFrog показали полную цепочку атаки: удалённое выполнение кода на Jellyfin через автоматическое сканирование библиотеки и на Nextcloud через провайдер превью видео.
- Десктоп: Kodi, mpv и другие плееры; миниатюры в файловых менеджерах.
- Серверы: Jellyfin, Emby, Nextcloud, Immich.
- Мессенджеры: Slack, Discord, Telegram.
- Облако: AWS MediaConvert, Cloudflare Stream и другие транскодинговые конвейеры.
- IoT и NAS: Synology, QNAP, smart TV и любые устройства, генерирующие превью.
Как проверить
Проверить наличие уязвимого декодера можно одной командой. Если в выводе есть строка VFS..D magicyuv, ваш FFmpeg подвержен уязвимости.
В случае положительного результата обновитесь до версии с патчем или пересоберите FFmpeg без декодера.
Как защититься
- Обновите FFmpeg до версии, содержащей исправление.
- Если обновление невозможно, пересоберите FFmpeg с флагом
--disable-decoder=magicyuv. - На серверах отключите автоматическую обработку загружаемых видео, где это не критично для бизнеса.
- Проверьте все устройства с FFmpeg: NAS, медиасерверы, IoT и контейнеры.
JFrog опубликовала минимальный патч для libavcodec/magicyuv.c. Он отклоняет искажённые значения slice_height, которые вызывают запись за пределы буфера. Корректный кодировщик MagicYUV всегда выдаёт выровненные значения, поэтому патч не ломает легитимные файлы.
FAQ
Часто задаваемые вопросы
Что такое PixelSmash?
PixelSmash — уязвимость CVE-2026-8461 в декодере MagicYUV медиафреймворка FFmpeg. Она позволяет выполнить произвольный код или вызвать отказ в обслуживании при обработке специально сформированного видеофайла.
Какие версии FFmpeg уязвимы?
Уязвимы сборки FFmpeg до версии 9.0 с включённым декодером MagicYUV. Исследователи подтвердили наличие декодера во всех проверенных дистрибутивах: Ubuntu, Debian, Fedora, Arch и Alpine.
Что такое MagicYUV?
MagicYUV — формат видеокодека с быстрым декодером, который входит в состав FFmpeg/libavcodec. Он включён по умолчанию и используется многими приложениями для декодирования видео.
Как проверить свою систему?
Выполните команду ffmpeg -decoders 2>/dev/null | grep magicyuv. Если в выводе присутствует VFS..D magicyuv, значит декодер активен и система подвержена уязвимости.
Что делать, если обновление невозможно?
Пересоберите FFmpeg с флагом --disable-decoder=magicyuv. Это полностью отключит уязвимый декодер и закроет вектор атаки.
Выводы
PixelSmash — очередное напоминание о том, что foundation-библиотеки вроде FFmpeg работают под капотом огромного числа приложений. Один баг в кодеке, пролежавший 16 лет, одновременно угрожает десктопным плеерам, облачным транскодерам и бытовым NAS. Лучшая защита — своевременное обновление и аудит зависимостей.
Источник: JFrog Security Research / InfoQ.