CVE-2019-13288 是在 Xpdf 4.01.01 版本中发现的漏洞,具体位于 Parser.cc 的 Parser::getObj() 函数中。此缺陷在处理特制的 PDF 文件时可能导致 无限递归,进而引发 拒绝服务 (DoS) 条件。该漏洞类似于 CVE-2018-16646,凸显了在递归函数中进行稳健输入验证的重要性。
CVE 编号:CVE-2019-13288
受影响软件:Xpdf 4.01.01
漏洞类型:不受控递归 (CWE-674)
影响:拒绝服务 (DoS)
CVSS v3.0 基础评分:5.5 (中等)
Parser::getObj()Parser::getObj() 函数负责解析 PDF 文件中的对象。在 Xpdf 4.01.01 中,该函数缺乏足够的检查来防止无限递归。攻击者可以构造一个包含恶意对象结构的 PDF 文件,导致 getObj() 无终止地递归调用自身,从而造成栈耗尽和应用程序崩溃。
攻击者构造一个恶意 PDF 文件,其中包含特定的对象结构,旨在触发 Parser::getObj() 函数中的无限递归。当 Xpdf 或任何使用其库的应用程序处理该文件时,应用程序将陷入无限递归循环,消耗系统资源并最终崩溃。
下面在本仓库中提供了一个演示此漏洞的概念验证 (PoC) PDF 文件。
有关如何复现的详细步骤,请参见下方:
注意:此 PoC 仅用于教育和研究目的。未经明确许可对系统进行未授权使用是不道德且可能违法的。不要做坏事!
本分析受 Antonio Morales 的 Fuzzing101 指南 中介绍的方法启发。该漏洞最初通过模糊测试技术发现,凸显了此类方法在揭示隐藏软件缺陷方面的有效性。
此信息仅供教育和研究目的。作者对本文所含信息的任何滥用不承担任何责任。在对任何系统测试或利用漏洞之前,请务必确保拥有适当的授权。