JavaScript应用程序中用于生成PDF文档的jsPDF库存在一个严重漏洞,攻击者可通过将本地文件系统内容嵌入生成的文件来窃取敏感数据。

在jsPDF的Node.js构建版本中,'loadFile'函数用于读取本地文件系统。当用户可控的输入作为文件路径传递时,问题随之产生——这会导致jsPDF将指定文件的内容嵌入生成的PDF输出中。

漏洞利用示例

来源:Parallax

根据jsPDF安全公告,该问题仅影响库的Node.js构建版本,即dist/jspdf.node.js和dist/jspdf.node.min.js文件。

应用安全公司Endor Labs在详细技术报告中指出,如果文件路径采用硬编码、来自可信配置或对输入使用严格白名单机制,则漏洞利用风险较低或不存在。

CVE-2025-68428已在jsPDF 4.0.0版本中修复,修复方式包括默认限制文件系统访问,并转而依赖Node.js权限模式。

但Endor Labs研究人员指出,该模式在Node 20中仍处于实验阶段,因此建议使用22.13.0、23.5.0或24.0.0及以上版本。

另一个需要注意的问题是:开发者建议的临时解决方案——启用'--permission'标志会影响整个Node.js进程,而不仅仅是jsPDF。

Endor Labs同时强调,在'--allow-fs-read'配置标志中设置过于宽泛的文件系统权限会使修复措施失效。

过度宽松的配置

来源:Endor Labs

jsPDF团队建议旧版Node在将用户提供的路径传递给jsPDF之前进行路径净化处理。

鉴于jsPDF在众多项目中的广泛部署,CVE-2025-68428很可能被积极利用。

标签: jsPDF, CVE-2025-68428, Node.js安全漏洞, PDF生成安全, 文件系统访问

添加新评论