← back
CVE-2020-9715highunder attackCWE-416

CVE-2020-9715

83Vexday Risk Score

Prioritize patching. It under exploitation confirmed by CISA and has a public proof of concept.

ssvc Actcvss 7.8epss 48%
from disclosure to weapon509 days
Published on NVDAug 19
1st PoC+509d
CISA KEV+2063d
exploitation probability
48%top 1% of all CVEs
observed exploitation
yesCISA + VulnCheck
4 public exploit(s)
Action required by CISAfederal deadline: 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.

Summary

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.

Technical detail

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.

How it’s exploited

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.

Versions

Affected
Adobe Acrobat and Reader 2020.009.20074 e anteriores; 2020.001.30002; 2017.011.30171 e anteriores; 2015.006.30523 e anteriores.
Fixed in
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.

How to protect

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.

How to detect

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.

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.
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
⚠ Public resources, to assess the exposure of systems you control or are authorized to test. Test only with authorization.