首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >CVE-2026-31938|jsPDF存在HTML注入漏洞(POC)

CVE-2026-31938|jsPDF存在HTML注入漏洞(POC)

作者头像
信安百科
发布2026-03-30 14:48:14
发布2026-03-30 14:48:14
720
举报
文章被收录于专栏:信安百科信安百科

0x00 前言

jsPDF 是一个使用 JavaScript 创建 PDF 文档的开源库,它允许开发者直接在浏览器或 Node.js 环境中生成、操作 PDF 文件,无需依赖服务器端处理或额外插件。该库功能全面,支持添加文本、图像、图形、表格,并允许设置字体、颜色和布局。通过其丰富的 API,用户可以轻松实现复杂文档的生成,如报告、发票和表单,并能以多种方式输出,包括浏览器内预览、下载或作为数据流传输。

0x01 漏洞描述

用户对输出函数的options参数的控制允许攻击者将任意HTML(如脚本)注入到打开创建的PDF的浏览器上下文中。受影响的重载和选项包括:

“pdfojectnewwindow”:pdfObjectUrl选项和整个选项对象,它是JSON序列化的,并逐字包含在生成的HTML字符串中。

“pdfjsnewindow”:pdfJsUrl和文件名选项

“dataurlnewwindow”:文件名选项

在以下情况下可以利用该漏洞:攻击者为输出选项提供值,例如通过web界面。然后,这些值未经消毒(自动或半自动)传递给攻击受害者。受害者使用浏览器中的一种易受攻击的方法重载创建并打开带有攻击向量的PDF。因此,攻击者可以注入在受害者浏览器上下文中运行的脚本,并从该上下文中提取或修改机密。

0x02 CVE编号

CVE-2026-31938

0x03 影响版本

jsPDF <=4.2.0

0x04 漏洞详情

POC:

代码语言:javascript
复制
import { jsPDF } from 'jspdf';
const doc = new jsPDF();
const payload =  'x\"></iframe><script>window.__n=1</script><iframe src="';
doc.output('pdfjsnewwindow', {
  filename: payload,
  pdfJsUrl: 'viewer.html'
});

0x05 参考链接

https://github.com/parallax/jsPDF/security/advisories/GHSA-wfv2-pwc8-crg5

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-03-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 信安百科 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档