
¡Replicado usando la instrumentación de afl fuzzer! Agradecimientos a antonio-morales.
CVE-2019-13288 es una vulnerabilidad identificada en Xpdf versión 4.01.01, específicamente dentro de la función Parser::getObj() en Parser.cc. Este fallo puede provocar recursión infinita al procesar un archivo PDF especialmente diseñado, lo que resulta en una condición de Denegación de Servicio (DoS). La vulnerabilidad es similar a CVE-2018-16646 y subraya la importancia de una validación robusta de entrada en funciones recursivas.
ID de CVE: CVE-2019-13288
Software Afectado: Xpdf 4.01.01
Tipo de Vulnerabilidad: Recursión No Controlada (CWE-674)
Impacto: Denegación de Servicio (DoS)
Puntuación Base CVSS v3.0: 5.5 (Media)
Parser::getObj()La función Parser::getObj() es responsable de analizar objetos dentro de un archivo PDF. En Xpdf 4.01.01, esta función carece de comprobaciones adecuadas para prevenir la recursión infinita. Un atacante puede crear un archivo PDF con una estructura de objetos maliciosa que haga que getObj() se llame a sí mismo de forma recursiva sin terminación, lo que provoca el agotamiento de la pila y el bloqueo de la aplicación.
Un atacante crea un archivo PDF malicioso con una estructura de objetos específica diseñada para desencadenar una recursión infinita en la función Parser::getObj(). Cuando este archivo es procesado por Xpdf o cualquier aplicación que utilice su biblioteca, la aplicación entra en un bucle recursivo interminable, consumiendo recursos del sistema y eventualmente colapsando.
Un archivo PDF de prueba de concepto (PoC) que demuestra esta vulnerabilidad está disponible más abajo en este repositorio.
Para ver paso a paso cómo se replicó, consulta a continuación:
Nota: Este PoC está destinado únicamente a fines educativos y de investigación. El uso no autorizado contra sistemas sin permiso explícito es poco ético y puede ser ilegal. ¡No seas malo!
Este análisis se inspiró en las metodologías presentadas en la guía Fuzzing101 de Antonio Morales. La vulnerabilidad fue inicialmente identificada mediante técnicas de fuzzing, destacando la efectividad de dichos enfoques para descubrir fallos de software ocultos.
¡Antonio-Morales es la cabra! Gracias, sin tu investigación no habría podido replicarlo.
Esta información se proporciona únicamente con fines educativos y de investigación. El autor no es responsable del mal uso de la información aquí contenida. Asegúrese siempre de tener la autorización adecuada antes de probar o explotar vulnerabilidades en cualquier sistema.