CVE-2026-25940 jsPDF PoC
CVE-2026-25940 के लिए एक प्रूफ-ऑफ-कॉन्सेप्ट जो प्रदर्शित करता है कि कैसे विशेष रूप से तैयार किए गए AcroForm रेडियो बटन अपीयरेंस कमजोर PDF व्यूअर्स (जैसे, Foxit) में एम्बेडेड JavaScript को ट्रिगर कर सकते हैं। इस रिपॉजिटरी में एक Node-आधारित जनरेटर और एक ब्राउज़र व्यूअर हार्नेस शामिल है जो विभिन्न पार्सिंग पथों का परीक्षण करने के लिए है।
⚠️ केवल पृथक, गैर-उत्पादन वातावरण में उपयोग करें। नमूना पेलोड जानबूझकर JavaScript निष्पादित करते हैं और नेटवर्क अनुरोध या बाहरी प्रोग्राम को आमंत्रित कर सकते हैं। किसी ऐसे होस्ट पर अविश्वसनीय व्यूअर्स के साथ जनरेट की गई PDF न खोलें जिसकी आप परवाह करते हैं।
रिपॉजिटरी सामग्री
- poc.js: कई रेडियो बटन विकल्पों और अलग-अलग अपीयरेंस स्ट्रीम के साथ एक दुर्भावनापूर्ण PDF जनरेट करता है ताकि विभिन्न व्यवहारों को प्रदर्शित किया जा सके।
- viewer.html: न्यूनतम व्यूअर हार्नेस जो ब्राउज़र में PoC जनरेट करने या मौजूदा नमूना लोड करने के लिए है, और इसे मूल रूप से (iframe) और PDF.js के माध्यम से दोनों तरह से रेंडर करता है।
- package.json: Node PoC के लिए jsPDF निर्भरता घोषित करता है।
पूर्वापेक्षाएँ
सेटअप
- निर्भरताएँ स्थापित करें:
npm install
- (वैकल्पिक) HTML/JS की स्वच्छ लोडिंग के लिए व्यूअर को स्थानीय रूप से सर्व करें:
npx http-server .
# फिर http://localhost:8080/viewer.html खोलें
Node के माध्यम से PoC PDF जनरेट करें
- जनरेटर चलाएँ:
node poc.js
- स्क्रिप्ट प्रोजेक्ट रूट में
test.pdf लिखती है। व्यवहार देखने के लिए इसे अपने लक्षित PDF व्यूअर के साथ खोलें। यदि आप आउटबाउंड अनुरोधों से बचना चाहते हैं तो नेटवर्किंग को ब्लॉक रखें।
ब्राउज़र-आधारित व्यूअर वर्कफ़्लो
- viewer.html को सीधे ब्राउज़र में या स्थानीय सर्वर के माध्यम से खोलें।
- ब्राउज़र में दुर्भावनापूर्ण दस्तावेज़ बनाने और इसे iframe (मूल/ब्राउज़र हैंडलर) और PDF.js कैनवास दोनों में लोड करने के लिए Generate PoC PDF पर क्लिक करें।
- वैकल्पिक रूप से, Load file चुनें और Node स्क्रिप्ट के साथ जनरेट की गई PDF का चयन करें।
- JavaScript निष्पादन के साक्ष्य के लिए कंसोल/नेटवर्क गतिविधि देखें; कुछ व्यूअर अलर्ट दबा सकते हैं जबकि एम्बेडेड क्रियाएँ अभी भी चल रही हों।
नोट्स
- पेलोड Foxit व्यवहार के अनुरूप हैं; अन्य व्यूअर आंशिक रूप से उन्हें कम कर सकते हैं या ब्लॉक कर सकते हैं।
- यदि आप पेलोड को अनुकूलित करते हैं, तो आकार समान रखें ताकि ऑब्जेक्ट ऑफसेट न बदलें जिन पर कुछ एक्सप्लॉइट चेन निर्भर करती हैं।
- प्रतिबंधित नेटवर्क आउटगोइंग के साथ हमेशा VM या सैंडबॉक्स में परीक्षण करें।