← volver
CVE-2024-9680criticalbajo ataqueransomwareCWE-416

CVE-2024-9680

83Vexday Risk Score

Prioriza la corrección. Ella está bajo explotación confirmada por CISA y tiene prueba de concepto pública.

ssvc Actcvss 9.8epss 23%
de la publicación al arma8 días
Publicada en NVD9 oct
1ª PoC+8d
CISA KEV+6d
probabilidad de explotación
23%top 2% de las CVE
explotación observada
CISA + VulnCheck
2 exploit(s) público(s)
Acción exigida por CISAplazo federal: 2024-11-05

Apply mitigations per vendor instructions or discontinue use of the product if mitigations are unavailable.

Resumen

Use-after-free no código de Animation Timelines do motor Gecko, explorável por uma página web maliciosa para executar código no processo de conteúdo do Firefox/Thunderbird. A Mozilla confirmou exploração ativa antes da correção, e a falha está no catálogo KEV da CISA — não é um CVSS 9.8 teórico, houve uso real em campanhas de comprometimento via navegador.

Detalle técnico

A falha (CWE-416, use-after-free) está em mozilla::dom::DocumentTimeline::RemoveAnimation(mozilla::dom::Animation*) e no mecanismo genérico mozilla::LinkedListElement::remove(). Um objeto Animation é mantido em uma lista encadeada pertencente à timeline do documento; em certas sequências, o objeto é liberado enquanto ainda há uma referência viva apontando para ele na lista.

Segundo o desenvolvedor que corrigiu o bug (Emilio Cobos Álvarez, em comentário no Bugzilla), o gatilho central é que uma chamada a MaybeResolve(this) pode acabar invocando Animation.then — ou seja, resolver uma promise associada à animação dispara execução de JavaScript arbitrário se o atacante sobrescrever o prototype do objeto Animation. Esse callback JS roda em um ponto do ciclo de vida da animação que o código C++ não esperava ser reentrante, e esse JS pode remover ou destruir a animação enquanto o código nativo ainda mantém um ponteiro para ela — daí o use-after-free.

O atacante controla o conteúdo JavaScript da página (prototype manipulation da classe Animation, timing de disparo da promise, e a estrutura da timeline/animação), o que é suficiente para forçar a condição de corrida entre liberação de memória e uso subsequente, sem precisar de nenhuma condição de ambiente especial no navegador.

A correção envolveu simplificar a conversão de LinkedList para nsTArray e remover uma sobrecarga redundante de RemoveAnimation, eliminando o ponto de reentrância perigoso.

Cómo se explota

O vetor é uma página web (ou conteúdo HTML/JS equivalente) que a vítima visita ou que é carregada dentro do processo de conteúdo. Não exige autenticação, privilégios elevados nem configuração não padrão — é exatamente o cenário refletido no vetor CVSS (AV:N/AC:L/PR:N/UI:N): basta o processo de conteúdo renderizar e executar o JavaScript malicioso. Em Thunderbird, o caminho de exploração relevante é conteúdo web renderizado pelo motor (ex.: mensagens HTML com JS habilitado em contextos específicos, feeds RSS ou visualização de conteúdo remoto), não o fluxo padrão de e-mails simples.

Um engenheiro da Mozilla observou, ao avaliar o patch para aprovação de segurança, que o exploit 'não é super fácil de construir', mas que, uma vez exposta a stack trace do crash, fica consideravelmente mais simples — o que é coerente com o fato de existirem PoCs públicos documentados após a divulgação. A exploração bem-sucedida de um UAF desse tipo tipicamente envolve técnicas de heap grooming para realocar um objeto controlado pelo atacante no espaço de memória liberado, convertendo o dangling pointer em execução de código controlada.

A Mozilla relatou explicitamente 'reports of this vulnerability being exploited in the wild' antes da correção, e o caso está no catálogo KEV da CISA, confirmando exploração real, embora os detalhes de quem/quantas campanhas usaram a falha não estejam documentados publicamente nas fontes analisadas.

Versiones

Afectadas
Firefox < 131.0.2; Firefox ESR < 128.3.1; Firefox ESR < 115.16.1; Thunderbird < 131.0.1; Thunderbird < 128.3.1; Thunderbird < 115.16.0.
Corregidas en
Firefox 131.0.2; Firefox ESR 128.3.1; Firefox ESR 115.16.1; Thunderbird 131.0.1; Thunderbird 128.3.1; Thunderbird 115.16.0. Backport Debian 11 (bullseye) LTS: firefox-esr 128.3.1esr-1~deb11u1; thunderbird 1:115.16.0esr-1~deb11u1.

Cómo protegerse

Atualizar é a única mitigação real. Não há flag, política de grupo ou configuração de content-security que neutralize um UAF na engine de animação sem desabilitar recursos amplos de renderização (o que quebraria a maioria dos sites). Desativar JavaScript reduziria a superfície, mas não é uma opção viável de uso normal do navegador.

Distribuições Linux com ciclos próprios de empacotamento (ex.: Debian LTS) publicaram backports específicos: para Debian 11 (bullseye), firefox-esr foi corrigido em 128.3.1esr-1~deb11u1 e thunderbird em 1:115.16.0esr-1~deb11u1. Ambientes que dependem de builds de terceiros ou portas (ex.: FreeBSD ports) precisam confirmar que a versão empacotada já incorpora o patch, já que o CVE é tratado como urgência máxima ('0day', na classificação da comunidade FreeBSD) exatamente por já ter exploração confirmada.

Não existe mitigação de rede eficaz (WAF, proxy) porque o payload é JavaScript legítimo do ponto de vista de protocolo, executado dentro do processo de conteúdo — a defesa é a correção do binário do navegador/cliente de e-mail.

Cómo detectar

Não há assinatura de rede confiável: o payload é JavaScript executado no processo de conteúdo, servido normalmente via HTTPS, indistinguível de tráfego web legítimo. O sinal mais prático é o lado do cliente — crashes recorrentes do processo de conteúdo do Firefox/Thunderbird (relatórios no Crash Reporter da Mozilla apontando para DocumentTimeline::RemoveAnimation ou LinkedListElement::remove(), ou crashes classificados como 'sec-critical' relacionados a Animation) em máquinas que acessaram sites suspeitos antes de outubro de 2024, quando a versão instalada ainda era vulnerável.

Exploits de use-after-free frequentemente falham em corromper a heap com sucesso antes de conseguirem executar código, gerando crashes reprodutíveis; analistas de SOC devem correlacionar crash reports em massa desse tipo com URLs/domínios visitados no mesmo período, já que não há IOC de rede documentado publicamente para esta CVE específica.

Investigado y redactado con IA a partir del advisory del fabricante y análisis públicos, con las fuentes citadas. Verifica siempre la versión corregida en el advisory oficial antes de actuar.
An attacker was able to achieve code execution in the content process by exploiting a use-after-free in Animation timelines. We have had reports of this vulnerability being exploited in the wild. This vulnerability affects Firefox < 131.0.2, Firefox ESR < 128.3.1, Firefox ESR < 115.16.1, Thunderbird < 131.0.1, Thunderbird < 128.3.1, and Thunderbird < 115.16.0.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
⚠ Recursos públicos, para evaluar la exposición de sistemas que controlas o estás autorizado a probar. Prueba solo con autorización.