
NGINX RCE शोषण
CVE-2026-42945 के लिए RCE प्रूफ ऑफ कॉन्सेप्ट, जो NGINX के ngx_http_rewrite_module में 2008 में पेश किया गया एक गंभीर हीप बफर ओवरफ्लो है। यह बग rewrite और set निर्देशों का उपयोग करने वाले सर्वरों के विरुद्ध बिना प्रमाणीकरण के रिमोट कोड निष्पादन को सक्षम बनाता है।
यह भेद्यता — तीन अन्य मेमोरी करप्शन समस्याओं (CVE-2026-42946, CVE-2026-40701, CVE-2026-42934) के साथ — depthfirst की सुरक्षा विश्लेषण प्रणाली द्वारा NGINX स्रोत को ऑनबोर्ड करने के एक ही क्लिक के बाद स्वायत्त रूप से खोजी गई थी।
क्या आप अपने कोड में ऐसी समस्याएं खोजना चाहते हैं? उसी प्रणाली को https://depthfirst.com/open-defense पर आज़माएं।
NGINX की स्क्रिप्ट इंजन दो-चरणीय प्रक्रिया का उपयोग करती है: पहले आवश्यक बफर आकार की गणना करें, फिर डेटा कॉपी करें। is_args फ्लैग मुख्य इंजन पर सेट होता है जब एक rewrite प्रतिस्थापन में ? होता है, लेकिन लंबाई-गणना चरण एक नए शून्य किए गए उप-इंजन पर चलता है। इसलिए:
is_args = 0 देखता है → कच्ची कैप्चर लंबाई लौटाता है।is_args = 1 देखता है → NGX_ESCAPE_ARGS के साथ ngx_escape_uri को कॉल करता है, प्रत्येक एस्केप योग्य बाइट को 3 बाइट्स में विस्तारित करता है।कॉपी आकार में छोटे हीप बफर को हमलावर-नियंत्रित URI डेटा के साथ ओवरफ्लो करती है। शोषण क्रॉस-रिक्वेस्ट हीप फेंग शुई का उपयोग करके एक आसन्न ngx_pool_t के cleanup पॉइंटर को भ्रष्ट करता है (POST बॉडी के माध्यम से स्प्रे किया गया, क्योंकि URI बाइट्स में नल बाइट्स नहीं हो सकते), इसे एक नकली ngx_pool_cleanup_s की ओर पुनर्निर्देशित करता है जो पूल विनाश पर system() को आमंत्रित करता है।
इस बग के बारे में हमारे तकनीकी लेख में और पढ़ें।
| उत्पाद | प्रभावित | सुधारित |
|---|---|---|
| NGINX ओपन सोर्स | 0.6.27 – 1.30.0 | 1.31.0, 1.30.1 |
| NGINX Plus | R32 – R36 | R36 P4, R35 P2, R32 P6 |
पूर्ण विक्रेता सलाह: https://my.f5.com/manage/s/article/K000160932
K000161616: NGINX ngx_http_v3_module भेद्यता — HTTP/3 QPACK सत्र insert_buffer को एक यूनिडायरेक्शनल एन्कोडर स्ट्रीम के पूल से आवंटित करता है। उस स्ट्रीम को बंद करने से पूल मुक्त हो जाता है जबकि सत्र एक डैंगलिंग पॉइंटर रखता है, इसलिए बाद की एन्कोडर स्ट्रीम NGINX वर्कर में हीप यूज़-आफ्टर-फ्री को ट्रिगर करती है।
K000162097: NGINX map निर्देश और regex मिलान भेद्यता — कैप्चर चर के साथ map निर्देश regex मिलान NGINX वर्कर प्रक्रिया में हीप बफर ओवरफ्लो का कारण बन सकता है।
बग स्ट्रीम स्क्रिप्ट इंजन के दो-चरणीय जटिल-मूल्य मूल्यांकन में है। ssl_preread का उपयोग करने वाले एक भेद्य stream कॉन्फ़िगरेशन में, हमलावर-नियंत्रित TLS SNI को regex-समर्थित चर में फीड किया जाता है। NGINX पहले आउटपुट बफर लंबाई की गणना करता है, फिर आउटपुट कॉपी करता है। एक map regex उन चरणों के बीच वैश्विक कैप्चर स्थिति को अपडेट कर सकता है: लंबाई चरण एक छोटे मान के लिए जिम्मेदार होता है, जबकि कॉपी चरण $1 जैसे बड़े regex कैप्चर को पढ़ता है, जिससे वर्कर में आउट-ऑफ-बाउंड्स हीप राइट होता है।
साथी CVE-2026-42533/ PoC एक पूर्ण-श्रृंखला शोषण है। यह ASLR बाईपास के लिए हीप और libc आधारों को पुनर्प्राप्त करने के लिए स्ट्रीम लीक प्रिमिटिव का उपयोग करता है, HTTP अनुरोध निकायों के माध्यम से नकली ngx_pool_cleanup_s रिकॉर्ड स्प्रे करता है, और फिर आसन्न NGINX पूल क्लीनअप पॉइंटर को भ्रष्ट करने के लिए ओवरफ्लो का उपयोग करता है। जब भ्रष्ट पूल नष्ट हो जाता है, क्लीनअप डिस्पैच को libc system() की ओर पुनर्निर्देशित किया जाता है, जो आपूर्ति किए गए कमांड को निष्पादित करता है।