CVE-2010-1297
Corrija agora. Ela está sob exploração confirmada pelo CISA e tem exploit funcional público.
The impacted product is end-of-life and should be disconnected if still in use.
Resumo
Falha de corrupção de memória na instrução newfunction da ActionScript Virtual Machine 2 (AVM2), usada por Flash Player, Adobe AIR e pelo componente authplay.dll embutido no Reader/Acrobat. Foi explorada como 0-day em campanhas reais de junho de 2010 via PDF malicioso, o que a torna um marco histórico de exploração massiva client-side — não é uma falha teórica de laboratório.
Detalhamento técnico
O AVM2 interpreta ActionScript Bytecode (ABC) e o compila just-in-time para instruções nativas. A instrução newfunction, usada para criar objetos de função em tempo de execução, tem tratamento inadequado de determinados valores malformados no bytecode — um erro de validação/corrupção de memória (CWE-787/CWE-119, dependendo da fonte) que resulta em estado inconsistente do heap e, a partir daí, em execução de código controlada pelo atacante. O atacante controla o conteúdo do stream SWF embutido (bytecode ABC malformado), o que é suficiente para desencadear a corrupção sem qualquer interação além da renderização do conteúdo.
O vetor não se limita ao navegador: authplay.dll é a biblioteca que o Adobe Reader e Acrobat usam para renderizar SWF embutido em PDF, então o mesmo bug do AVM2 é alcançável a partir de um arquivo PDF, sem que o Flash Player standalone precise estar sendo usado. Isso explica por que a lista de produtos afetados inclui Reader/Acrobat 9.x e 8.x (Windows e Mac OS X) além do Flash Player e do AIR — todos compartilham o mesmo motor AVM2 ou uma cópia dele.
A análise técnica do blog da zynamics (com Frank Boldewin) dissecou uma amostra real: o PDF continha um objeto SWF (assinatura CWS) e um segundo objeto com JavaScript que fazia heap spraying para posicionar previsibilidade no heap antes de acionar a falha no SWF. Isso é evidência de que a exploração prática depende de preparar o layout de memória — o bug isolado gera crash, mas execução de código confiável requer o heap grooming.
Como é explorada
O vetor primário documentado foi um PDF malicioso contendo um objeto SWF malformado e um script de heap spray, entregue por e-mail ou hospedado em página web — a vítima só precisa abrir o documento (ou visualizar a página com o SWF embutido) no Reader/Acrobat vulnerável, satisfazendo o requisito de interação do usuário (UI:R) do CVSS. Não há necessidade de autenticação nem de configuração não padrão: o defeito está no motor de interpretação de bytecode que roda por padrão sempre que há conteúdo Flash embutido.
A amostra analisada pela zynamics usava shellcode em múltiplos estágios baseado em ROP (return-oriented programming), reaproveitando gadgets de uma DLL do Adobe Reader (BIB.DLL) para contornar DEP, e depois soltava um executável decriptado por XOR a partir do próprio PDF. Os pesquisadores notaram explicitamente que a amostra específica falhava em sistemas com ASLR habilitado (porque dependia de endereços fixos de BIB.DLL), embora isso não signifique que a vulnerabilidade em si dependa da ausência de ASLR — apenas que aquele exploit concreto era frágil a essa mitigação.
Há exploração confirmada in-the-wild desde antes da divulgação pública (listada no catálogo KEV da CISA), módulo Metasploit disponível e PoC pública circulando, o que eleva o risco de reaproveitamento por atores menos sofisticados mesmo anos depois — sistemas legados ou não atualizados continuam expostos a esse exploit já maduro e documentado.
Versões
Como se proteger
A correção definitiva do fornecedor: atualizar Flash Player para 10.1.53.64 (ramo 10.x) ou 9.0.277.0 (ramo 9.x), AIR para 2.0.2.12610, Reader/Acrobat 9.x para 9.3.3 e 8.x para 8.2.3, conforme o boletim Adobe APSB10-14. Não há patch parcial: a linha vulnerável precisa subir para essas versões ou superiores.
Quando a atualização não é imediata, o CERT/CC documentou paliativos reais com custo funcional explícito: remover ou renomear authplay.dll (e rt3d.dll) dentro da instalação do Reader/Acrobat neutraliza o vetor via PDF, mas não protege contra SWF servido diretamente por navegador; desabilitar o plugin Flash no navegador reduz o vetor web mas não o vetor PDF; desabilitar JavaScript no Reader e impedir que PDFs abram automaticamente dentro do navegador reduzem a superfície de ataque sem eliminar a falha. Habilitar DEP no Windows mitiga parcialmente a exploração via ROP (como visto na amostra analisada), mas o próprio CERT/CC frisa que DEP não é proteção completa — apenas dificulta, não impede, exploração em todos os casos.
O que não funciona como mitigação real: manter apenas o Flash Player atualizado no navegador não resolve o vetor via PDF, porque o Reader/Acrobat carrega sua própria cópia do componente Flash (authplay.dll) de forma independente — as duas superfícies precisam ser corrigidas ou mitigadas separadamente.
Como detectar
PDFs maliciosos observados na campanha de junho de 2010 continham um objeto SWF com assinatura de header CWS (SWF comprimido) embutido junto a um segundo objeto com JavaScript curto responsável por heap spraying de um array grande — a presença de streams SWF associados a JavaScript de spray dentro de um PDF é um indicador forte, mas específico daquela campanha, não uma assinatura genérica da vulnerabilidade. Amostras da época também dropavam um executável (observado como caminho C:\-.exe) decriptado por XOR a partir do próprio PDF e faziam checagem de privilégio de administrador antes de instalar componentes persistentes (EventSystem.dll, es.ini) via serviço BITS.
Não há uma assinatura de rede ou de log confiável e genérica para esta CVE além dessas características de exploit específicas documentadas em 2010; como o bug está no parsing de bytecode ABC malformado dentro do AVM2, variações no encoding do exploit escapam facilmente de detecção baseada em padrões estáticos, e anos de reaproveitamento em kits de exploração tornam indicadores de rede daquela época pouco úteis para tráfego atual.