← back
CVE-2009-0927highunder attackCWE-121

CVE-2009-0927

100Vexday Risk Score

Patch now. It under exploitation confirmed by CISA, has a working public exploit and 1 threat group(s) use it.

ssvc Actcvss 8.8epss 97%
from disclosure to weapon46 days
Published on NVDMar 19
1st PoC+46d
metasploit+5d
CISA KEV+4754d
exploitation probability
97%top 1% of all CVEs
observed exploitation
yesCISA + VulnCheck
1 group(s)5 public exploit(s)
Who exploits it1

Groups known to exploit this vulnerability (MITRE ATT&CK attribution).

Action required by CISAfederal deadline: 2022-04-15

Apply updates per vendor instructions.

Summary

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.

Technical detail

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.

How it’s exploited

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.

Versions

Affected
Adobe Reader e Adobe Acrobat 9 antes da 9.1; 8 antes da 8.1.3; 7 antes da 7.1.1.
Fixed in
9.1, 8.1.3 e 7.1.1, conforme o boletim Adobe APSB09-04.

How to protect

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.

How to detect

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.

Researched and written with AI from the vendor advisory and public analysis, with the sources above. Always confirm the fixed version in the official advisory before acting.
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
Affected products
n/a · n/a
⚠ Public resources, to assess the exposure of systems you control or are authorized to test. Test only with authorization.