在近期的一次安全审计中,ZeroXJacks研究员曝光了jsPDF库中的一个严重隐患,给数百万Web开发者带来了巨大的风险。这个漏洞让攻击者能把任意对象或代码插入生成的PDF文档,这对于使用该库来创建PDF文件的应用来说极为危险。漏洞的成因在于java.js文件对用户输入缺乏必要的过滤。例如,关键代码行把未做任何处理的字符串直接拼接到PDF流里,没有把括号这些特殊字符转义掉。攻击者可以利用这一点,构造出) >> /Action之类的载荷来提前截断字符串,从而注入恶意结构。 为了说明这个问题的严重程度,我们引入CVE-2026-257558.8这个ID来描述它。该漏洞的CVSS评分高达8分,属于高风险级别。它通过addJS方法让恶意代码在生成的PDF中执行,这与传统的基于Java的XSS攻击不同,它直接破坏了PDF对象的层次结构。 这种攻击可以绕过Java禁用限制自动触发/OpenAction等操作,还能修改/Annots和/Signatures部分。这不仅会篡改文档内容和元数据,还会导致钓鱼等后果。值得注意的是,许多轻量级或移动PDF查看器在解析对象时非常死板,反而更容易中招。 解决这个问题最直接的办法就是把库升级到4.1.0或更高版本。在补丁出来之前,开发者必须放弃使用addJS这类方法来处理不可信或用户生成的内容,并且在客户端生成PDF的工作流程里加上严格的输入验证。