← volver
CVE-2016-9079highbajo ataqueCWE-416

CVE-2016-9079

100Vexday Risk Score

Corrige ahora. Ella está bajo explotación confirmada por CISA y tiene exploit funcional público.

ssvc Actcvss 7.5epss 88%
de la publicación al arma0 días
Publicada en NVD11 jun
1ª PoC24 ene
metasploit30 nov
CISA KEV+1837d
probabilidad de explotación
88%top 1% de las CVE
explotación observada
CISA + VulnCheck
12 exploit(s) público(s)
Acción exigida por CISAplazo federal: 2023-07-13

Apply updates per vendor instructions.

Resumen

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.

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

Cómo se explota

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.

Versiones

Afectadas
Firefox anterior a 50.0.2; Firefox ESR anterior a 45.5.1; Thunderbird anterior a 45.5.1.
Corregidas en
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).

Cómo protegerse

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.

Cómo 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.

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.
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 evaluar la exposición de sistemas que controlas o estás autorizado a probar. Prueba solo con autorización.