
Reproduit en utilisant l'instrumentation du fuzzer afl ! Remerciements à antonio-morales.
CVE-2019-13288 est une vulnérabilité identifiée dans Xpdf version 4.01.01, plus précisément dans la fonction Parser::getObj() dans Parser.cc. Ce défaut peut entraîner une récursion infinie lors du traitement d'un fichier PDF spécialement conçu, provoquant un déni de service (DoS). La vulnérabilité est similaire à CVE-2018-16646 et souligne l'importance d'une validation robuste des entrées dans les fonctions récursives.
Identifiant CVE : CVE-2019-13288
Logiciel affecté : Xpdf 4.01.01
Type de vulnérabilité : Récursion non contrôlée (CWE-674)
Impact : Déni de service (DoS)
Score de base CVSS v3.0 : 5.5 (Moyen)
Parser::getObj()La fonction Parser::getObj() est chargée d'analyser les objets d'un fichier PDF. Dans Xpdf 4.01.01, cette fonction ne dispose pas de vérifications adéquates pour empêcher une récursion infinie. Un attaquant peut créer un fichier PDF avec une structure d'objets malveillante qui amène getObj() à s'appeler récursivement sans fin, entraînant l'épuisement de la pile et le crash de l'application.
Un attaquant crée un fichier PDF malveillant avec une structure d'objets spécifique conçue pour déclencher une récursion infinie dans la fonction Parser::getObj(). Lorsque ce fichier est traité par Xpdf ou toute application utilisant sa bibliothèque, l'application entre dans une boucle récursive sans fin, consommant les ressources système et finissant par planter.
Un fichier PDF de preuve de concept (PoC) démontrant cette vulnérabilité est disponible ci-dessous dans ce dépôt.
Pour voir étape par étape comment cela a été reproduit, voir ci-dessous :
Note : Ce PoC est destiné uniquement à des fins éducatives et de recherche. Toute utilisation non autorisée contre des systèmes sans autorisation explicite est contraire à l'éthique et peut être illégale. Ne faites pas de bêtises !
Cette analyse a été inspirée par les méthodologies présentées dans le guide Fuzzing101 d'Antonio Morales. La vulnérabilité a été initialement identifiée grâce à des techniques de fuzzing, soulignant l'efficacité de telles approches pour découvrir des failles logicielles cachées.
Ces informations sont fournies uniquement à des fins éducatives et de recherche. L'auteur n'est pas responsable de toute utilisation abusive des informations contenues ici. Assurez-vous toujours d'avoir une autorisation appropriée avant de tester ou d'exploiter des vulnérabilités sur un système.