← voltar
CVE-2016-9079highsob ataqueCWE-416

CVE-2016-9079

100Vexday Risk Score

Corrija agora. Ela está sob exploração confirmada pelo CISA e tem exploit funcional público.

ssvc Actcvss 7.5epss 88%
da publicação à arma0 dias
Publicada no NVD11 de jun.
1ª PoC24 de jan.
metasploit30 de nov.
CISA KEV+1837d
probabilidade de exploração
88%top 1% das CVEs
exploração observada
simCISA + VulnCheck
12 exploit(s) público(s)
Ação exigida pela CISAprazo federal: 2023-07-13

Apply updates per vendor instructions.

Resumo

Use-after-free na engine de animação SVG (SMIL) do Firefox/Thunderbird, explorado como 0-day em ataques direcionados contra usuários do Tor Browser e Firefox no Windows em novembro de 2016. O CVSS de 7.5 reflete só o vetor de rede sem interação — mas a exploração real observada por pesquisadores da Mozilla já vinha com um exploit completo de RCE, incluindo ROP para burlar ASLR, entregue via anexo de e-mail, não como ataque de massa via web.

Detalhamento técnico

A falha está em nsSMILTimeContainer::NotifyTimeChange(), no subsistema SMIL (Synchronized Multimedia Integration Language) que implementa animação declarativa de SVG (, etc.). O código itera sobre um array de elementos animados usando um ponteiro bruto para os elementos do array. Em certas condições, o método chamado durante a iteração provoca reentrância: ele dispara efeitos colaterais que fazem o array ser realocado, invalidando o ponteiro que a iteração ainda mantém. O resultado é um use-after-free (CWE-416) — o código continua acessando memória já liberada/realocada como se fosse o elemento original.

O tipo estrutural usado para o array, nsTObserverArray, foi desenhado justamente para tolerar esse tipo de reentrância, mas o trecho específico de NotifyTimeChange() não usava essa proteção corretamente, permitindo que a reentrância corrompesse o estado da iteração. Os próprios desenvolvedores da Mozilla, ao investigar o crash relatado, inicialmente hesitaram se era um bounds failure ou um UAF propriamente dito — a classificação final foi UAF com correção por meio de guarda explícita contra reentrância no nsSMILTimeContainer.

O atacante controla o conteúdo SVG/animação embutido na página (ou anexo HTML) renderizado pelo motor de layout do Firefox, incluindo o timing e a estrutura dos elementos animados que disparam a reentrância. Combinado com Web Workers — usados no exploit observado para pulverização de heap e sincronização — isso dá controle suficiente sobre o layout de memória para transformar o UAF em execução de código, incluindo uma cadeia ROP voltada a burlar ASLR no Windows.

Como é explorada

O exploit encontrado in the wild chegou como anexo de e-mail (arquivo HTML/SVG com JavaScript minificado, identificado internamente como cssbanner.js) enviado a um administrador de sistema, direcionado a usuários que a Mozilla e o remetente original suspeitavam usar o Tor Browser — coerente com um ataque de desanonimização ou vigilância direcionada, não com campanha ampla. Basta a vítima abrir o conteúdo malicioso no Firefox (ou Firefox ESR/Thunderbird renderizando HTML) para acionar a animação SVG maliciosa; não há necessidade de autenticação, privilégio elevado ou configuração não padrão — o vetor é qualquer conteúdo web/HTML processado pelo motor de renderização.

A cadeia observada usa Web Workers para manipular a alocação de heap em paralelo com o disparo da condição de reentrância no timing SMIL, e inclui shellcode/ROP voltado especificamente para Windows, visando contornar ASLR e obter execução de código arbitrário com os privilégios do processo do navegador (ou do Thunderbird, ao renderizar e-mail HTML). A complexidade de engenharia é alta — construir a corrida de reentrância de forma confiável e encadear com heap grooming via Workers não é trivial — mas o exploit já existia pronto e funcional quando foi capturado, o que motivou a inclusão no catálogo KEV da CISA e a publicação de módulo Metasploit e PoC no Exploit-DB posteriormente, ampliando o público capaz de reproduzir o ataque depois da divulgação.

Não há relato de exploração massiva via campanhas de malvertising ou kits de exploração amplamente distribuídos; o padrão documentado é de ataque direcionado. Após a correção e a publicação de PoC/Metasploit, o risco relevante passa a ser qualquer instalação desatualizada exposta a conteúdo web ou e-mail HTML não confiável.

Versões

Afetadas
Firefox anterior a 50.0.2; Firefox ESR anterior a 45.5.1; Thunderbird anterior a 45.5.1.
Corrigidas em
Firefox 50.0.2; Firefox ESR 45.5.1; Thunderbird 45.5.1. Backports: Red Hat Enterprise Linux (firefox-45.5.1, thunderbird-45.5.1, via RHSA-2016:2843 e RHSA-2016:2850); Debian (DSA-3730); Gentoo (>= 45.6.0 para firefox/firefox-bin/thunderbird/thunderbird-bin, pacote que já inclui a correção desta CVE junto com outras).

Como se proteger

Atualizar é a única mitigação real: Firefox para 50.0.2 ou posterior, Firefox ESR e Thunderbird para 45.5.1 ou posterior (a Mozilla corrigiu via MFSA 2016-92, com aprovações de backport para aurora, beta, release e ESR45). Distribuições Linux publicaram os mesmos pacotes corrigidos: Red Hat via RHSA-2016:2843 (firefox 45.5.1) e RHSA-2016:2850 (thunderbird 45.5.1), Debian via DSA-3730, e Gentoo via GLSA 201701-15 (que empacota esta e outras dezenas de CVEs, recomendando >= 45.6.0/45.6.0, ambas já acima do ponto de correção desta falha).

Não existe workaround de configuração documentado pelo fornecedor — a Gentoo GLSA explicita 'there is no known workaround at this time'. Desabilitar SVG inteiramente ou bloquear renderização de animação SMIL não é uma flag suportada nativamente nas versões afetadas; a mitigação prática para quem não pode atualizar imediatamente é tratar qualquer HTML/SVG de origem não confiável como hostil (bloqueio de anexos HTML em clientes de e-mail, isolamento de navegação, ou uso de leitor de e-mail em modo texto) — mas isso é controle compensatório de superfície, não correção da vulnerabilidade.

Como o exploit era de dia zero direcionado, monitorar por 'sinais de campanha' não é confiável como controle isolado — a defesa efetiva é a atualização, já disponível desde dezembro de 2016.

Como detectar

O artefato original identificado pela Mozilla era um arquivo HTML contendo SVG com animação e uso de Web Workers, entregue como anexo de e-mail, com JavaScript minificado (renomeado internamente cssbanner.js) e payload ofuscado contendo uma cadeia ROP voltada a Windows — sinal de que a origem foi engenharia social direcionada por e-mail, não um kit de exploração web genérico. Em nível de processo, o crash característico da falha (antes da correção) aparece em builds instrumentados com ASAN nas pilhas de nsSMILTimeContainer, nsSMILTimedElement e MilestoneEntry.

Não há assinatura de rede ou de log confiável e publicamente documentada para detectar tentativas de exploração em produção — o caso original só foi descoberto porque a vítima/administrador reportou o anexo suspeito à Mozilla. Para ambientes corrigidos, a exposição residual está limitada a instalações desatualizadas de Firefox/Firefox ESR/Thunderbird anteriores às versões de correção; a verificação prática é de inventário de versão, não de detecção de tráfego.

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.
A use-after-free vulnerability in SVG Animation has been discovered. An exploit built on this vulnerability has been discovered in the wild targeting Firefox and Tor Browser users on Windows. This vulnerability affects Firefox < 50.0.2, Firefox ESR < 45.5.1, and Thunderbird < 45.5.1.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
⚠ Recursos públicos, para você avaliar a exposição de sistemas que controla ou está autorizado a testar. Teste apenas com autorização.