CVE-2025-68428jsPDF是一个用于在JavaScript中生成PDF文件的开源库。该漏洞存在于jsPDF 4.0.0之前的node.js构建版本中,由于loadFile、addImage、html和addFont等方法对用户提供的文件路径缺乏充分的验证和限制,攻击者可以通过构造特殊的文件路径实现目录遍历攻击,从而读取服务器或用户本地文件系统中的任意文件内容。此漏洞仅影响node.js环境下的构建版本(dist/jspdf.node.js和dist/jspdf.node.min.js),浏览器版本不受影响。由于该库广泛应用于前端和后端项目中,攻击者可利用此漏洞窃取敏感配置文件、密钥、凭据等机密信息,对系统安全造成严重威胁。
jsPDF在node.js环境下的构建版本中实现了多个文件读取相关的方法,包括loadFile、addImage、html和addFont。这些方法在处理用户提供的文件路径参数时,未对路径中的特殊字符(如../)进行过滤或对访问路径进行安全边界检查。当攻击者传入类似../../../../etc/passwd的路径时,系统会进行路径解析并允许访问应用运行目录之外的系统文件。攻击者利用此漏洞可以读取任意本地文件,包括但不限于:系统配置文件(如/etc/passwd、.env)、应用程序密钥、数据库凭据、API密钥、源代码文件等敏感信息。文件内容会被完整地嵌入到生成的PDF文档中,攻击者只需获取生成的PDF即可获取目标文件内容。此漏洞的利用条件较为宽松,无需认证且可通过网络发起攻击。