← back
CVE-2024-9680criticalunder attackransomwareCWE-416

CVE-2024-9680

83Vexday Risk Score

Prioritize patching. It under exploitation confirmed by CISA and has a public proof of concept.

ssvc Actcvss 9.8epss 23%
from disclosure to weapon8 days
Published on NVDOct 9
1st PoC+8d
CISA KEV+6d
exploitation probability
23%top 2% of all CVEs
observed exploitation
yesCISA + VulnCheck
2 public exploit(s)
Action required by CISAfederal deadline: 2024-11-05

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

Summary

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.

Technical detail

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.

How it’s exploited

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.

Versions

Affected
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.
Fixed in
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.

How to protect

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.

How to detect

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.

Researched and written with AI from the vendor advisory and public analysis, with the sources above. Always confirm the fixed version in the official advisory before acting.
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
⚠ Public resources, to assess the exposure of systems you control or are authorized to test. Test only with authorization.