Vulnerabilidade crítica no FFmpeg permite transformar arquivos de mídia em vetores de ataque
Uma vulnerabilidade crítica foi divulgada no decodificador MagicYUV do FFmpeg, permitindo que atacantes transformem arquivos de mídia aparentemente inofensivos em vetores de ataque e, em alguns cenários, alcancem execução remota de código (RCE). A falha, rastreada como CVE-2026-8461 e apelidada de "PixelSmash", é uma escrita fora dos limites do heap no componente libavcodec do FFmpeg, com pontuação CVSS de 8,8 (Alta).
Descoberta e escopo
De acordo com a Pesquisa de Segurança da JFrog, um único arquivo AVI, MKV ou MOV elaborado é suficiente para derrubar aplicativos ou, com uma cadeia de exploração refinada, executar comandos arbitrários no sistema subjacente. O FFmpeg é um dos frameworks de processamento de mídia mais implantados e é embutido em inúmeros aplicativos, incluindo players de vídeo desktop, geradores de miniaturas Linux, servidores de mídia auto-hospedados, pipelines de transcodificação em nuvem e até pilhas de processamento de dados de IA/ML.
Como o decodificador MagicYUV está habilitado por padrão nas compilações upstream do FFmpeg e na maioria das principais distribuições Linux, o bug se propaga silenciosamente para qualquer projeto que vincule o libavcodec. A JFrog confirmou derrubadas contra aplicativos como Kodi, mpv, ffmpegthumbnailer, Jellyfin, Emby, Nextcloud, Immich, PhotoPrism e OBS Studio.
Análise técnica detalhada
A causa raiz reside na forma como o decodificador MagicYUV lida com fatias de vídeo e alturas de plano de croma. O MagicYUV usa fatias divididas horizontalmente por quadro, e para formatos subsampleados como YUV420P, o decodificador deve traduzir alturas de fatia de luma em alturas de fatia de croma. Devido a uma incompatibilidade de arredondamento entre o alocador de quadros e o decodificador, um valor slice_height controlado pelo atacante pode fazer com que o FFmpeg escreva uma linha completa de dados de croma além do final de um buffer alocado no heap.
No proof-of-concept, um fluxo de mídia elaborado define slice_height como um valor ímpar, levando a um acúmulo de linhas fora de um que empurram escritas diretamente para estruturas de heap adjacentes. Criticamente, as escritas transbordantes pousam em uma estrutura AVBuffer que o FFmpeg usa para buffers de quadro com contagem de referência. Ao elaborar um payload malicioso, um atacante pode sobrescrever estruturas de memória do FFmpeg, causando uma chamada a system() com um comando controlado pelo atacante e habilitando a execução remota de código.
Impacto e alcance
A superfície de ataque é ampla e muitas vezes "quase zero-clique". Em desktops, simplesmente navegar até uma pasta pode acionar a geração de miniaturas via ffmpegthumbnailer e ativar a falha. Em servidores, plataformas de mídia como Jellyfin, Emby e Nextcloud invocam automaticamente o ffmpeg ou ffprobe para gerar pré-visualizações e metadados quando novos arquivos aparecem ou são visualizados. A JFrog também alerta que vetores semelhantes existem em pipelines de mídia em nuvem e ambientes de IA/ML que usam o FFmpeg para decodificar vídeo fornecido pelo usuário.
Para explorar o PixelSmash, um atacante só precisa entregar o arquivo de mídia elaborado a qualquer aplicativo que decodifique vídeo usando o FFmpeg com o MagicYUV habilitado. Nenhuma autenticação ou privilégios elevados são necessários além da capacidade de fazer upload, compartilhar ou colocar um arquivo para processamento automático. Isso torna configurações comuns, como clientes de torrent escrevendo diretamente em diretórios de biblioteca de mídia, especialmente perigosas.
Medidas de mitigação recomendadas
A vulnerabilidade foi corrigida em uma versão corrigida do FFmpeg (por exemplo, 8.1.2 ou posterior com as verificações de limites do MagicYUV aplicadas), e os usuários são fortemente instados a atualizar suas compilações do FFmpeg o mais rápido possível. Como mitigação temporária, administradores podem reconstruir o FFmpeg com o decodificador MagicYUV desabilitado ou aplicar o patch mínimo que rejeita valores inválidos de slice_height antes da decodificação.
Porque este é um problema de cadeia de suprimentos em uma biblioteca fundamental, projetos que incorporam o FFmpeg devem auditar suas compilações, reduzir codecs habilitados sempre que possível e adotar estratégias de lista de permissões semelhantes à configuração mínima de decodificador do Plex para limitar o raio de explosão no futuro.
Perguntas frequentes
Qual é a gravidade da vulnerabilidade?
A vulnerabilidade possui pontuação CVSS de 8,8, classificada como alta, devido à capacidade de execução remota de código via arquivos de mídia.
Quais aplicativos são afetados?
Qualquer software que utilize o FFmpeg com o decodificador MagicYUV habilitado, incluindo Jellyfin, Nextcloud, Kodi e players de vídeo.
É necessário reiniciar os serviços?
Sim, após a atualização do FFmpeg, os serviços que utilizam a biblioteca devem ser reiniciados para aplicar as correções.
Como mitigar sem atualizar?
Desabilite o decodificador MagicYUV na compilação do FFmpeg ou aplique um patch de validação de entrada antes do processamento.