1月8日消息,科技媒体bleepingcomputer昨日发布报告称,当前极受欢迎的Javascript PDF生成库jsPDF近期曝出一个严重安全漏洞,被标记为CVE-2025-68428。该漏洞的CVSS严重性评分高达9.2分,目前官方已在最新发布的4.0.0版本中修复了此问题。
需要了解的是,jsPDF是一个功能强大的开源JavaScript库,其在npm注册表上的每周下载量超过350万次,应用非常广泛。
该库允许开发者直接在浏览器端(即客户端)生成PDF文件,无需依赖后端服务器。它支持添加文本、图片、形状、表格,并可将HTML内容转换为PDF,非常适合需要动态生成报表、发票等文档的前端应用。通过其直观的API,开发者可以进行文本格式设置、图像插入、多页处理、自动分页和样式自定义等丰富操作。
此次曝光的漏洞追踪编号为CVE-2025-68428,其严重程度评分高达9.2分。漏洞的核心在于本地文件包含(LFI)与路径遍历缺陷。攻击者利用此缺陷可读取服务器本地文件系统中的敏感数据,并将其直接包含在生成的PDF文件中导出,从而导致机密信息泄露。
该漏洞主要影响jsPDF的Node.js构建版本(即dist/jspdf.node.js等文件)。问题出在loadFile等文件加载机制上。
当应用程序将未经“清洗”的用户输入直接作为文件路径传递给jsPDF后,攻击者便可操纵路径指向系统敏感文件(如/etc/passwd或各类配置文件)。除loadFile外,addImage、html和addFont等调用文件加载的方法也受波及。
维护团队已在jsPDF 4.0.0版本中修复该漏洞。新版本默认限制了文件系统访问权限,转而依赖Node.js的权限模型来管理文件读取操作。
然而,安全公司Endor Labs的研究人员指出,该权限模型在Node.js 20中仍处于实验阶段。因此,专家建议开发者将运行环境升级至Node.js 22.13.0、23.5.0或24.0.0及更高版本,以确保修复方案稳定生效。
Endor Labs同时警告,单纯升级库版本并非万无一失。开发者在启用修复方案建议的--permission标志时需格外小心,因为该标志会影响整个Node.js进程。若在配置--allow-fs-read(允许文件系统读取)时权限设置过宽,可能会抵消补丁的修复效果,导致系统再次暴露于风险之中。
对于无法立即升级Node.js版本的旧项目,jsPDF团队建议在将用户提供的路径传递给库函数之前,必须进行严格的输入验证和清洗。
Endor Labs的报告也补充说明,如果文件路径是硬编码的、来自受信任的配置源,或输入经过了严格的白名单过滤,可以大幅降低该漏洞的被利用风险。

