Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

फ़ीडसंपर्कगोपनीयता© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
detect_CVE-2026-86950 — CVE-2026-86950 का शोषण करने वाली PDF फ़ाइलों का पता लगाने के लिए एक Python टूल | Kitploit
उपकरण/GitHubGitHub/decalage2/detect_cve-2026-86950
स्थैतिक विश्लेषणभेद्यता स्कैनरभेद्यता विश्लेषणशोषणमालवेयर विश्लेषणपेपर और शोध
GitHubdecalage2/detect_cve-2026-86950

detect_CVE-2026-86950

CVE-2026-86950 का शोषण करने वाली PDF फ़ाइलों का पता लगाने के लिए एक Python टूल

रिपॉजिटरी देखें
621 महीना पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

CVE-2026-86950 PDF एक्सप्लॉइट डिटेक्टर

इस प्रोजेक्ट और CVE-2026-86950 के बारे में अधिक संदर्भ के लिए, देखें https://decalage.info/CVE-2026-86950/

अस्वीकरण: इस readme का अधिकांश भाग और डिटेक्शन कोड AI कोडिंग एजेंटों की सहायता से लिखा गया है। इस टूल का हजारों वैध PDF फ़ाइलों पर और यहाँ प्रकाशित उपलब्ध प्रूफ-ऑफ-कॉन्सेप्ट पर सफलतापूर्वक परीक्षण किया गया है। हालाँकि, यह टूल नया है और डिटेक्शन एल्गोरिद्म काफ़ी जटिल है, इसलिए इसका उपयोग सावधानी से करें।

detect_cve_2026_86950.py PDF फ़ाइलों को स्टैटिक रूप से स्कैन करता है ताकि CVE-2026-86950 ("The Great Glyph Grift") का शोषण करने के लिए तैयार किए गए एम्बेडेड फ़ॉन्ट्स का पता लगाया जा सके, जो Apple CoreGraphics के एंटी-एलियास्ड ग्लिफ़ रास्टराइज़र में एक आउट-ऑफ़-बाउंड्स राइट है (iOS / macOS 26.7.1 में ठीक किया गया)।

यह कभी भी फ़ॉन्ट को रेंडर नहीं करता और न ही कोई एक्सप्लॉइट कोड निष्पादित करता है — यह PDF और एम्बेडेड फ़ॉन्ट प्रोग्राम को पार्स करता है और हमले के संरचनात्मक हस्ताक्षर की खोज करता है।

भेद्यता (डिटेक्शन क्यों काम करता है)

CoreGraphics एक फ़्लोटिंग-पॉइंट डिवाइस निर्देशांक को लगभग इस प्रकार 16.12 फ़िक्स्ड-पॉइंट पूर्णांक में बदलता है:

int32_t aa_double_to_fixed(double px) { return (int32_t)(0.5 + 4096.0 * px); }

जब 4096 * px int32 की सीमा से अधिक हो जाता है, तो कास्ट अपरिभाषित व्यवहार (undefined behaviour) होता है, और दो कॉल साइटें (aa_moveto बनाम aa_lineto) असहमत होती हैं — एक संतृप्त (saturate) करती है, एक काटती (truncate) है। यह असहमति aa_add_edges में ग्लिफ़ बाउंडिंग-बॉक्स गणना को दूषित करती है, इसलिए aa_cache_render में कवरेज बफ़र बहुत छोटा आवंटित हो जाता है और रास्टराइज़र सीमा से बाहर लिखता है। 26.7.1 पैच ±0x3FFFF001 में स्पष्ट क्लैम्पिंग जोड़ता है।

सार्वजनिक प्रूफ़-ऑफ़-कॉन्सेप्ट एक दुर्भावनापूर्ण TrueType फ़ॉन्ट बनाता है जो ऐसे अत्यधिक बड़े निर्देशांक को बाध्य करता है:

  • composite glyphs की एक गहरी श्रृंखला, प्रत्येक पिछले वाले को ~2× से स्केल करता है (F2Dot14 स्केल अपने अधिकतम ~1.99994 के करीब);
  • एक बड़े निर्देशांक पर एक अपक्षयी 2-बिंदु कंटूर वाला एक छोटा लीफ़ ग्लिफ़;
  • इसलिए शीर्ष ग्लिफ़ की वास्तविक रूपरेखा ~16 मिलियन फ़ॉन्ट इकाइयों (~em वर्ग का ~1000×) तक पहुँचती है जबकि ग्लिफ़ का संग्रहीत बाउंडिंग बॉक्स छोटा रहता है;
  • एक बड़े टेक्स्ट आकार (/Tf 1024) पर, 4096 × device_coord int32 को ओवरफ़्लो करता है।

डिटेक्टर क्या जाँचता है

  1. pikepdf के साथ प्रत्येक एम्बेडेड आउटलाइन-फ़ॉन्ट प्रोग्राम निकालता है — TrueType (/FontFile2) और CFF / OpenType (/FontFile3)।
  2. fontTools के साथ प्रत्येक फ़ॉन्ट को पार्स करता है और प्रत्येक ग्लिफ़ की वास्तविक निर्देशांक सीमा मापता है:
    • TrueType: composite घटकों को पुनरावर्ती रूप से हल करता है (इसलिए एक नेस्टेड स्केलिंग श्रृंखला को उसकी वास्तविक सीमा तक अनुसरण किया जाता है);
    • CFF / Type2: प्रत्येक charstring को एक control-bounds पेन के माध्यम से खींचता है (इसलिए कई सापेक्ष ऑपरेटरों में संचित निर्देशांक मापे जाते हैं)।
  3. किसी फ़ॉन्ट को तब फ़्लैग करता है जब इनमें से कोई भी सत्य हो:
    • किसी ग्लिफ़ की वास्तविक रूपरेखा em वर्ग से बहुत आगे तक फैली हो (कोई वैध ग्लिफ़ ऐसा नहीं करता — थ्रेशोल्ड 10× em, 100× em से ऊपर लगभग-निश्चित);
    • वास्तविक सीमा ग्लिफ़ के अपने घोषित बाउंडिंग बॉक्स को बौना कर दे (वह बाउंडिंग-बॉक्स "झूठ" जिस पर एक्सप्लॉइट निर्भर करता है);
    • (केवल TrueType) गहरी composite नेस्टिंग के साथ अप-स्केलिंग (>1) घटकों का संयोजन — वह निर्देशांक-प्रवर्धन श्रृंखला जिसका उपयोग सार्वजनिक PoC करता है।
  4. सबसे खराब-स्थिति निर्देशांक को पेज कंटेंट स्ट्रीम (/Tf, Tm) में उपयोग किए गए टेक्स्ट आकारों के साथ जोड़ता है और जाँचता है कि 4096 × device_coord वास्तव में INT32_MAX से अधिक है या नहीं — अर्थात क्या फ़िक्स्ड-पॉइंट ओवरफ़्लो पहुँच योग्य है।

निर्णय: exploit (ओवरफ़्लो पहुँच योग्य), suspicious (अत्यधिक बड़ी ज्यामिति लेकिन देखे गए आकार पर ओवरफ़्लो नहीं), clean।

इंस्टॉल करें और चलाएँ

# with uv (recommended)
uv venv
uv pip install -r requirements.txt

# or any environment with pikepdf + fonttools
python3 detect_cve_2026_86950.py suspicious.pdf
python3 detect_cve_2026_86950.py -v *.pdf      # per-font details
python3 detect_cve_2026_86950.py --json f.pdf  # machine-readable

एग्ज़िट कोड: 0 साफ़, 1 एक्सप्लॉइट/संदिग्ध मिला, 2 त्रुटि।

सीमाएँ

  • CVE का मूल कारण CoreGraphics के साझा aa_* पाथ रास्टराइज़र में फ़िक्स्ड-पॉइंट कन्वर्ज़न है, जो TrueType glyf और CFF/Type2 आउटलाइन दोनों को रेंडर करता है। सार्वजनिक PoC TrueType कंपोज़िट ग्लिफ़्स के साथ निर्देशांकों को बढ़ाता है; एक CFF फ़ॉन्ट सीधे अत्यधिक बड़े निर्देशांक तक पहुँच सकता है (जैसे कि सापेक्ष ऑपरेटरों को संचित करके), इसलिए /FontFile2 और /FontFile3 दोनों का विश्लेषण किया जाता है। कंपोज़िट-चेन ह्यूरिस्टिक TrueType-विशिष्ट है; CFF के लिए संकेत अत्यधिक-निर्देशांक / बाउंडिंग-बॉक्स-झूठ जाँच है।
  • कंटेंट स्ट्रीम्स का टेक्स्ट-साइज़ (/Tf, Tm) स्कैन बेस्ट-एफ़र्ट है; यह PDF ग्राफ़िक्स स्टेट / CTM का पूरी तरह मूल्यांकन नहीं करता। जब कोई साइज़ नहीं मिलता, तो ओवरफ़्लो जाँच के लिए 1024 का रूढ़िवादी डिफ़ॉल्ट मान लिया जाता है। फ़ॉन्ट-अंतर्निहित अत्यधिक-ज्यामिति संकेत इस पर निर्भर नहीं करते।
  • यह एक ह्यूरिस्टिक संरचनात्मक डिटेक्टर है, सैंडबॉक्स्ड रेंडरर नहीं: इसका उद्देश्य ज्ञात एक्सप्लॉइट पैटर्न और स्पष्ट रूप से विकृत फ़ॉन्ट्स को पकड़ना है, न कि यह सिद्ध करना कि कोई फ़ाइल सुरक्षित है।
टूल डाउनलोड करें