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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
Brotli-Node.js-CVE-2026-111497-Broccoli2Shell-Node2Shell-HTTP2Shell- — CVE-2026-111497 के लिए एडवाइज़री और विश्लेषण, जो Node.js HTTP डीकंप्रेशन के माध्यम से पहुँचने योग्य एक Brotli डिकोडर आउट-ऑफ़-बाउंड्स राइट है, जिसमें मूल कारण, पैच डिफ़, डिटेक्शन नियम और शमन उपाय शामिल हैं। | Kitploit
उपकरण/GitHubGitHub/certbn/brotli-node.js-cve-2026-111497-broccoli2shell-node2shell-http2shell-
मेमोरी फोरेंसिकभेद्यता विश्लेषणशोषणवेब सुरक्षाखतरा खुफियाघटना प्रतिक्रिया
GitHubcertbn/brotli-node.js-cve-2026-111497-broccoli2shell-node2shell-http2shell-

Brotli-Node.js-CVE-2026-111497-Broccoli2Shell-Node2Shell-HTTP2Shell-

CVE-2026-111497 के लिए एडवाइज़री और विश्लेषण, जो Node.js HTTP डीकंप्रेशन के माध्यम से पहुँचने योग्य एक Brotli डिकोडर आउट-ऑफ़-बाउंड्स राइट है, जिसमें मूल कारण, पैच डिफ़, डिटेक्शन नियम और शमन उपाय शामिल हैं।

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
रिपॉजिटरी देखें
13 दिन पहलेअभी तक समीक्षित नहीं

CVE-2026-111497: Google Brotli डिकोडर Block-Switch रिटर्न मान की जाँच न होने के कारण Out-of-Bounds Write (Node2Shell / HTTP2Shell / Broccoli2Shell)

CVSS CVSS Type KEV

अंतिम सत्यापन तिथि: 2026-11-04 (KST)। प्रत्येक मान केवल नीचे References में दिए गए स्रोतों से सत्यापित मानों के रूप में दर्ज किया गया है, और जहाँ स्रोतों के बीच मान भिन्न हैं वहाँ सभी को साथ में दिया गया है।

📌 TL;DR

  • क्या: Google Brotli C डिकोडर (c/dec/decode.c) गलत ब्लॉक स्विच (block switch) के त्रुटि रिटर्न मान को अनदेखा करता है, जिससे दूषित स्थिति में डिकोडिंग जारी रहती है और बफ़र सीमा के बाहर लेखन (Out-of-Bounds Write) होता है।
  • कहाँ: Brotli 1.0.3 ~ 1.2.0 को शामिल करने वाला सभी सॉफ़्टवेयर — Node.js (22/24/26 और EOL लाइनें), Python Brotli/brotlicffi, Bun, .NET, Envoy, Istio आदि। प्रभावित होने के लिए ऐसा पथ होना आवश्यक है जो हमलावर-नियंत्रित Content-Encoding: br डेटा को डीकंप्रेस (decompress) करता हो।
  • कितना खतरनाक: प्रमाणीकरण के बिना दूरस्थ रूप से DoS, मेमोरी एक्सपोज़र और RCE संभव है (CNA CVSS 4.0 9.2), और इसे 2026-10-27 को CISA KEV में सूचीबद्ध किया गया है। तत्काल पैचिंग आवश्यक है।

📋 मूल जानकारी

आइटमविवरण
CVE IDCVE-2026-111497 (GHSA-9v8h-qqgm-4m35)
उपनामNode2Shell (Imperva द्वारा नामित), HTTP2Shell, Broccoli2Shell। नाम के विपरीत यह HTTP/2 प्रोटोकॉल दोष नहीं है
प्रकाशन तिथि2026-10-21 Node.js सुरक्षा रिलीज़ और Brotli पैच रिलीज़ / 2026-10-22 CVE रिकॉर्ड सार्वजनिक
खोजकर्ताOpenAI Codex Security (Khai Tran, Sylvie Mayer)
प्रभावित उत्पाद/संस्करणGoogle Brotli (libbrotlidec) 1.0.3 ~ 1.2.0 और इसे बंडल/लिंक करने वाले उत्पाद (नीचे तालिका देखें)
पैच संस्करणBrotli 1.0.10 / 1.1.1 / 1.2.1, Node.js 22.23.4 / 24.22.1 / 26.12.1, Python Brotli 1.2.1, brotlicffi 1.2.1.0, Bun 1.4.4
CVSS v4.0 (CNA: Google)9.2 Critical — CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
CVSS v3.1 (NVD)9.8 Critical — CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS v3.1 (Red Hat / Amazon Linux)8.1 — CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H (हमले की आवश्यकता AT:P और प्लेटफ़ॉर्म हार्डनिंग को प्रतिबिंबित करता है)
विक्रेता का स्वयं का ग्रेडNode.js: High / Red Hat: Important
CWECWE-787 Out-of-bounds Write (NVD, Red Hat, कनाडा Cyber Centre) / CWE-252 Unchecked Return Value (CISA KEV विवरण, कुछ विश्लेषण लेखों में मूल कारण के रूप में साथ में उल्लिखित)
वास्तविक शोषण स्थितिशोषण की पुष्टि। CISA KEV सूचीबद्ध 2026-10-27, संघीय एजेंसियों के लिए कार्रवाई की समय-सीमा 2026-11-10। हनीपॉट ऑपरेटरों (Previdian, ELLIO) ने 10-26~27 के दौरान शोषण के प्रयास देखे

प्रभाव सीमा का विवरण

घटकप्रभावित संस्करणसुधारित संस्करण
Google Brotli (C, libbrotlidec)1.0.3 ~ 1.2.01.0.10, 1.1.1, 1.2.1
Node.js 26.x (Current)26.12.1 से कम26.12.1
Node.js 24.x (LTS)24.22.1 से कम24.22.1
Node.js 22.x (LTS)22.23.4 से कम22.23.4
Node.js 25.x / 23.x / 20.x और उससे नीचेसभी संस्करण (EOL)कोई पैच नहीं → 22/24/26 पर स्थानांतरित करें
Bun1.4.3 और उससे नीचे1.4.4
Python Brotli (PyPI)1.2.0 और उससे नीचे1.2.1
Python brotlicffi1.2.1.0 से कम1.2.1.0
.NET / PowerShellविक्रेता सलाह देखेंMicrosoft आपातकालीन .NET अपडेट (dotnet/announcements#494)
Envoy / Istioविक्रेता सलाह देखेंअक्टूबर की शुरुआत में सुधारित रिलीज़ वितरित (दोष का उल्लेख किए बिना)
VMware SDDC Manager (VCF / vSphere Foundation)Broadcom सलाह देखेंBroadcom सलाह देखें

अप्रत्यक्ष एक्सपोज़र पथ: Python requests, urllib3, aiohttp[speedups], httpx यदि Brotli/brotlicffi स्थापित है तो br प्रतिक्रियाओं को स्वचालित रूप से डीकंप्रेस करते हैं। curl भी संपीड़न-विस्तार विकल्प का उपयोग करने पर इसी श्रेणी में आता है।

प्रमुख तिथियाँ (2026)

तारीखघटना
02-27google/brotli रिपॉज़िटरी में सुधार कमिट शामिल (सुरक्षा मुद्दे के रूप में चिह्नित, जारी नहीं)
अक्टूबर की शुरुआतEnvoy / Istio सुधारित रिलीज़ जारी
10-21Node.js सुरक्षा रिलीज़ (22.23.4 / 24.22.1 / 26.12.1), Google Brotli 1.0.10 / 1.1.1 / 1.2.1 रिलीज़
10-22CVE रिकॉर्ड सार्वजनिक, Imperva ने Node.js 24.22.0 (Linux arm64) पर कोड निष्पादन प्रदर्शित किया
10-23पैच किया गया PyPI पैकेज वितरित
10-25Microsoft .NET सलाह और अपडेट
10-26ELLIO, शोषण ट्रैफ़िक की रिपोर्ट
10-27CISA KEV में सूचीबद्ध (कार्रवाई की समय सीमा 11-10)

⚠️ 24~28 अक्टूबर के बीच लिखे गए कुछ विश्लेषण लेखों में "वास्तविक हमला अप्रमाणित, KEV में सूचीबद्ध नहीं" कहा गया है, लेकिन यह KEV में सूचीबद्ध होने से पहले के समय के आधार पर है, इसलिए वर्तमान से भिन्न है।

🔍 भेद्यता के कारण का विश्लेषण (Root Cause)

1. क्या: ओवरलोडेड BROTLI_FALSE रिटर्न मान

Brotli डिकोडिंग एक स्टेट मशीन है। स्ट्रीम मेटाब्लॉक इकाइयों से बनी होती है, और प्रत्येक मेटाब्लॉक के भीतर लिटरल, इंसर्ट-एंड-कॉपी कमांड और दूरी के ब्लॉक टाइप को स्विच करने वाले निर्देश आते हैं।

DecodeBlockTypeAndLength() ब्लॉक स्विच को पार्स करता है और BROTLI_BOOL लौटाता है। समस्या यह है कि BROTLI_FALSE का उपयोग दो पूरी तरह भिन्न अर्थों में किया गया था।

अर्थप्रकृतिसही प्रबंधन
इनपुट और चाहिए (needs more input)पुनर्प्राप्त करने योग्यअगले इनपुट की प्रतीक्षा करके फिर से शुरू करें
मेटाब्लॉक में केवल 1 ब्लॉक प्रकार होने के कारण स्विच ही असंभवघातक प्रारूप त्रुटिस्ट्रीम अस्वीकार करें

2. क्यों: रिटर्न मान को अनदेखा किया गया (CWE-252)

कॉलर पक्ष ने इस रिटर्न मान की जाँच नहीं की।

  • कमांड स्ट्रीम के ब्लॉक स्विच रैपर (DecodeCommandBlockSwitch) को static void के रूप में घोषित किया गया है, इसलिए यह रिटर्न मान को संरक्षित नहीं करता, और BROTLI_SAFE मैक्रो की non-safe शाखा भी केवल फ़ंक्शन को कॉल करती है और परिणाम को छोड़ देती है। (SonicWall विश्लेषण)
  • अन्य विश्लेषण (Redfox) बताता है कि लिटरल ब्लॉक स्विच पथ (DecodeLiteralBlockSwitch) में रिटर्न मान पूरी तरह से छोड़ दिया जाता है। विश्लेषण के अनुसार इंगित किया गया फ़ंक्शन भिन्न है, लेकिन वितरण पैच विवरण (TuxCare) के अनुसार लिटरल, कमांड, और दूरी तीनों ब्लॉक स्विच डिकोडर को त्रुटि कोड लौटाने के लिए संशोधित किया गया, इसलिए तीनों पथ संबंधित माने जा सकते हैं।

परिणामस्वरूप, प्रारूप त्रुटि होने पर भी डिकोडर स्विच सफल होने की तरह आगे बढ़ता रहता है, ब्लॉक लंबाई काउंटर 0 रह जाता है, और स्थिति (position)·दूरी स्थिति उस पथ पर स्थानांतरित हो जाती है जिसे अस्वीकार किया जाना चाहिए था।

3. कैसे: भ्रष्ट स्थिति OOB Write तक पहुँचती है (CWE-787)

  • डिकोडर के इनपुट प्रतीक्षा में रुके (parked) रहने के दौरान संग्रहित 8-बाइट आंतरिक इनपुट बफ़र से आगे लिखना होता है, जिससे निकटवर्ती डिकोडर स्थिति (BrotliDecoderState) के स्थिति·दूरी फ़ील्ड अधिलेखित हो जाते हैं।
  • इसके बाद ProcessCommandsInternal() का बैकवर्ड-रेफ़रेंस कॉपी copy_dst = &s->ringbuffer[pos] से गंतव्य की गणना करता है और memmove16 से 16-बाइट वेक्टर स्टोर करता है। चूँकि pos अब रिंग बफ़र सीमा तक सीमित नहीं है, आवंटित क्षेत्र के बाहर लिखना होता है।
  • हमलावर pos को नियंत्रित कर सकता है, इसलिए यह write-what-where प्रिमिटिव (primitive) बन जाता है।

4. पैच तुलना (Before / After)

नीचे सार्वजनिक विश्लेषण (SonicWall, Redfox, TuxCare पैच विवरण) के वर्णन के आधार पर परिवर्तन का सार पुनर्गठित करते हुए बनाया गया संकल्पनात्मक कोड है। यह वास्तविक कमिट का मूल कोड नहीं है, और शर्तों आदि के विवरण अनुमान हैं। सटीक diff को google/brotli v1.2.1 रिलीज़ और Node.js deps/brotli परिवर्तनों में देखें। (इस दस्तावेज़ के लेखन के समय सुधार कमिट हैश को प्राथमिक स्रोत के रूप में सत्यापित नहीं किया जा सका।)

Before (भेद्य)

/* 형식 오류와 "입력 부족"이 같은 BROTLI_FALSE로 표현됨 */
static BROTLI_BOOL DecodeBlockTypeAndLength(int safe, BrotliDecoderState* s, int tree_type) {
  ...
  if (/* 블록 타입이 1개뿐인 메타블록 */) {
    return BROTLI_FALSE;          /* 치명적 오류지만 복구 가능 신호와 구분 불가 */
  }
  ...
  return BROTLI_TRUE;
}
टूल डाउनलोड करें