← voltar
CVE-2024-9680criticalsob ataqueransomwareCWE-416

CVE-2024-9680

83Vexday Risk Score

Priorize a correção. Ela está sob exploração confirmada pelo CISA e tem prova de conceito pública.

ssvc Actcvss 9.8epss 23%
da publicação à arma8 dias
Publicada no NVD9 de out.
1ª PoC+8d
CISA KEV+6d
probabilidade de exploração
23%top 2% das CVEs
exploração observada
simCISA + VulnCheck
2 exploit(s) público(s)
Ação exigida pela CISAprazo federal: 2024-11-05

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

Resumo

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.

Detalhamento 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.

Como é explorada

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.

Versões

Afetadas
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.
Corrigidas em
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.

Como se proteger

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.

Como 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.

Pesquisado e redigido com IA a partir do advisory do fornecedor e de análises públicas, com as fontes acima. Confira sempre a versão corrigida no advisory oficial antes de agir.
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 você avaliar a exposição de sistemas que controla ou está autorizado a testar. Teste apenas com autorização.