MagnoSec
Líneas de código de FFmpeg con pixels de video corruptos representando vulnerabilidad PixelSmash de ejecución remota de código

MagnoSec Blog

PixelSmash en FFmpeg: RCE a Través de un Archivo de Video en el Decodificador Más Usado del Mundo

Por Equipo MagnoSec4 min de lectura

El contexto: qué ha pasado y por qué importa

FFmpeg es el decodificador de video más utilizado del mundo. Está en VLC, en Jellyfin, en Kodi, en OBS Studio, en Chrome, en Firefox, en las cámaras de seguridad, en los servidores de streaming, en las aplicaciones de edición de video y en prácticamente cualquier software que reproduzca, convierta o procese archivos multimedia. Es código abierto, está escrito en C, y procesa formatos de archivo complejos que contienen datos binarios de fuentes potencialmente no confiables. PixelSmash —la vulnerabilidad corregida esta semana— permite a un atacante ejecutar código arbitrario en un servidor o dispositivo simplemente haciendo que procese un archivo de video malicioso. No hace falta que el usuario abra el archivo manualmente: basta con que un servidor multimedia como Jellyfin lo indexe automáticamente al escanear una biblioteca de contenido.

Antecedentes y evolución de la amenaza

El mecanismo técnico de PixelSmash reside en el decodificador de un formato de video específico donde un error de validación de límites en la función de descompresión de frames permite un desbordamiento de búfer controlable por el atacante. Al proporcionar un archivo de video con dimensiones o parámetros de compresión manipulados, el atacante puede escribir datos arbitrarios más allá del espacio reservado en memoria, sobrescribiendo direcciones de retorno o estructuras de control para redirigir la ejecución del programa hacia código controlado por el atacante. La explotación es fiable porque los datos que desbordan el búfer son parte del propio archivo de video: el atacante controla exactamente qué se escribe y dónde. Es la clase de vulnerabilidad que los proyectos en C han estado combatiendo durante décadas y que, como demuestra PixelSmash, sigue apareciendo en el código más revisado del ecosistema open source.

Así funciona: los detalles técnicos

El vector de ataque más preocupante no es el usuario que descarga una película pirata: es el servidor que procesa contenido automáticamente. Jellyfin, el servidor multimedia open source usado por miles de organizaciones y particulares, escanea las bibliotecas de contenido en busca de nuevos archivos y genera automáticamente thumbnails, extrae metadatos y transcodifica formatos. Si un atacante consigue que un archivo de video malicioso llegue a una carpeta que Jellyfin monitoriza —mediante una subida de archivos en una aplicación web vulnerable, un recurso compartido de red mal configurado, o simplemente ingeniería social—, el servidor procesará el archivo automáticamente y ejecutará el código del atacante. Lo mismo aplica a plataformas de streaming, servicios de conversión de video y aplicaciones de vigilancia que procesan feeds de cámaras IP.

Impacto real en organizaciones y empresas

El impacto potencial en servidores de streaming y plataformas de video es significativo. Un atacante que obtiene ejecución de código en un servidor Jellyfin o similar accede a todas las bibliotecas multimedia, credenciales de usuarios, configuraciones de red y potencialmente a los sistemas de almacenamiento conectados (NAS, SAN) donde residen los archivos de video. Si el servidor está expuesto a internet —como es común en despliegues de Jellyfin para acceso remoto—, el ataque no requiere acceso previo a la red interna. Un archivo de video aparentemente normal, subido a través de la interfaz web o descargado automáticamente por un feed RSS de contenido, compromete el servidor antes de que nadie haya intentado reproducirlo.

Cómo MagnoSec aborda esta amenaza en sus auditorías

En MagnoSec, las auditorías de infraestructura incluyen servidores multimedia y plataformas de procesamiento de contenido como vectores de ataque que muchas organizaciones no consideran. Un servidor Jellyfin en una red corporativa puede parecer inofensivo —'es para que los empleados vean contenido de formación'—, pero desde el punto de vista de un atacante es un servidor Linux que procesa archivos binarios de fuentes no confiables, a menudo con decodificadores escritos en C que tienen décadas de antigüedad. Durante un pentesting de red interna, estos sistemas suelen ser objetivos fáciles porque nadie los ha auditado como servidores críticos que son. La lección de PixelSmash es que cualquier software que procese datos binarios de fuentes externas debe ser tratado como un vector de ataque potencial.

Qué puedes hacer ahora: acciones concretas

La mitigación de PixelSmash es inmediata: actualizar FFmpeg a la última versión en todos los sistemas que lo utilicen, incluyendo las dependencias transitivas de aplicaciones como Jellyfin, Kodi, OBS Studio y cualquier software de procesamiento de video. Para los administradores de servidores multimedia, la protección adicional incluye: ejecutar los servicios de procesamiento de video con privilegios mínimos y en entornos aislados (contenedores, jails, sandboxes), no exponer la interfaz de administración a internet sin autenticación fuerte y VPN, y configurar las bibliotecas de contenido para que solo acepten archivos de fuentes confiables. Pero la defensa de fondo es más simple y más difícil a la vez: tratar el contenido multimedia como lo que es —datos binarios de fuentes potencialmente hostiles que serán procesados por código escrito en C—, no como archivos inofensivos que 'solo contienen video'.

Temas tratados

FFmpeg · PixelSmash · RCE · video decoder · Jellyfin · Kodi · OBS · codec vulnerability

¿Quieres saber si tu empresa tiene estas vulnerabilidades?

Auditamos la seguridad de empresas de toda España con alcance cerrado por escrito, informe técnico y ejecutivo, y retest de las correcciones. Presupuesto en 24 horas y primera consultoría sin coste. Si no sabes por dónde empezar, haz el test de seguridad de 15 preguntas.

¿Quieres más información?