
CVE-2024-4367
यह प्रोजेक्ट CVE-2024-4367 का प्रदर्शन और विश्लेषण करता है, जो Mozilla के PDF.js लाइब्रेरी में एक उच्च-गंभीरता वाली कमजोरी है जो फ़ॉन्ट हैंडलिंग कोड में अनुचित प्रकार जांच के माध्यम से मनमाना JavaScript निष्पादन की अनुमति देती है। हमारा शोध दिखाता है कि एक दुर्भावनापूर्ण रूप से तैयार किया गया PDF Electron ऐप्स जैसे संदर्भों में JavaScript निष्पादित कर सकता है, संभावित रूप से दूरस्थ कोड निष्पादन तक बढ़ सकता है।
🔗 GitHub रिपॉजिटरी: Hacking-pdf.js-vulnerability
fontMatrix के माध्यम से मनमाना JavaScript निष्पादन।ex1.pdf और ex-gist.pdf अलर्ट या रिमोट-स्क्रिप्ट निष्पादन दिखाते हैं।src/components/ReactPdfViewer.tsx – react-pdf 5.7.2 के साथ बनाया गया React व्यूअर (कमजोर pdfjs-dist 2.16.105 बंडल करता है)ex1.pdf – अलर्ट ट्रिगर करने वाला दुर्भावनापूर्ण PDFex-gist.pdf – दुर्भावनापूर्ण PDF जो रिमोट JS लाता है और निष्पादित करता हैCVE-2024-4367_Report_Hacking_Project.pdf – पूरी तकनीकी रिपोर्ट और शोषण विश्लेषणPDF.js के fontMatrix सरणी तत्वों का अनुचित रूप से मान्यीकरण किया गया—स्ट्रिंग्स को सीधे new Function(...) के साथ संकलित JavaScript में इंजेक्ट करने की अनुमति देना। यह हमलावरों को दुर्भावनापूर्ण फ़ॉन्ट डेटा तैयार करने की अनुमति देता है, जिससे जब eval-जैसे ऑपरेशन की अनुमति होती है तो मनमाना कोड निष्पादन होता है।
उदाहरण कमजोर कोड पथ:
fontMatrix = ["alert('XSS')", 0, 0, 1, 0, 0]; // Injected payload
// Results in compiled function like:
function drawGlyph() {
transform("alert('XSS')", 0, 0, 1, 0, 0); // Unsafe execution
}
इस कमजोरी को कम करने और PDF.js (या इसे बंडल करने वाली लाइब्रेरीज़) को एम्बेड करने वाले अनुप्रयोगों की सुरक्षा के लिए, निम्नलिखित उपाय अपनाएँ:
isEvalSupported = false सेट करें ताकि गतिशील Function संकलन बंद हो जाए।fontMatrix सरणी) पर स्पष्ट typeof जाँचें जोड़ें।package.json/yarn.lock को अद्यतित रखें और सुरक्षा पैच स्वचालित रूप से लागू करें।एक सख्त Content-Security-Policy जोड़ें:
Content-Security-Policy: script-src 'self'; object-src 'none';