CVE‑2024‑9680 es una vulnerabilidad crítica detipo use-after-free (CWE‑416) en el componente de líneas de tiempo de animación (“Animation timelines”) de los navegadores Mozilla Firefox y el cliente de correo Thunderbird. El fallo permite la ejecución remota de código en el proceso de contenido, meramente cargando una página web maliciosa, sin necesidad de interacción adicional del usuario.
El puntaje asignado es 9.8 (CVSS 3.1), ya que se trata de un ataque remoto, de baja complejidad, sin requerir autenticación ni interacción. Se ha confirmado explotación activa en entornos reales .
Un use-after-free se produce cuando un programa libera un objeto en memoria pero sigue accediendo a él después de ese evento. En este caso, la vulnerabilidad ocurre dentro del bucle que gestiona las animaciones:
En resumen, el problema radica en la falta de protección con punteros inteligentes (RefPtr) al iterar y ejecutar callbacks en animaciones, generando condiciones donde objetos liberados siguen siendo usados.
El usuario necesita visitar una página web maliciosa en Firefox o Thunderbird (en componentes que soportan animaciones, p. ej. HTML/CSS/JS). No se requieren permisos especiales ni interacción extra .
El atacante desarrolla una página con animaciones CSS/JS que crean y destruyen objetos repetidamente.
El código JavaScript fuerza una interrupción en el bucle de animación (Tick()), permitiendo que el objeto se elimine.
Cuando el navegador continúa iterando, ya accede a un objeto liberado.
Debido al control de memoria, el atacante puede colocar un objeto controlado en el espacio liberado.
La referencia posterior a este objeto provoca la ejecución de código controlado, permitiendo RCE.
let el = document.createElement("div");
el.classList.add("animate");
// repetición rápida que activa y desactiva la animación
setInterval(() => {
el.classList.toggle("animate");
}, 1);
🎯 Con esto se inducen múltiples ciclos de Tick(), eliminando/creando animaciones rápidamente hasta provocar el fallo.
Actualizar a alguna de estas versiones mínimas:
CVE‑2024‑9680 ejemplifica un error sutil pero devastador: un use-after-free en bucles críticos de animación. 🚨
Aspectos clave:
Impacto en seguridad:
Lección técnica: