
Replicado usando instrumentação do fuzzer afl! Créditos ao antonio-morales.
CVE-2019-13288 é uma vulnerabilidade identificada no Xpdf versão 4.01.01, especificamente na função Parser::getObj() em Parser.cc. Esta falha pode levar a recursão infinita ao processar um arquivo PDF especialmente criado, resultando em uma condição de Negação de Serviço (DoS). A vulnerabilidade é semelhante à CVE-2018-16646 e ressalta a importância de uma validação robusta de entrada em funções recursivas.
CVE ID: CVE-2019-13288
Software Afetado: Xpdf 4.01.01
Tipo de Vulnerabilidade: Recursão Não Controlada (CWE-674)
Impacto: Negação de Serviço (DoS)
Pontuação Base CVSS v3.0: 5.5 (Médio)
Parser::getObj()A função Parser::getObj() é responsável por analisar objetos dentro de um arquivo PDF. No Xpdf 4.01.01, esta função não possui verificações adequadas para evitar recursão infinita. Um atacante pode criar um arquivo PDF com uma estrutura de objetos maliciosa que faz com que getObj() chame a si mesmo recursivamente sem terminação, levando ao esgotamento da pilha e à queda do aplicativo.
Um atacante cria um arquivo PDF malicioso com uma estrutura de objetos específica projetada para acionar recursão infinita na função Parser::getObj(). Quando este arquivo é processado pelo Xpdf ou por qualquer aplicativo que utilize sua biblioteca, o aplicativo entra em um loop recursivo infinito, consumindo recursos do sistema e eventualmente travando.
Um arquivo PDF de prova de conceito (PoC) demonstrando esta vulnerabilidade está disponível abaixo neste repositório.
Para ver o passo a passo de como foi replicado, veja abaixo:
Nota: Este PoC é destinado apenas para fins educacionais e de pesquisa. O uso não autorizado contra sistemas sem permissão explícita é antiético e pode ser ilegal. Não seja mau!
Esta análise foi inspirada pelas metodologias apresentadas no guia Fuzzing101 de Antonio Morales. A vulnerabilidade foi inicialmente identificada por meio de técnicas de fuzzing, destacando a eficácia dessas abordagens na descoberta de falhas ocultas de software.
Esta informação é fornecida apenas para fins educacionais e de pesquisa. O autor não é responsável por qualquer uso indevido das informações contidas neste documento. Sempre garanta que você tenha autorização adequada antes de testar ou explorar vulnerabilidades em qualquer sistema.