← voltar
CVE-2020-9715highsob ataqueCWE-416

CVE-2020-9715

83Vexday Risk Score

Priorize a correção. Ela está sob exploração confirmada pelo CISA e tem prova de conceito pública.

ssvc Actcvss 7.8epss 48%
da publicação à arma509 dias
Publicada no NVD19 de ago.
1ª PoC+509d
CISA KEV+2063d
probabilidade de exploração
48%top 1% das CVEs
exploração observada
simCISA + VulnCheck
4 exploit(s) público(s)
Ação exigida pela CISAprazo federal: 2026-04-27

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

Use-after-free no módulo EScript.api do Adobe Acrobat e Reader, no cache de objetos ESObject usados para representar arquivos embutidos (data objects) em PDFs com JavaScript. A exploração exige que a vítima abra um PDF malicioso, mas quando isso ocorre o atacante ganha execução de código arbitrário no contexto do processo do Acrobat/Reader — daí estar no catálogo KEV da CISA com exploração confirmada.

Detalhamento técnico

A falha (CWE-416) está no mecanismo de cache do EScript.api, o módulo que embute um interpretador JavaScript baseado no SpiderMonkey da Mozilla dentro do Acrobat/Reader para processar JavaScript incorporado em PDFs. Objetos internos chamados data ESObject representam arquivos embutidos e streams de dados, e são indexados num cache (implementado como uma árvore binária de busca) por uma cache_key composta por um ponteiro para o PDDoc e o nome do arquivo embutido, armazenado como string ANSI ou Unicode conforme o PDF original.

O bug está na inconsistência de codificação entre inserção e remoção: quando um data ESObject é criado, a cache_key mantém a codificação original do nome (ANSI ou Unicode). Quando um data ESObject é removido/liberado, a cache_key usada na remoção é sempre gerada com o nome em Unicode. Resultado: entradas de cache cujo nome era ANSI nunca são efetivamente purgadas — o ponteiro para o objeto liberado permanece na árvore indefinidamente.

Se o atacante controla o JavaScript embutido no PDF e faz algo equivalente a apagar e reacessar um objeto (por exemplo `this.dataObjects[0]` deletado e depois acessado), uma busca subsequente por um nome ANSI produz um cache hit contra a entrada obsoleta, retornando um ponteiro para um data ESObject já liberado. O código então opera sobre esse objeto, gerando um use-after-free clássico. O atacante controla o nome do objeto embutido, a sequência de criação/exclusão via JavaScript do PDF, e — em cenários de exploração mais avançados — pode manipular o heap para realocar dados controlados no espaço de memória liberado, viabilizando execução de código.

Como é explorada

O vetor é um arquivo PDF malicioso contendo JavaScript incorporado que manipula o ciclo de vida de data ESObjects (via API `dataObjects` do Acrobat JavaScript) para forçar a condição de use-after-free. A CVSS marca AV:L porque a exploração se dá localmente no processo que abre o arquivo — não há exploração remota direta via rede, mas o arquivo pode chegar por e-mail, download ou visualização em navegador via plugin do Acrobat. UI:R é obrigatório: a vítima precisa abrir o documento (ou visitar a página que o carrega).

Não há necessidade de autenticação nem de configuração não padrão no Acrobat/Reader — o JavaScript embutido em PDF é processado por padrão nas versões afetadas. A complexidade de exploração vai além de simplesmente disparar o UAF: para chegar a execução de código confiável é necessário controlar o heap para colocar dados atacante-controlados no lugar do objeto liberado, o que pesquisadores (Exodus Intelligence, reproduzindo a cadeia documentada pela ZDI) descreveram em detalhe técnico, sem publicar exploit funcional completo.

O CVE está no catálogo KEV da CISA, confirmando exploração ativa observada, e existe PoC pública. O resultado final documentado é execução de código arbitrário no contexto do processo do Acrobat/Reader — não escalonamento de privilégio de sistema por si só, mas suficiente como estágio inicial de comprometimento de endpoint.

Versões

Afetadas
Adobe Acrobat and Reader 2020.009.20074 e anteriores; 2020.001.30002; 2017.011.30171 e anteriores; 2015.006.30523 e anteriores.
Corrigidas em
Corrigido no boletim Adobe APSB20-48 (agosto de 2020), com atualizações para as linhas 2020.x (Continuous), 2017.x e 2015.x (Classic). Os números de build exatos das versões corrigidas não constam no material consultado — confirme a versão mínima aplicável à sua linha diretamente no boletim oficial da Adobe.

Como se proteger

A Adobe corrigiu a falha através do boletim APSB20-48 (agosto de 2020), cobrindo as linhas Continuous (2020.x), Classic 2017 e Classic 2015. Atualizar para a versão corrigida correspondente à sua linha de suporte é a mitigação real; não temos, nas fontes consultadas, os números de build exatos citados no boletim, então a recomendação é verificar diretamente o APSB20-48 e aplicar a versão mínima indicada para sua linha antes de considerar o ambiente corrigido.

Se a atualização imediata não for viável, o paliativo prático é desabilitar a execução de JavaScript no Acrobat/Reader (em Editar > Preferências > JavaScript, desmarcando 'Enable Acrobat JavaScript'), já que o vetor depende inteiramente de JavaScript embutido em PDF. Isso reduz funcionalidade de formulários e PDFs interativos que dependem de scripts, então tem custo funcional real em ambientes que usam esses recursos.

Abrir PDFs apenas em visualizadores sem motor JavaScript embutido, ou em sandbox/isolamento, reduz a superfície, mas não é substituto para o patch. Filtro de e-mail/gateway que bloqueia anexos PDF de remetentes não confiáveis ajuda a reduzir a entrega do vetor, mas não elimina o risco se o usuário obtiver o arquivo por outro canal.

Como detectar

Não há assinatura de rede confiável, já que a exploração ocorre localmente dentro do processo do Acrobat/Reader ao processar um PDF. Sinais indiretos incluem: PDFs recebidos por e-mail ou download contendo JavaScript que manipula o array `this.dataObjects` (criação seguida de exclusão e novo acesso ao mesmo índice/nome), crashes do processo Acrobat.exe/AcroRd32.exe com falha atribuída ao módulo EScript.api, e alertas de EDR para corrupção de heap ou exceções de acesso inválido nesse mesmo módulo. Sandboxes de análise de PDF que registram chamadas à API JavaScript do Acrobat podem capturar o padrão de criação/exclusão anômala de data objects como indicador.

Pesquisado e redigido com IA a partir do advisory do fornecedor e de análises públicas, com as fontes acima. Confira sempre a versão corrigida no advisory oficial antes de agir.
Adobe Acrobat and Reader versions 2020.009.20074 and earlier, 2020.001.30002, 2017.011.30171 and earlier, and 2015.006.30523 and earlier have an use-after-free vulnerability. Successful exploitation could lead to arbitrary code execution .
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
⚠ Recursos públicos, para você avaliar a exposição de sistemas que controla ou está autorizado a testar. Teste apenas com autorização.