IPBUF安全漏洞报告
English
CVE-2026-22787 CVSS 6.1 中危

CVE-2026-22787 html2pdf.js XSS跨站脚本漏洞

披露日期: 2026-01-14

漏洞信息

漏洞编号
CVE-2026-22787
漏洞类型
XSS跨站脚本
CVSS评分
6.1 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
html2pdf.js

相关标签

XSShtml2pdf.js跨站脚本客户端漏洞CVE-2026-22787

漏洞概述

html2pdf.js是一个纯客户端的网页或元素转PDF工具。在0.14.0之前的版本中存在存储型XSS漏洞,当传入文本内容而非DOM元素时,程序未对其进行充分的HTML转义和清理就直接插入到文档中。攻击者可通过构造恶意脚本的文本内容,诱骗用户处理该内容时执行任意JavaScript代码。成功利用此漏洞可窃取用户会话Cookie、劫持用户操作或进行其他恶意行为,对网页数据的机密性、完整性和可用性构成威胁。由于漏洞位于客户端JavaScript库,任何使用该库处理用户可控输入的应用都可能受到影响。

技术细节

漏洞源于html2pdf.js在处理文本输入时直接使用innerHTML或类似方法插入内容,绕过了浏览器的XSS防护机制。具体来说,当用户调用html2pdf()并传入字符串文本时,程序会创建一个临时容器元素,然后将文本内容赋值给该元素的innerHTML属性。如果文本中包含<script>标签、事件处理器(如onerror、onload)或JavaScript URI(如javascript:),这些内容会被浏览器解析执行。攻击者可以利用这一特性,在文本中嵌入恶意脚本,当html2pdf.js处理并渲染该文本时,脚本将在受害者浏览器中执行。漏洞的触发条件是用户必须主动使用html2pdf.js处理包含恶意代码的文本,或者网页本身会动态处理用户提供的文本内容。

攻击链分析

STEP 1
1
攻击者构造包含恶意JavaScript的文本内容
STEP 2
2
诱骗用户使用html2pdf.js处理该恶意文本
STEP 3
3
html2pdf.js将文本插入DOM时未进行清理
STEP 4
4
浏览器执行恶意脚本,窃取Cookie或劫持会话

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import html2pdf from 'html2pdf.js'; // PoC: 恶意文本通过html2pdf.js执行XSS const maliciousText = '<img src=x onerror="alert(document.cookie)">'; html2pdf().from(maliciousText).save();

影响范围

html2pdf.js < 0.14.0

防御指南

临时缓解措施
临时措施:对所有传入html2pdf.js的文本进行HTML转义,避免包含<script>、事件处理器或javascript:协议。可使用DOMPurify等库进行清理。

参考链接

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