最新消息:关注人工智能 AI赋能新媒体运营

jsPDF修复重大漏洞,Node.js环境或被滥用窃取本地敏感数据

科技资讯 admin 浏览

广泛用于JavaScript应用程序生成PDF文件的库jsPDF近日被披露存在一项重大安全漏洞,主要影响在服务器端使用jsPDF生成PDF文件的应用场景。攻击者可能通过不当的文件加载机制,未经授权读取并泄露服务器本地文件系统中的敏感数据。该漏洞已被编号为CVE-2025-68428,CVSS风险评分高达9.2。

该漏洞属于本地文件包含(Local File Inclusion)与路径遍历(Path Traversal)问题,影响jsPDF 4.0.0之前的版本。当应用程序在Node.js环境中,将未经妥善验证的文件路径作为参数传入jsPDF的loadFile方法时,攻击者可能读取Node.js进程权限范围内可访问的本地文件,并将文件内容嵌入到生成的PDF文件中。

除了loadFile之外,jsPDF的addImage、html与addFont等方法,同样可能在底层调用该文件加载机制,因此也受到此漏洞影响。不过,根据官方说明,该问题仅影响jsPDF的Node.js版本,包括dist/jspdf.node.js与dist/jspdf.node.min.js,浏览器端版本不受影响。

jsPDF是npm生态系统中被广泛采用的包,每周下载量超过350万次。安全研究人员指出,若jsPDF部署于服务器端环境,且用户输入可直接影响上述受影响方法的文件路径参数,便可能导致配置文件、环境变量、凭证信息等敏感数据泄露。

针对此漏洞,jsPDF团队已在4.0.0版本中完成修复,默认限制对文件系统的访问,并改用Node.js的权限模式进行管控。官方也指出,在较新的Node.js版本中,可在生产环境启用--permissions标志,以降低被滥用的风险。该功能自Node.js v20.0.0起以实验性方式提供,并自v22.13.0、v23.5.0与v24.0.0起趋于稳定。

不过,安全研究人员提醒,启用--permissions标志将影响整个Node.js进程,而非仅限于jsPDF本身,实际部署时需注意对既有应用行为的影响。此外,若在--allow-fs-read设置中赋予过于宽松的文件系统读取权限,可能削弱此次修复的防护效果。

对于仍使用旧版Node.js的环境,jsPDF团队建议在应用程序处理用户输入时,特别注意文件路径的来源与合法性,避免将未经检查的路径直接交由jsPDF处理,以降低潜在风险。