
CVE-2026-24688 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो pypdf के आउटलाइन पार्सिंग में एक डिनायल-ऑफ-सर्विस भेद्यता है। इसमें दुर्भावनापूर्ण PDF जनरेटर और प्रजनन स्क्रिप्ट शामिल हैं जो मेमोरी थकावट और सिस्टम क्रैश का प्रदर्शन करते हैं।
इस रिपॉजिटरी में CVE-2026-24688 को ट्रिगर करने के लिए प्रूफ ऑफ कॉन्सेप्ट कोड शामिल है।
pypdf की आउटलाइन (बुकमार्क) पार्सिंग लॉजिक में गंभीर डेनियल ऑफ सर्विस भेद्यता। सर्कुलर आउटलाइन रेफरेंस वाले PDF को प्रोसेस करते समय, पार्सर एक अनंत लूप में प्रवेश करता है जो लगातार मेमोरी आवंटित करता है, मेरी मशीन (TM) पर प्रति सेकंड सैकड़ों MB मेमोरी की खपत करता है, और पूरे सिस्टम को क्रैश कर देता है।
यह एक सिस्टम-स्तरीय DoS है, न कि केवल एप्लिकेशन हैंग।
malicious_circular_outline.pdf - सर्कुलर आउटलाइन वाला एक्सप्लॉइट PDF (754 बाइट्स)create_malicious_pdf.py - एक्सप्लॉइट PDF जनरेट करने की स्क्रिप्टsimple_read_pdf.py - भेद्यता को दोहराने के लिए सरल टेस्ट स्क्रिप्टtest_pypdf.sh - स्वचालित टेस्ट स्क्रिप्ट (pypdf इंस्टॉल करता है और टेस्ट चलाता है)README.md - यह फ़ाइलचेतावनी: यदि आप मेमोरी खपत पर नज़र नहीं रखते और समय पर इसे रद्द नहीं करते, तो ये टेस्ट आपके सिस्टम को क्रैश कर सकते हैं।
# स्वचालित टेस्ट स्क्रिप्ट चलाएँ (टाइमआउट सुरक्षा के साथ)
chmod +x test_pypdf.sh
./test_pypdf.sh
# यह निम्न कार्य करेगा:
# 1. pypdf का भेद्य संस्करण इंस्टॉल करेगा
# 2. 15-सेकंड टाइमआउट के साथ टेस्ट चलाएगा
# 3. मेमोरी खपत व्यवहार दिखाएगा
# pypdf इंस्टॉल करें (भेद्य संस्करण 6.6.0)
pip install "pypdf==6.6.0"
# टाइमआउट के साथ चलाएँ
timeout 10s python3 simple_read_pdf.py malicious_circular_outline.pdf
# pypdf इंस्टॉल करें (भेद्य संस्करण 6.6.0)
pip install "pypdf==6.6.0"
# टाइमआउट के बिना चलाएँ
python3 simple_read_pdf.py malicious_circular_outline.pdf
def _get_outline(self, node, outline=None):
while True: # ❌ कोई साइकिल डिटेक्शन नहीं!
outline_obj = self._build_outline_item(node)
if outline_obj:
outline.append(outline_obj) # ❌ लूप में हीप आवंटन!
if "/Next" not in node:
break
node = node["/Next"] # ❌ सर्कुलर रेफरेंस का अनुसरण करता है
मूल कारण: कोई विज़िटेड सेट नहीं, कोई इटरेशन सीमा नहीं, निरंतर मेमोरी आवंटन
वास्तविक-विश्व टेस्ट:
हमले की विशेषताएँ:
संस्करण 6.6.2 में ठीक किया गया