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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
Palimpsest — CVE-2026-74945, एक तैयार किए गए वेब फ़ॉन्ट के माध्यम से अनइनिशियलाइज़्ड हीप डिस्क्लोज़र (sec-high) | Kitploit
उपकरण/GitHubGitHub/defineid/palimpsest
पेलोड जनरेशनभेद्यता विश्लेषणशोषणवेब सुरक्षा
GitHubdefineid/palimpsest

Palimpsest

CVE-2026-74945, एक तैयार किए गए वेब फ़ॉन्ट के माध्यम से अनइनिशियलाइज़्ड हीप डिस्क्लोज़र (sec-high)

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

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

सभी देखें →

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

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

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

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

CVE-2026-74945 · एक तैयार किए गए वेब फ़ॉन्ट के माध्यम से अनइनिशियलाइज़्ड हीप डिस्क्लोज़र

यह निर्देशिका Firefox फ़ॉन्ट हैंडलिंग में अनइनिशियलाइज़्ड-मेमोरी डिस्क्लोज़र के लिए एक ईमानदार पुनरुत्पादन पैकेज रखती है। एक तैयार किया गया @font-face फ़ॉन्ट OTS आउटपुट स्ट्रीम को एक अनइनिशियलाइज़्ड-हीप गैप में ले जाता है, और सामान्य कंटेंट उस गैप के बाइट्स को canvas measureText API के माध्यम से वापस पढ़ता है। इसे केवल सिंथेटिक डेटा के साथ स्थानीय रूप से डाउनलोड किए गए कमज़ोर Firefox बिल्ड के विरुद्ध चलाने के लिए बनाया गया है। यह कभी भी किसी लाइव या तृतीय-पक्ष सिस्टम को स्पर्श नहीं करता है।

मिलता-जुलता PoC रिपॉज़िटरी: https://github.com/defineid/Palimpsest राइटअप: इस पोर्टफ़ोलियो में writeup-font-cmap-leak.html।

एडवाइज़री मेटाडेटा

फ़ील्डमान
CVECVE-2026-74945
कंपोनेंटCore / Graphics: Text
वर्गUninitialized Memory Disclosure (CWE-908 · CWE-200)
गंभीरताsec-high (वेब-रिचेबल मेमोरी डिस्क्लोज़र)
इसमें ठीक किया गयाFirefox 154 · ESR 140.14
बगbugzilla.mozilla.org/show_bug.cgi?id=2057808
इंटरैक्शनकोई नहीं · केवल पेज लोड

तंत्र

Firefox उपयोग से पहले वेब फ़ॉन्ट्स को OTS के माध्यम से सैनिटाइज़ करता है। तीन स्वतंत्र दोष इस तरह एक साथ आते हैं कि एक तैयार किया गया फ़ॉन्ट सैनिटाइज़्ड आउटपुट के भीतर एक अनइनिशियलाइज़्ड-हीप गैप छोड़ देता है और कंटेंट उसे वापस पढ़ सकता है:

  1. OTS आउटपुट एलोकेटर कभी शून्य नहीं करता। विस्तारित होने वाली आउटपुट स्ट्रीम एक कच्चे रीएलोकेटर (moz_xrealloc) के साथ बढ़ती है जो नई जगह को शून्य-भरता नहीं है।
  2. Seek छोड़े गए स्पैन को शून्य नहीं करता। एक बड़े nonDefaultUVSOffset वाली cmap फ़ॉर्मेट-14 सबटेबल OTS को सैनिटाइज़्ड फ़ॉन्ट को पुनः-सीरियलाइज़ करते समय अपनी आउटपुट स्ट्रीम को आगे की ओर seek करने पर मजबूर करती है। लिखे गए बाइट्स और seek टारगेट के बीच का छोड़ा गया स्पैन अनइनिशियलाइज़्ड हीप लिए हुए कॉलर को सौंप दिया जाता है, और forget() बफ़र का आकार उच्चतम पहुँचे गए ऑफ़सेट तक कर देता है।
  3. फ़ॉर्मेट-4 ग्लिफ़ लुकअप गलत लंबाई की बाउंड्स-चेक करता है। फ़ॉर्मेट-4 लुकअप सबटेबल के बजाय पूरी cmap टेबल के शेष भाग के विरुद्ध बाउंड्स-चेक करता है, इसलिए वह सेगमेंट जिसका idRangeOffset फ़ॉर्मेट-4 डेटा के अंत से आगे निकल जाता है, फिर भी जाँच पास कर लेता है और पड़ोसी सबटेबल के अनइनिशियलाइज़्ड बाइट्स में पढ़ लेता है।

तैयार किया गया फ़ॉन्ट एक फ़ॉर्मेट-4 सबटेबल, जिसका अंतिम सेगमेंट (0xFFFF) एक विषम, अतिक्रमणकारी idRangeOffset का उपयोग करता है, को एक बड़े nonDefaultUVSOffset वाली फ़ॉर्मेट-14 सबटेबल के साथ जोड़ता है, साथ ही maxp.numGlyphs = 65535 और प्रत्येक ग्लिफ़ id के लिए एक अलग hmtx एडवांस (एडवांस == ग्लिफ़ id) रखता है। इसलिए U+FFFF को मापने पर एक ग्लिफ़ id प्राप्त होता है जो अनइनिशियलाइज़्ड गैप से पढ़ा जाता है, और उसकी एडवांस चौड़ाई, जो स्क्रिप्ट से पढ़ी जा सकती है, लगभग 64 KB विंडो पर प्रति माप लगभग दो बाइट हीप का खुलासा करती है।

खतरे का मॉडल

एक सामान्य वेब पेज तैयार किए गए फ़ॉन्ट को @font-face के माध्यम से सर्व करता है और ctx.measureText("￿") कॉल करता है। किसी क्लिक, अनुमति, एक्सटेंशन, या प्रेफ़ बदलाव की आवश्यकता नहीं है। OTS इन-प्रोसेस चलता है और सैंडबॉक्स्ड लाइब्रेरीज़ में से नहीं है, इसलिए खुलासा किए गए बाइट्स कंटेंट-प्रोसेस हीप हैं जिनमें पॉइंटर या रहस्य हो सकते हैं।

फ़ाइलें

फ़ाइलउद्देश्य
make_font.pyतैयार किए गए फ़ॉन्ट leak.otf और leak.woff बनाता है।
trigger.htmlएक सादा पेज जो @font-face के माध्यम से फ़ॉन्ट लोड करता है और measureText के माध्यम से U+FFFF एडवांस वापस पढ़ता है।

पूर्वापेक्षाएँ

  1. एक कमज़ोर बिल्ड: Firefox 154 से पहले या ESR 140.14 से पहले। राइटअप विश्लेषण Firefox 140.9.0esr का उपयोग करता है; आधिकारिक Mozilla आर्काइव https://ftp.mozilla.org/pub/firefox/releases/140.9.0esr/ से मिलता-जुलता प्लेटफ़ॉर्म बिल्ड डाउनलोड करें।
  2. फ़ॉन्ट बनाने के लिए fontTools और brotli के साथ Python:
    pip install fonttools brotli
    

बिल्ड और रन करें

python3 make_font.py        # writes leak.otf and leak.woff in this directory

फिर कमज़ोर बिल्ड में trigger.html को file:// पाथ से या अपने नियंत्रण वाले लोकल स्टैटिक सर्वर से खोलें, और Measure पर क्लिक करें।

अपेक्षित परिणाम

  • कमज़ोर बिल्ड (154 / ESR 140.14 से पहले): U+FFFF अनइनिशियलाइज़्ड गैप से प्राप्त एक गैर-शून्य ग्लिफ़ आईडी में रिज़ॉल्व होता है, और रिपोर्ट किया गया एडवांस हर रन में बदलता रहता है। प्रत्येक माप प्रोसेस हीप के लगभग दो बाइट प्राप्त करता है।
  • ठीक किया गया बिल्ड (154 / ESR 140.14 और बाद के संस्करण): U+FFFF ग्लिफ़ आईडी 0 (.notdef) में रिज़ॉल्व होता है और एडवांस 0 होता है। कोई गैप लीक नहीं होता, क्योंकि आउटपुट स्ट्रीम शून्य किया जाता है और फ़ॉर्मेट-4 लुकअप अपनी ही सबटेबल तक सीमित रहता है।

सत्यापन स्थिति

  • इस वातावरण में पूर्ण: make_font.py को यहाँ fontTools 4.63.0 के साथ निष्पादित किया गया और इसने leak.otf (393816 बाइट) और leak.woff (132372 बाइट) उत्पन्न किया। उत्पन्न फ़ॉन्ट को रॉ बाइट्स से वापस पार्स किया गया और प्रत्येक तैयार किए गए घटक की पुष्टि की गई: maxp.numGlyphs = 65535, hhea.numberOfHMetrics = 65535, प्रत्येक ग्लिफ़ आईडी के लिए एक अलग hmtx एडवांस (एडवांस == ग्लिफ़ आईडी), दो cmap सबटेबल (प्लेटफ़ॉर्म 3 एन्कोडिंग 1 फ़ॉर्मेट 4, और प्लेटफ़ॉर्म 0 एन्कोडिंग 5 फ़ॉर्मेट 14), फ़ॉर्मेट-4 का अंतिम सेगमेंट endCode = 0xFFFF जिसमें एक विषम ओवररनिंग idRangeOffset = 0x4001 है, और फ़ॉर्मेट-14 का nonDefaultUVSOffset = 0x8000।
  • इस वातावरण में पूर्ण नहीं: यहाँ कोई कमज़ोर Firefox बिल्ड मौजूद नहीं है, इसलिए वास्तविक लीक को नहीं देखा गया, ट्रिगर नहीं किया गया, या कैप्चर नहीं किया गया। फ़ॉन्ट को किसी कमज़ोर बिल्ड में लोड नहीं किया गया और कोई हीप बाइट प्रकट नहीं हुआ। लीक देखने के लिए trigger.html को स्वयं किसी लोकल कमज़ोर बिल्ड के विरुद्ध चलाएँ। यह पैकेज तैयार किए गए इनपुट और रीड-बैक पाथ को प्रदर्शित करता है; यह कोई हथियारीकृत एक्सप्लॉइट नहीं है और इसमें कोई नियंत्रित कोड-एग्ज़िक्यूशन प्रिमिटिव शामिल नहीं है।

दायरा और नैतिकता

यह सिंथेटिक, स्वयं-उत्पन्न फ़ॉन्ट डेटा के साथ लोकल रूप से डाउनलोड किए गए बिल्ड को लक्षित करता है, जो लेखक के स्वयं के रिपोर्ट किए गए और पहले ही पैच किए जा चुके CVE के राइटअप के लिए है। यह किसी लाइव या तृतीय-पक्ष सेवा पर हमला नहीं करता।

टूल डाउनलोड करें