CVE-2026-41168pypdf是一个广泛使用的开源纯Python PDF库。在6.10.1版本之前,该库存在一个安全漏洞,允许攻击者精心制作恶意PDF文件以触发长时间的运行时间。该漏洞的根源在于处理交叉引用流时,未正确验证过大的/Size值,或者处理对象流时未验证过大的/N值。成功利用此漏洞可能导致应用程序在解析PDF时资源耗尽,从而造成拒绝服务,影响系统可用性。
该漏洞属于拒绝服务漏洞,其根本原因是pypdf在解析PDF文件结构时,对特定对象字段的数值校验不严格。具体而言,PDF文件规范定义了交叉引用流和对象流,其中包含用于索引对象的/Size和/N字段。在受影响版本中,当解析器遇到包含异常大数值的/Size字段(在交叉引用流中)或/N字段(在对象流中)时,未能进行有效的边界检查。攻击者可以构造包含这些畸形字段的恶意PDF文件。当应用程序使用pypdf处理此类文件时,库会尝试根据这些巨大的数值进行初始化或遍历操作。这会导致进入长循环或尝试分配不可用的内存资源,进而消耗大量的CPU周期和内存。由于攻击无需用户交互即可通过网络触发,这极易导致服务不可用,影响业务连续性。