
CVE-2026-49975 के लिए प्रमाण की अवधारणा (PoC) – HPACK प्रवर्धन और कनेक्शन प्रतिधारण (HTTP/2 Slowloris) का लाभ उठाकर HTTP/2 सर्वर मेमोरी थकावट हमला।
एक डेनियल-ऑफ-सर्विस (DoS) प्रूफ ऑफ कॉन्सेप्ट जो HTTP/2 सर्वरों को लक्षित करता है। HPACK प्रवर्धन और स्ट्रीम प्रतिधारण को संयोजित करके, एक मामूली नेटवर्क कनेक्शन वाली एकल मशीन कुछ सेकंड के भीतर एक कमज़ोर सर्वर को अनुपलब्ध कर सकती है।
CVE-2026-49975mod_http2 मॉड्यूल में अत्यधिक आकार की मेमोरी आवंटन भेद्यता (CWE-789) विशेष रूप से तैयार किए गए HTTP अनुरोधों के माध्यम से डेनियल-ऑफ-सर्विस हमले की अनुमति देती है।शोषण कई चरणों में आगे बढ़ता है, जैसा कि इसके निष्पादन लॉग द्वारा दर्शाया गया है:
TCP/TLS कनेक्शन स्थापना
लक्ष्य सर्वर पर कई समवर्ती TCP/TLS कनेक्शन खोले जाते हैं।
HTTP/2 वार्ता
क्लाइंट सर्वर द्वारा अनुमत अधिकतम समवर्ती स्ट्रीम की संख्या का पता लगाता है (आमतौर पर 100 या 128)।
HPACK प्राइमिंग
सावधानीपूर्वक तैयार किए गए HTTP हेडर भेजे जाते हैं ताकि सर्वर को अत्यधिक बड़ी HPACK संपीड़न तालिकाएं आवंटित करने के लिए मजबूर किया जा सके, जिससे मेमोरी खपत तेजी से बढ़ती है।
कनेक्शन प्रतिधारण
एक बार स्ट्रीम खोलने के बाद, कनेक्शन अनिश्चित काल तक जीवित रहते हैं, आवंटित मेमोरी को जारी होने से रोकते हैं और अंततः सर्वर की उपलब्ध RAM को समाप्त कर देते हैं।
डिफ़ॉल्ट कॉन्फ़िगरेशन का उपयोग करके कई वेब सर्वरों के विरुद्ध परीक्षण किया गया।
h2.exceptions.TooManyStreamsErrorतब होता है जब --streams को दिया गया मान सर्वर द्वारा समर्थित अधिकतम समवर्ती स्ट्रीम से अधिक हो जाता है।
समाधान: हमला शुरू करने से पहले सर्वर की स्ट्रीम सीमा का पता लगाएं।
NameError: name 'SettingsAcknowledued' is not definedPoC स्रोत कोड में एक साधारण टाइपोग्राफिकल त्रुटि।
समाधान: बदलें:
SettingsAcknowledued
with:
SettingsAcknowledged
[SSL] unknown errorआमतौर पर इंगित करता है कि लक्ष्य TLS पर HTTP/2 का समर्थन नहीं करता है या आने वाले कनेक्शनों को अस्वीकार कर रहा है।
EOF occurred in violation of protocolरिमोट सर्वर ने अप्रत्याशित रूप से कनेक्शन बंद कर दिया।
यह आमतौर पर तब होता है जब सर्वर अपने संसाधनों को समाप्त करना शुरू कर देता है और नए कनेक्शनों को अस्वीकार करना शुरू कर देता है।
Invalid input ConnectionInputs.SEND_HEADERSसर्वर ने सभी अनुरोध हेडर प्रसारित होने से पहले HTTP/2 कनेक्शन बंद कर दिया।
प्रूफ ऑफ कॉन्सेप्ट को Python स्क्रिप्ट के रूप में लागू किया गया है।
git clone https://github.com/califio/http2-bomb.git
cd http2-bomb
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
10 कनेक्शन और 100 स्ट्रीम का उपयोग करके बुनियादी हमला:
python bomb.py example.com --streams 100 --connections 10
(लक्ष्य को प्रति कनेक्शन कम से कम 100 समवर्ती स्ट्रीम की अनुमति देनी होगी।)
स्वचालित स्ट्रीम सीमा पहचान:
python bomb.py example.com --connections 10
बड़े पैमाने पर हमला:
python bomb.py target.example.com --connections 50
उच्च-मात्रा कनेक्शन परीक्षण:
python h2bomb.py -t target.example.com:443 -c 1000
बहुत बड़े पैमाने पर कनेक्शन परीक्षण:
python h2bomb.py -t example.com -c 20000
यह सॉफ्टवेयर विशेष रूप से सुरक्षा अनुसंधान, शैक्षिक उद्देश्यों, और उन प्रणालियों के परीक्षण के लिए प्रदान किया गया है जिनके लिए आपके पास स्पष्ट प्राधिकरण है।
इस उपकरण का उन प्रणालियों के विरुद्ध अनधिकृत उपयोग जिनके आप मालिक नहीं हैं या परीक्षण करने की अनुमति नहीं है, लागू कानूनों और विनियमों का उल्लंघन कर सकता है। लेखक और योगदानकर्ता इस सॉफ्टवेयर के उपयोग से होने वाले किसी भी दुरुपयोग या क्षति के लिए कोई जिम्मेदारी नहीं लेते हैं।
| वेब सर्वर | परीक्षित संस्करण | RAM | मेमोरी समाप्ति | देखा गया व्यवहार |
|---|
| Envoy | 1.37.2 | 32 GB | ~10 सेकंड | बहुत जल्दी मेमोरी सफलतापूर्वक समाप्त कर दी। |
| Apache HTTP Server | 2.4.67 | 32 GB | ~18 सेकंड | स्ट्रीम सीमा आमतौर पर 100। HPACK प्राइमिंग और अनिश्चित कनेक्शन प्रतिधारण के माध्यम से मानक हमला प्रगति। |
| nginx | 1.29.7 | 32 GB | ~45 सेकंड | स्ट्रीम सीमा आमतौर पर 128। हमला सफल होता है लेकिन उपलब्ध मेमोरी को खपत करने में अधिक समय लगता है। |
| Microsoft IIS | निर्दिष्ट नहीं | 64 GB | ~45 सेकंड | असामान्य रूप से बड़ी स्ट्रीम सीमाएं जैसे 4294967297 का विज्ञापन कर सकता है। |
| गैर-कमज़ोर लक्ष्य | विविध | - | - | सर्वर के कॉन्फ़िगर की गई स्ट्रीम सीमा से अधिक होने का प्रयास करने पर तत्काल TLS विफलताएं या TooManyStreamsError। |