← volver
CVE-2009-0927highbajo ataqueCWE-121

CVE-2009-0927

100Vexday Risk Score

Corrige ahora. Ella está bajo explotación confirmada por CISA, tiene exploit funcional público y 1 grupo(s) de amenaza la utilizan.

ssvc Actcvss 8.8epss 97%
de la publicación al arma46 días
Publicada en NVD19 mar
1ª PoC+46d
metasploit+5d
CISA KEV+4754d
probabilidad de explotación
97%top 1% de las CVE
explotación observada
CISA + VulnCheck
1 grupo(s)5 exploit(s) público(s)
Quién la explota1

Grupos conocidos por explotar esta vulnerabilidad (atribución MITRE ATT&CK).

Acción exigida por CISAplazo federal: 2022-04-15

Apply updates per vendor instructions.

Resumen

Buffer overflow baseado em pilha no Adobe Reader e Acrobat 9, causado pelo método getIcon() de um objeto Collab acessível via JavaScript embutido em PDF. A falha permite execução de código arbitrário com os privilégios do usuário que abre o arquivo, e foi explorada ativamente como 0-day antes da correção — está no catálogo KEV da CISA e tem módulo Metasploit e PoC pública, o que a torna crítica mesmo mais de uma década depois em qualquer instalação legada ainda em uso.

Detalle técnico

A vulnerabilidade (CWE-121, stack-based buffer overflow) está no parser JavaScript embutido no motor de renderização de PDF do Acrobat/Reader. O objeto Collab expõe o método getIcon(), que recebe um argumento controlado pelo script contido no documento. O código não valida corretamente o tamanho/conteúdo desse argumento antes de copiá-lo para um buffer de tamanho fixo na pilha, permitindo que dados excedentes sobrescrevam o frame de retorno.

O atacante controla integralmente o conteúdo do argumento passado a getIcon(), o que dá controle sobre os bytes que sobrescrevem a pilha — condição suficiente para desviar o fluxo de execução para shellcode injetado via heap spray, técnica comum em exploits de PDF dessa era. A ZDI (crédito à Tenable Network Security) reportou a falha ao fornecedor em julho de 2008, quase oito meses antes da divulgação coordenada em março de 2009, o que sugere ciclo de correção incomum longo para o padrão da época.

A CVE é distinta da CVE-2009-0658 (falha em util.printf da mesma família de produtos), reforçando que o Acrobat/Reader daquele período tinha múltiplos pontos de overflow independentes na API JavaScript exposta a conteúdo não confiável embutido no PDF.

Cómo se explota

O vetor é um arquivo PDF malicioso contendo JavaScript que instancia um objeto Collab e chama getIcon() com um argumento craftado para provocar o overflow. Não há exigência de autenticação nem de configuração não padrão: basta que o usuário abra o PDF (ou que o navegador o renderize via plugin) com JavaScript habilitado no Acrobat/Reader — condição que era o padrão de fábrica na época. A interação do usuário (abrir o arquivo) é o único pré-requisito de UI, consistente com o vetor AV:N/UI:R do CVSS.

Na prática, campanhas de exploração observadas em 2009 distribuíram PDFs armados por e-mail (spam/phishing) e por download em sites comprometidos, geralmente combinando o overflow com heap spray em JavaScript para pousar o shellcode de forma confiável antes do desvio de fluxo. O resultado bem-sucedido é execução de código arbitrário no contexto do usuário logado — download e execução de payload secundário era o padrão observado nas campanhas da época.

A presença no catálogo KEV da CISA confirma exploração ativa documentada, e a disponibilidade de módulo Metasploit e PoC pública elimina qualquer barreira técnica para reprodução hoje — qualquer sistema que ainda rode uma versão vulnerável do Acrobat/Reader é alvo trivial para quem já tenha o exploit em mãos.

Versiones

Afectadas
Adobe Reader e Adobe Acrobat 9 antes da 9.1; 8 antes da 8.1.3; 7 antes da 7.1.1.
Corregidas en
9.1, 8.1.3 e 7.1.1, conforme o boletim Adobe APSB09-04.

Cómo protegerse

A correção definitiva é atualizar para as versões corrigidas pelo boletim Adobe APSB09-04: Acrobat/Reader 9.1, 8.1.3 ou 7.1.1, conforme o ramo em uso. Não há paliativo de configuração que elimine o vetor sem custo funcional: desabilitar a execução de JavaScript no Acrobat/Reader (opção disponível nas preferências do produto) bloqueia a cadeia de exploração, já que o overflow depende de script para instanciar o objeto Collab e chamar getIcon(), mas isso quebra formulários e recursos interativos legítimos que dependem de JS em PDF.

Gateways de e-mail e web que fazem sanitização ou bloqueio de PDFs com JavaScript embutido reduzem a superfície de ataque como controle compensatório em ambientes que não podem atualizar imediatamente, mas não é proteção equivalente ao patch — PDFs sem JS ainda podem carregar outras cadeias de exploração não relacionadas a esta CVE.

Não funciona como mitigação: apenas atualizar o Adobe Reader sem verificar se instalações paralelas de Acrobat (comum em ambientes corporativos com os dois produtos) também foram corrigidas — ambos compartilham o motor vulnerável e precisam de patch independente.

Cómo detectar

O sinal mais direto é a presença, dentro de um arquivo PDF, de JavaScript que instancia um objeto Collab e invoca getIcon() com um argumento anormalmente longo ou não-string — assinaturas de gateway de e-mail/web e de antivírus da época miravam esse padrão especificamente. Ferramentas de análise estática de PDF que extraem e decodificam streams JavaScript (incluindo os ofuscados/comprimidos via FlateDecode) permitem inspecionar chamadas a getIcon() antes da renderização.

Em nível de host, indícios de exploração incluem o processo do Acrobat/Reader gerando processos filho inesperados ou conexões de rede de saída logo após a abertura de um PDF recebido por e-mail ou download — não há assinatura de rede confiável, já que o exploit atua inteiramente no parsing local do documento, não em tráfego de rede.

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.
Stack-based buffer overflow in Adobe Reader and Adobe Acrobat 9 before 9.1, 8 before 8.1.3 , and 7 before 7.1.1 allows remote attackers to execute arbitrary code via a crafted argument to the getIcon method of a Collab object, a different vulnerability than CVE-2009-0658.
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Productos afectados
n/a · n/a
⚠ Recursos públicos, para evaluar la exposición de sistemas que controlas o estás autorizado a probar. Prueba solo con autorización.