⏱️ Lectura: 11 min
Una empresa de seguridad llamada depthfirst dejó correr un agente de inteligencia artificial sobre el código de FFmpeg y, por alrededor de 1.000 dólares en cómputo, el sistema encontró 21 zero-days en FFmpeg inéditos. Una de esas vulnerabilidades llevaba escondida desde 2003.
📑 En este artículo
El hallazgo, publicado a principios de junio de 2026, reabre una pregunta incómoda para el software libre: si una IA puede auditar 1,5 millones de líneas de C en una tarde, ¿quién llega primero a los fallos, los defensores o los atacantes?
TL;DR
- depthfirst usó un agente de IA autónomo que halló 21 zero-days en FFmpeg, todos con prueba de concepto reproducible.
- La corrida costó unos 1.000 dólares: un 10% de lo que gastó Anthropic con su modelo Mythos en una auditoría similar.
- 8 fallos ya tienen CVE: CVE-2026-39210 a CVE-2026-39218; los otros 13 siguen sin numerar.
- El bug más viejo (CVE-2026-39214) vivió 23 años en el código, desde 2003.
- La mayoría son desbordamientos de heap o stack en demuxers y decoders: TS, VP9, AV1 RTP, DASH, CAF y AVI.
- Un PoC logra ejecución de código con un solo paquete de 183 bytes en el depacketizer AV1 RTP.
- La misma semana, Google parchó 429 fallos en Chrome 149, el récord en una sola versión.
Qué pasó
FFmpeg es la biblioteca que casi nadie ve pero que casi todo usa: está dentro de reproductores, navegadores, servidores de streaming, editores de video y miles de servicios en la nube que decodifican o convierten audio y video. Son aproximadamente 1,5 millones de líneas de C, un lenguaje sin red de seguridad de memoria, mantenido en gran parte por voluntarios. Es, en otras palabras, una pieza de infraestructura crítica y a la vez crónicamente subauditada.
Sobre ese código, depthfirst desplegó un agente de seguridad autónomo. El resultado fueron 21 zero-days en FFmpeg, cada uno acompañado de una entrada concreta que reproduce el fallo. No son advertencias teóricas ni avisos de “posible problema”: son pruebas de concepto que cualquiera puede ejecutar. La empresa cifra el costo de toda la corrida en unos 1.000 dólares, una cantidad que cambia por completo la economía de buscar bugs a gran escala.
💭 Clave: Lo disruptivo no es que una IA encuentre un bug, sino que encuentre 21 con PoC reproducible por el precio de una cena para varios. El cuello de botella de la auditoría de seguridad siempre fue el tiempo humano experto; eso es justo lo que se está abaratando.
Contexto e historia
Este episodio no salió de la nada. Durante el último año, varios laboratorios han usado modelos de lenguaje para cazar vulnerabilidades en proyectos reales. El equipo Big Sleep de Google Project Zero reportó fallos descubiertos por IA, y Anthropic lanzó Project Glasswing, una iniciativa para asegurar software crítico con su modelo Mythos, que ya había encontrado problemas precisamente en FFmpeg. La novedad de depthfirst es el precio: dicen haber gastado cerca de un 10% de lo que costó la auditoría con Mythos, obteniendo un volumen comparable de hallazgos.
FFmpeg se ha convertido en el banco de pruebas favorito de estas herramientas por una razón doble: es ubicuo y es difícil. Procesar formatos de medios significa parsear datos no confiables que vienen de archivos y de la red, exactamente el terreno donde un puntero mal calculado se convierte en ejecución de código. La contraparte es la tensión social: el proyecto, sostenido por voluntarios, ha mostrado en el pasado su malestar ante la avalancha de reportes automatizados que llegan más rápido de lo que un equipo pequeño puede revisar y parchear.
Cómo trabaja el agente
Según depthfirst, su agente no trata el repositorio como un montón de archivos sueltos. Empieza con un threat modeling: entender la arquitectura, identificar qué parsers están expuestos a entrada externa y trazar el flujo de datos desde la fuente no confiable hasta el punto donde se usa. A partir de ahí, agentes especializados se ramifican en paralelo para probar distintas hipótesis de explotación, y cada candidato pasa por una validación: si no hay una entrada que dispare el fallo de forma reproducible, no se reporta. La promesa explícita es que cada hallazgo sea “real, alcanzable y accionable”.
graph TD
A["Threat modeling: mapear arquitectura"] --> B["Identificar superficie: parsers y demuxers"]
B --> C["Agentes en paralelo: probar hipotesis"]
C --> D["Validar: PoC reproducible"]
D --> E["Reporte: fallo real y alcanzable"]
Esa última etapa es la que separa el ruido de la señal. Una de las críticas históricas a los reportes generados por IA es la cantidad de falsos positivos, hallazgos que suenan plausibles pero no se pueden disparar. Forzar un PoC concreto antes de entregar el reporte es la diferencia entre ayudar al mantenedor y enterrarlo en trabajo.
Datos y cifras
Los 21 fallos se reparten por todo el árbol de FFmpeg. La lista de componentes afectados incluye el demuxer de TS, el decoder de VP9, swscale, varios depacketizers RTP (AV1, JPEG, LATM, MPEG-4), el demuxer DASH, el overlay AVIF, los demuxers CAF y AVI, el servidor y cliente RTSP, el cliente RTMP y el parseo de SDP. Es un mapa casi completo de la superficie de ataque de una biblioteca de medios.
Ocho de ellos ya tienen identificador: del CVE-2026-39210 al CVE-2026-39218. Los otros 13 están corregidos pero aún sin numerar, identificados internamente como DFVULN. La antigüedad de los bugs es quizá el dato más elocuente: el CVE-2026-39214 data de 2003 y permaneció latente 23 años; otros se remontan a 2005 y 2009. Hablamos de fallos que sobrevivieron a dos décadas de revisiones humanas, fuzzers y herramientas de análisis estático.
⚠️ Ojo: Que un bug lleve 23 años en el código no significa que nadie lo haya visto: significa que el costo de encontrarlo era mayor que el incentivo de buscarlo. Esa ecuación acaba de cambiar, y cambia para los dos bandos.
El bug de 183 bytes
El caso más didáctico es el del depacketizer AV1 sobre RTP (DFVULN-127). Es un desbordamiento de heap que se dispara con un único paquete de 183 bytes, durante la fase normal de PLAY de RTSP, sin banderas especiales de compilación ni configuración rara. El origen es un manejo incorrecto del salto de un OBU de tipo Temporal Delimiter (TD): cuando se salta un TD, el puntero pktpos avanza según el obu_size declarado por el atacante, pero no se reserva memoria que respalde ese avance.
// Conceptual: el avance del cursor no valida la reserva real
if (obu_type == AV1_OBU_TEMPORAL_DELIMITER) {
pktpos += obu_size; // obu_size lo controla el atacante
// ...pero no se asigno buffer para cubrir ese avance
}
// Resultado: escritura fuera de limites con
// offset controlado Y contenido controlado
Con un offset y un contenido completamente controlados, el PoC corrompe el puntero de función AVBuffer.free, ubicado a 152 bytes del inicio del buffer de datos, y desde ahí alcanza ejecución de código arbitrario. Es el escenario de pesadilla: un atacante que controla el flujo RTP de un servidor que decodifica AV1 podría ejecutar código con un solo paquete.
Impacto y análisis
El hallazgo aterriza en medio de un debate más amplio sobre quién carga con el costo cuando la IA industrializa la búsqueda de bugs. Encontrar es ahora barato; arreglar sigue siendo caro y humano. Un mantenedor voluntario de FFmpeg recibe un reporte impecable, con PoC, pero el parche, las pruebas de regresión y la coordinación de la divulgación siguen recayendo en personas que lo hacen en su tiempo libre. La asimetría es evidente: el atacante que use la misma técnica no escribe parches ni respeta plazos de divulgación responsable.
También hay una lectura optimista. Estos 21 fallos están corregidos, no abiertos. Si los defensores adoptan estas herramientas antes que los adversarios, el saldo neto para el ecosistema puede ser positivo: bugs de dos décadas saliendo a la luz y cerrándose de forma controlada. La clave estará en acompañar el descubrimiento masivo con recursos para el remedio, algo que el modelo de “un voluntario contra el mundo” no resiste indefinidamente.
El telón de fondo lo completa Google: la misma semana, Chrome 149 salió con parches para 429 vulnerabilidades, el mayor número jamás corregido en una sola versión del navegador. No todas vienen de IA, pero la tendencia es inequívoca: hay más fallos sobre la mesa, y llegan más rápido que antes.
Qué sigue
Lo esperable es que más proyectos de código abierto reciban este tipo de auditorías, deseadas o no, y que el flujo de reportes asistidos por IA se normalice. Para los mantenedores, el reto será filtrar señal de ruido: exigir PoC reproducible como condición de entrada, como hace depthfirst, es probablemente el estándar mínimo que sobrevivirá. Para las empresas que dependen de FFmpeg, la recomendación inmediata es la de siempre, ahora con más urgencia: actualizar a la versión parcheada y vigilar las superficies expuestas a red, especialmente RTSP, RTMP y los depacketizers RTP.
A mediano plazo, la pregunta de fondo sigue abierta. Si auditar millones de líneas cuesta mil dólares, la auditoría continua deja de ser un lujo de las grandes tecnológicas y se vuelve algo que cualquier organización puede pagar. El problema es que el mismo razonamiento aplica para quien busca explotar, no proteger.
📖 Resumen en Telegram: Ver resumen
Preguntas frecuentes
¿Qué es FFmpeg y por qué importa que tenga estos fallos?
FFmpeg es una biblioteca de código abierto para procesar audio y video, presente en navegadores, reproductores, servicios de streaming y servidores en la nube. Como decodifica datos no confiables que vienen de archivos y de la red, un fallo de memoria puede convertirse en ejecución de código en muchísimos sistemas a la vez.
¿Qué encontró exactamente el agente de IA?
21 vulnerabilidades de día cero inéditas, en su mayoría desbordamientos de heap y stack en demuxers y decoders. Ocho ya tienen CVE asignado (CVE-2026-39210 a CVE-2026-39218) y las 13 restantes están corregidas pero aún sin numerar. Todas vienen con una prueba de concepto que las reproduce.
¿Por qué es relevante que costara solo 1.000 dólares?
Porque cambia la economía de la seguridad. Auditar 1,5 millones de líneas de C solía requerir semanas de expertos humanos. Si una corrida automatizada con resultados comparables cuesta lo que cuesta depthfirst (un 10% de lo que gastó Anthropic con Mythos), la auditoría continua deja de ser exclusiva de las grandes empresas.
¿Cómo es que un bug sobrevivió 23 años?
El CVE-2026-39214 existe desde 2003. No es que nadie mirara ese código, sino que el costo de hallar ese fallo concreto superaba el incentivo de buscarlo entre millones de líneas. Las herramientas de IA reducen ese costo y por eso afloran vulnerabilidades muy antiguas.
¿Estoy en riesgo si uso software basado en FFmpeg?
Los 21 fallos ya están corregidos. El riesgo está en no actualizar. Si tu sistema decodifica medios desde la red (RTSP, RTMP, RTP), conviene priorizar el parche y limitar la exposición de esas superficies.
¿La IA reemplaza a los investigadores de seguridad?
Por ahora desplaza la parte mecánica del descubrimiento, no el criterio. Diseñar el modelo de amenazas, validar el impacto real y coordinar la divulgación siguen necesitando personas. El cuello de botella se está moviendo del hallazgo hacia el remedio.
Referencias
- depthfirst — Writeup técnico original con la lista de CVE y los PoC.
- The Hacker News — Cobertura del caso y contexto de Chrome 149 con 429 parches.
- Anthropic — Project Glasswing — Antecedente de IA hallando zero-days en software crítico.
- NVD — CVE-2026-39214 — Ficha del fallo más antiguo, latente desde 2003.
- DZone — Tensión entre los reportes de IA y los mantenedores de FFmpeg.
📱 ¿Te gusta este contenido? Únete a nuestro canal de Telegram @programacion donde publicamos a diario lo más relevante de tecnología, IA y desarrollo. Resúmenes rápidos, contenido fresco todos los días.
0 Comentarios