Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en FFmpeg (CVE-2025-59734)

Gravedad CVSS v4.0:
ALTA
Tipo:
CWE-416 Utilización después de liberación
Fecha de publicación:
06/10/2025
Última modificación:
19/10/2026

Descripción

Es posible causar una escritura de uso después de liberación en la decodificación SANM con una animación cuidadosamente diseñada usando subversión stored_frame. Los frames almacenados pueden ser referenciados más tarde por chunks FTCH. Para archivos que usan subversión stored_frame. Dejando ctx -&gt; has_dimensions establecido en falso.<br /> <br /> Un chunk subsiguiente de tipo FTCH llamaría a process_ftch y decodificaría ese objeto de frame de nuevo, añadiendo a los valores superior/izquierdo y llamando a process_frame_obj de nuevo.<br /> Dado que nunca establecimos ctx -&gt; have_dimensions antes, esta vez establecemos las dimensiones, llamando a init_buffers, lo que puede reasignar el búfer en ctx -&gt; stored_frame, liberando el anterior. Sin embargo, el objeto GetByteContext gb todavía mantiene una referencia al búfer antiguo.<br /> <br /> Finalmente, cuando el código intenta decodificar el frame, los códecs que aceptan un GetByteContext como parámetro activarán una lectura de uso después de liberación al usar gb.<br /> <br /> GetByteContext solo se usa para leer bytes, por lo que, como máximo, se podrían leer datos inválidos. No hay asignaciones de heap entre la liberación y el momento en que se accede al objeto. Sin embargo, al regresar a process_ftch, el código restaura los valores originales para superior/izquierdo en stored_frame, escribiendo 4 bytes en los datos liberados en el desplazamiento 6, potencialmente corrompiendo los metadatos del asignador.<br /> <br /> Este problema puede ser activado simplemente al sondear si un archivo tiene el formato sanm.<br /> <br /> Recomendamos actualizar a la versión 8.0 o posterior.

Referencias a soluciones, herramientas e información