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 -> 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 -> have_dimensions antes, esta vez establecemos las dimensiones, llamando a init_buffers, lo que puede reasignar el búfer en ctx -> 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.
Impacto
Puntuación base 4.0
8.70
Gravedad 4.0
ALTA


