CVE-2026-22787html2pdf.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处理包含恶意代码的文本,或者网页本身会动态处理用户提供的文本内容。