CVE-2007-5659
Corrija agora. Ela está sob exploração confirmada pelo CISA e tem exploit funcional público.
Apply updates per vendor instructions.
Resumo
Múltiplos buffer overflows baseados em pilha (stack) em métodos JavaScript não especificados do Adobe Reader e Acrobat 8.1.1 e versões anteriores, que permitem execução de código arbitrário ao abrir um PDF malicioso. A falha está no catálogo KEV da CISA, tem PoC pública e módulo Metasploit, e o EPSS de 0.94 indica que a exploração automatizada era (e é) praticamente certeza no seu auge — mesmo sendo uma vulnerabilidade de 2007/2008, o padrão de exploração via PDF weaponizado se tornou referência para toda uma geração de ataques client-side.
Detalhamento técnico
A causa raiz é validação insuficiente de comprimento de string (CWE-121, stack-based buffer overflow) em vários métodos JavaScript embutidos no motor de scripting do Adobe Reader/Acrobat. Quando um argumento passado a esses métodos excede o tamanho esperado, o código copia a string para um buffer de tamanho fixo alocado na pilha sem checar o limite antes da cópia. Isso permite sobrescrever estruturas de controle adjacentes na stack — incluindo endereços de retorno — abrindo caminho para redirecionamento de fluxo de execução.
O atacante controla o conteúdo do PDF, incluindo o JavaScript embutido nele e, especificamente, os argumentos passados às APIs vulneráveis do motor JS do Acrobat. Nem a Adobe nem o iDefense (que reportou a falha sob o advisory 02.08.08) especificaram publicamente quais métodos JavaScript exatos são afetados — a descrição oficial da CVE mantém isso como "unspecified JavaScript methods", o que dificulta detecção assinatura-específica.
Há uma nota importante de rastreamento: o próprio NVD assinala que este CVE pode ter sido subsumido pelo CVE-2008-0655, publicado pouco depois e que trata de uma falha relacionada (também stack overflow via JavaScript no Acrobat/Reader, corrigida no mesmo ciclo). Isso sugere sobreposição ou refinamento posterior da mesma classe de bug, comum quando um vendor corrige uma família de funções JS de uma vez e o mesmo pesquisador ou CVE numbering authority atribui múltiplos IDs a variações da falha.
Como é explorada
O vetor é um arquivo PDF especialmente construído contendo JavaScript que invoca o(s) método(s) vulnerável(is) com um argumento de string longa o suficiente para sobrescrever a pilha. O pré-requisito central é interação do usuário: a vítima precisa abrir o PDF — via anexo de email, download, ou visualização automática dentro do navegador quando o plugin Adobe Acrobat está habilitado. Não há necessidade de autenticação nem de configuração exótica: JavaScript vem habilitado por padrão no Reader/Acrobat, e o plugin de visualização em navegador também é ativado por padrão pelo instalador em muitos ambientes da época.
A complexidade de exploração é baixa a moderada — documentada com PoC pública e módulo Metasploit disponível, o que historicamente reduziu a barreira de entrada para campanhas de massa via PDF malicioso, um dos vetores dominantes de infecção client-side em 2008. O resultado final bem-sucedido é execução de código arbitrário com os privilégios do usuário que abriu o arquivo — nada de escalonamento adicional é necessário para o impacto primário.
O registro no catálogo KEV da CISA confirma exploração ativa observada, embora não documentada em detalhe pública quanto a campanhas específicas nesta referência. Dada a época e a natureza do bug, esse tipo de falha em Acrobat foi amplamente abusado em ondas de malware distribuído por email com PDFs armadilhados, sem exigir engenharia social sofisticada além de convencer a vítima a abrir o arquivo.
Versões
Como se proteger
A correção definitiva do fornecedor é atualizar: para a linha 8.x, para Adobe Reader/Acrobat 8.1.2; para a linha 7.x, para 7.1.0. A Adobe endereçou inicialmente a falha na linha 8 via advisory APSA08-01 e consolidou a correção completa no boletim APSB08-13.
Se a atualização não for possível de imediato, os paliativos reais documentados pelo CERT/CC são: desabilitar JavaScript no Reader/Acrobat (Edit > Preferences > JavaScript, desmarcar 'Enable Acrobat JavaScript') — elimina o vetor de exploração descrito, mas quebra formulários e recursos interativos que dependam de JS; desabilitar a exibição de PDF dentro do navegador (desmarcar 'Display PDF in browser' nas preferências de Internet do Reader), o que reduz o vetor de auto-abertura via web mas não protege contra anexos abertos manualmente; e, no Windows, reverter a associação automática de arquivos PDF no Internet Explorer via chave de registro para forçar prompt do usuário antes de abrir. Em ambientes Ubuntu/Linux da época, a remoção do pacote mozilla-acroread evitava a abertura automática no navegador.
Não abrir PDFs não confiáveis é reforço de higiene, não mitigação técnica — não protege contra anexos maliciosos disfarçados de conteúdo legítimo. Nenhuma dessas mitigações substitui a atualização; são redutores de superfície de ataque temporários, com custo funcional real (perda de recursos interativos em PDFs legítimos).
Como detectar
Não há uma assinatura confiável e pública específica para esta CVE isoladamente, já que a Adobe e o iDefense nunca especificaram quais métodos JavaScript são vulneráveis — a maioria das detecções da época operava por heurística genérica de PDF malicioso (strings JavaScript anormalmente longas embutidas em objetos PDF, uso de métodos de manipulação de string/array em JS incorporado, ou presença de shellcode/NOP sled em streams do PDF). Como há módulo Metasploit disponível, amostras geradas por ferramentas de exploração automatizada tendem a ter estrutura previsível (tamanho de payload, padrão de argumento) que pode ser usada por soluções de sandboxing de anexos e AV com assinatura genérica para PDF exploit, mas não há IOC de rede ou de log específico documentado nas fontes consultadas para este CVE em particular.