CVE-2010-3765
Corrija agora. Ela está sob exploração confirmada pelo CISA e tem exploit funcional público.
Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.
Resumo
Falha de corrupção de memória no motor de renderização Gecko do Firefox 3.5.x/3.6.x, explorada como 0-day em outubro de 2010 para distribuir o trojan Belmoo via um site comprometido (nobelpeaceprize.org). Basta visitar uma página maliciosa com JavaScript habilitado — não há necessidade de autenticação, interação além de carregar a página, ou configuração não padrão — o que justifica o CVSS 9.8 e a entrada no catálogo KEV da CISA.
Detalhamento técnico
O bug (Mozilla Bug 607222, componente DOM: Core & HTML) está em nsCSSFrameConstructor::ContentAppended, a rotina que decide quais frames de renderização criar quando conteúdo é anexado à árvore DOM. Quando uma página intercala chamadas a document.write() (que reabre e reescreve o documento) com appendChild() (que anexa nós diretamente), o rastreamento de índices dos nós filhos usado pelo construtor de frames fica incorreto.
O resultado prático, segundo o próprio título do bug, é a criação de frames de texto duplicados e o 'overrunning' (escrita fora dos limites) dos buffers de text run internos do Gecko — uma escrita de memória fora dos limites do heap desencadeada por lógica de contagem/índice errada, não por validação de entrada ausente em um parser de arquivo. O atacante controla o script da página (ordem e timing das chamadas DOM) e, indiretamente, o layout de heap resultante, o suficiente para provocar corrupção explorável em vez de apenas crash.
Mozilla confirmou que o código problemático também existe no branch de desenvolvimento que se tornaria Firefox 4, mas outras mudanças de arquitetura já em curso pareciam blindar essa versão contra o gatilho específico — decisão da equipe foi corrigir de qualquer forma em vez de gastar tempo provando que o Firefox 4 beta estava seguro.
Como é explorada
O vetor é puramente web: uma página com HTML/JS que interleava document.write e appendChild de forma controlada para forçar a criação de frames duplicados e sobrescrever memória adjacente no heap. Não exige plugin, extensão ou configuração especial — só JavaScript habilitado, que é o padrão em toda instalação do Firefox/Thunderbird/SeaMonkey das versões afetadas.
A exploração em massa aconteceu antes da divulgação pública: o site oficial do Prêmio Nobel da Paz (nobelpeaceprize.org) foi comprometido e passou a redirecionar visitantes para infraestrutura do atacante (l-3com.dyndns-work.com/admissions/admin.php), hospedando o exploit. A cadeia completa, documentada no bug tracker da Mozilla, foi confirmada funcionando em Windows XP SP3 com Firefox 3.6.11: o exploit corrompia memória, executava código e baixava um binário (relatado como scvhost.exe, depois copiado para %WINDIR%\temp\symantec.exe) que se instalava via chave de Run no registro (HKCU/HKLM ...CurrentVersion\Run, valor 'Microsoft Windows Update') e se comunicava com o C2 na porta 443. Esse payload foi identificado publicamente como o trojan Belmoo.
O caso foi reportado à Mozilla por Morten Kråkvik, do Telenor SOC, e a exploração ativa antes do patch é o motivo da entrada no catálogo KEV da CISA. Hoje existem PoC pública (o testcase minimizado anexado ao bug da Mozilla) e módulo Metasploit, mas o valor prático de explorar essa CVE em 2024+ é essencialmente nulo — o universo de instalações Firefox 3.5/3.6 ainda expostas à internet é irrelevante.
Versões
Como se proteger
A correção definitiva da época foi atualizar para Firefox 3.6.12 ou 3.5.15, Thunderbird 3.1.6 ou 3.0.10, e SeaMonkey 2.0.10 — todas essas versões saíram poucos dias após a descoberta do 0-day, em outubro/novembro de 2010. Distribuições Linux publicaram pacotes correspondentes (Fedora, entre outros, via seus canais de anúncio de segurança).
Como mitigação temporária, antes do patch estar disponível, a própria Mozilla recomendou desabilitar JavaScript no navegador ou usar a extensão NoScript para bloquear script em sites não confiáveis — medida que reduz drasticamente a funcionalidade da web moderna, mas eliminava o vetor de exploração por completo enquanto o patch não saía.
Hoje, a única mitigação relevante é não usar nenhuma dessas versões: qualquer Firefox 3.5.x/3.6.x, Thunderbird 3.0.x/3.1.x anterior aos builds citados, ou SeaMonkey 2.x anterior a 2.0.10 ainda em produção deve ser considerado fim de vida e substituído por um ramo suportado — não existe patch retroativo aplicável fora da atualização de versão, e antivírus baseado em assinatura do binário droppado (scvhost.exe/symantec.exe) não protege contra variantes do exploit em si.
Como detectar
Não há assinatura de rede ou padrão de log genérico que identifique com confiança uma tentativa de exploração dessa falha especificamente — o gatilho é lógica JavaScript client-side, indistinguível de script legítimo sem análise dinâmica do heap do navegador. Os indicadores conhecidos são específicos da campanha de 2010: conexões de saída para l-3com.dyndns-work.com (porta 443), criação de arquivo em %WINDIR%\temp\symantec.exe, e uma chave de persistência 'Microsoft Windows Update' em HKCU/HKLM ...CurrentVersion\Run — todos artefatos do payload Belmoo daquela época, sem valor para detectar variantes atuais do exploit.