IPBUF安全漏洞报告
English
CVE-2026-31898 CVSS 8.1 高危

CVE-2026-31898 jsPDF createAnnotation方法对象注入漏洞

披露日期: 2026-03-18

漏洞信息

漏洞编号
CVE-2026-31898
漏洞类型
对象注入/代码注入
CVSS评分
8.1 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
jsPDF

相关标签

对象注入代码注入jsPDFPDF注入JavaScript注入

漏洞概述

jsPDF是一个用于在JavaScript中生成PDF文件的库。在4.2.1之前的版本中,createAnnotation方法的参数存在安全漏洞,攻击者可以通过color参数注入任意PDF对象,包括JavaScript动作。当用户打开或与生成的PDF进行交互时,这些恶意对象可能被触发执行,从而导致远程代码执行等严重后果。该漏洞需要用户交互才能触发,攻击者需要诱导用户打开特制的PDF文件。

技术细节

jsPDF库在处理createAnnotation方法的color参数时,未对用户输入进行充分验证。攻击者可以利用此漏洞注入任意PDF对象语法,如JavaScript动作。PDF规范允许在注解中嵌入JavaScript代码,当PDF被打开或用户与特定注解交互时,这些代码会自动执行。漏洞代码位于src/modules/annotations.js的第193-208行,修复版本为4.2.1。

攻击链分析

STEP 1
步骤1
攻击者识别目标系统使用的jsPDF库版本(< 4.2.1)
STEP 2
步骤2
构造恶意PDF文件,通过createAnnotation方法的color参数注入JavaScript代码
STEP 3
步骤3
诱导用户打开特制的PDF文件或与其交互
STEP 4
步骤4
当PDF被打开时,注入的JavaScript代码自动执行,导致远程代码执行

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
const jsPDF = require('jspdf'); const doc = new jsPDF(); doc.createAnnotation({ type: 'text', bounds: { x: 10, y: 10, w: 100, h: 100 }, color: '%EF %BFBD JavaScript注入代码' });

影响范围

jsPDF < 4.2.1

防御指南

临时缓解措施
如果无法立即升级,可对所有用户输入进行严格的验证和清理,确保不包含PDF对象语法。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表