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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
edk2-security — EDK2 BrotliCustomDecompressLib सुरक्षा निष्कर्ष — समन्वित प्रकटीकरण | Kitploit
उपकरण/GitHubGitHub/lukr54/edk2-security
एम्बेडेड सिस्टम सुरक्षाभेद्यता स्कैनरभेद्यता विश्लेषणशोषणहार्डवेयर और IoT सुरक्षापेपर और शोधफर्मवेयर विश्लेषणबाइनरी शोषण
GitHublukr54/edk2-security

edk2-security

EDK2 BrotliCustomDecompressLib सुरक्षा निष्कर्ष — समन्वित प्रकटीकरण

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

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

सभी देखें →

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

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

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

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

EDK2 BrotliCustomDecompressLib — हीप ओवरफ़्लो (अनफ़िक्स्ड)

EDK2 के अपने Brotli डीकंप्रेशन ग्लू (MdeModulePkg/Library/BrotliCustomDecompressLib) में एक हीप-बफ़र-ओवरफ़्लो, जो 2017 से मौजूद है, 2026-10-25 तक HEAD पर अनफ़िक्स्ड है। प्रूफ़-ऑफ़-कॉन्सेप्ट और एक एंड-टू-एंड नियंत्रित-करप्शन डेमो के साथ ASAN द्वारा पुष्टि की गई।

सारांश

EDK2 का Brotli रैपर हमलावर-नियंत्रित GUIDed सेक्शन हेडर से डीकंप्रेस्ड आउटपुट आकार पढ़ता है, उसे बिना किसी गार्ड के UINT64 → UINT32 में ट्रंकेट करता है, और उसे DXE कोर को पास करता है जो उस आकार का बफ़र आवंटित करता है। इसके बाद BrotliDecompressInternal उस बफ़र में अनबाउंडेड डीकंप्रेस करता है — यह तब तक चलता है जब तक Brotli स्ट्रीम समाप्त नहीं हो जाती, आवंटन से आगे लिखते हुए।

परिणाम: DXE चरण में हीप ओवरफ़्लो (राइट प्रिमिटिव), Secure Boot सत्यापन पूरा होने से पहले। एक हमलावर जो फ़र्मवेयर इमेज (फ़्लैश, कैप्सूल, या ESP) को नियंत्रित करता है, वह आसन्न पूल ऑब्जेक्ट्स — फ़ंक्शन पॉइंटर, सुरक्षा फ़्लैग, प्रोटोकॉल संरचनाएँ — को चुने हुए बाइट्स से ओवरराइट कर सकता है।

यह CVE-2021-28211 का अनदेखा किया गया Brotli सहोदर है (LZMA को 2021 में >MAX_UINT32 गार्ड मिला; Brotli को कभी नहीं मिला)। एक वेरिएंट स्वीप पुष्टि करता है कि Brotli एकमात्र EDK2 डीकंप्रेसर है जिसमें ट्रंकेशन गार्ड और आउटपुट बाउंड दोनों का अभाव है।

प्रभावित कोड

फ़ाइलयह क्या करता है
BrotliDecompress.c:238UINT64 डिकोडेड आकार को UINT32 में कास्ट करता है — कोई MAX_UINT32 गार्ड नहीं
BrotliDecompress.c:118–157बिना किसी बाउंड जाँच के गंतव्य बफ़र में डीकंप्रेस करता है
GuidedSectionExtraction.cGetInfo फिर Decompress कॉल करता है — घोषित आकार पर भरोसा करता है
CoreSectionExtraction.c:1597घोषित आकार पर गंतव्य बफ़र आवंटित करता है

सभी tianocore/edk2, MdeModulePkg/Library/BrotliCustomDecompressLib में।

प्रमाण

आर्टिफ़ैक्टविवरण
harness/edk2_brotli_overflow_poc.cASAN प्रूफ़-ऑफ़-कॉन्सेप्ट: 64-बाइट बफ़र में 4096-बाइट स्ट्रीम
harness/asan_output.txtASAN आउटपुट: BrotliDecompressInternal → memcpy पर heap-buffer-overflow
harness/edk2_brotli_overflow_demo.cएंड-टू-एंड डेमो: आसन्न पूल ऑब्जेक्ट्स का नियंत्रित करप्शन
harness/demo_output.txtडेमो आउटपुट: फ़ंक्शन पॉइंटर हाईजैक, Secure Boot अक्षम
harness/lvfs_brotli_scan.pyLVFS फ़र्मवेयर स्कैनर (ब्लास्ट-रेडियस मापन)
harness/lvfs_scan_output.txtस्कैन परिणाम: 0/200 फ़र्मवेयर इमेज Brotli का उपयोग करती हैं
evidence/HEAD पर कमज़ोर EDK2 स्रोत फ़ाइलों की प्रतियाँ
FINDINGS.mdपूर्ण राइट-अप: लाइन संदर्भ, प्रायर-आर्ट खोज, वेरिएंट स्वीप, LZMA ऑडिट

ब्लास्ट रेडियस

संकीर्ण। दो स्वतंत्र सर्वेक्षणों में शून्य प्लेटफ़ॉर्म मिले जो व्यवहार में Brotli GUIDed सेक्शन का उपयोग करते हैं:

  • GitHub कोड खोज (सभी सार्वजनिक रेपो): 0 प्लेटफ़ॉर्म DSC फ़ाइलें BrotliCustomDecompressLib का संदर्भ देती हैं। हर हिट MdeModulePkg.dsc स्वयं है।
  • LVFS फ़र्मवेयर स्कैन (200 शिपिंग इमेज, 9 विक्रेता): Brotli GUID 0/200 इमेज में मिला। LZMA (पॉज़िटिव कंट्रोल) 161/200 में मिला।

कमज़ोर कोड EDK2 ट्री में शिप होता है लेकिन आज डेड कोड है — 2017 में जोड़ा गया, IBV या OEM द्वारा कभी अपनाया नहीं गया। बग वास्तविक है और सिद्धांत रूप में शोषणीय है; यदि Brotli अपनाना बढ़ता है, तो यह तत्काल पहुँच योग्य हो जाता है।

फ़िक्स

दो परिवर्तन, जो LZMA और Tiano के पास पहले से हैं:

  1. MAX_UINT32 गार्ड जोड़ें BrotliUefiDecompressGetInfo में (BrotliDecompress.c:238): MAX_UINT32 से अधिक डिकोडेड आकार अस्वीकार करें, जैसा LzmaDecompress.c:149 CVE-2021-28211 के बाद से करता है।
  2. BrotliDecompressInternal में आउटपुट को बाउंड करें: लिखे गए बाइट्स को ट्रैक करें और DestinationSize पर रोकें, जैसा Tiano डीकंप्रेसर mOrigSize के साथ करता है।

पुनरुत्पादन

libbrotli और GCC के साथ Linux पर PoC बनाएँ:

# ASAN proof (aborts at the overflow)
gcc -fsanitize=address -g -O1 -o poc harness/edk2_brotli_overflow_poc.c \
    -lbrotlienc -lbrotlidec
./poc

# Controlled-corruption demo (completes the overflow, shows the damage)
gcc -g -O1 -o demo harness/edk2_brotli_overflow_demo.c \
    -lbrotlienc -lbrotlidec
./demo

पूर्व कला

  • CVE-2021-28211 — LZMA सहोदर, 2021 में ठीक किया गया। Brotli पथ को अनदेखा कर दिया गया था।
  • CVE-2026-111497 — एक अलग अपस्ट्रीम Brotli डिकोडर बग (9.2)। EDK2 भी प्रभावित है (issue #13378), लेकिन वह एक अलग निष्कर्ष है।
  • कोई भी सार्वजनिक CVE, सलाह, issue, या PR Brotli ग्लू ओवरफ़्लो को संबोधित नहीं करता है। जाँचा गया: सभी 14 EDK2 GHSA, सभी 29 Brotli issues, सभी 28 Brotli PRs, CVE/NVD, EDK2 HEAD।

प्रकटीकरण

पूर्ण सार्वजनिक प्रकटीकरण, 2026-10-26। TianoCore को कोई समन्वित प्रकटीकरण अवधि नहीं दी गई थी। संकीर्ण प्रभाव क्षेत्र (शून्य शिपिंग फ़र्मवेयर प्रभावित) और यह तथ्य कि सहोदर LZMA बग 2021 से सार्वजनिक रहा है, ने इस निर्णय को सूचित किया।

लेखक

@lukr54

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