CVE-2026-3778该漏洞源于应用程序在处理PDF中的JavaScript时,未能有效检测或防止循环的PDF对象引用。攻击者可以精心设计包含相互引用的页面和注释的PDF文档,形成引用循环。当此类文档被传递给执行深度遍历的API(如SOAP接口)时,会触发不可控的递归调用,导致栈内存耗尽,进而引发应用程序崩溃。
该漏洞利用了PDF解析器在处理复杂对象图时的逻辑缺陷。PDF文档结构允许对象之间相互引用,正常解析过程通常涉及遍历这些对象图以提取内容或执行脚本。漏洞触发点在于JavaScript处理过程中对对象关系的深度遍历。当攻击者构造对象A引用对象B,同时对象B又引用对象A的循环结构时,如果后台API(例如SOAP服务)在处理文档时采用递归算法进行深度优先遍历且缺乏循环检测机制(如访问标记),程序将陷入无限递归。随着递归深度的增加,调用栈迅速填满,最终导致栈溢出,操作系统强制终止进程,造成拒绝服务。由于攻击向量为本地,通常需要用户交互打开文件。