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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-42533-POC — CVE-2026-42533: map/script इंजन में PCRE कैप्चर क्लोबरिंग से nginx का pre-auth हीप ओवरफ़्लो और जानकारी लीक, जो RCE तक चेन किया जाता है। | Kitploit
उपकरण/GitHubGitHub/0xcyberstan/cve-2026-42533-poc
भेद्यता विश्लेषणशोषणवेब सुरक्षापेनिट्रेशन टेस्टिंगरेड टीमिंगबाइनरी शोषण
GitHub0xcyberstan/cve-2026-42533-poc

CVE-2026-42533-POC

CVE-2026-42533: map/script इंजन में PCRE कैप्चर क्लोबरिंग से nginx का pre-auth हीप ओवरफ़्लो और जानकारी लीक, जो RCE तक चेन किया जाता है।

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

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

सभी देखें →

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

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

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

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

CVE-2026-42533

nginx में प्री-ऑथ हीप बफर ओवरफ़्लो और हीप सूचना लीक, जो स्क्रिप्ट इंजन के दो पासों के बीच PCRE कैप्चर स्टेट के सेव/रेस्टोर न होने के कारण होता है। दो कैप्चर संदर्भों के बीच मूल्यांकित एक regex map वेरिएबल r->captures को अधिलेखित कर देता है, जिससे LEN पास और VALUE पास इस बात पर असहमत हो जाते हैं कि एक कैप्चर कितना बड़ा है। बफर एक कैप्चर के आकार का होता है और दूसरे से भर दिया जाता है। बड़ा क्लोबर हमलावर-नियंत्रित सामग्री और लंबाई के साथ हीप ओवरफ़्लो देता है। छोटा क्लोबर एक अत्यधिक बड़ा बफर देता है जिसकी अप्रारंभित पूँछ क्लाइंट को लौटा दी जाती है, जिससे libc और हीप पॉइंटर लीक हो जाते हैं।

दोनों प्रिमिटिव मिलकर विश्वसनीय प्री-ऑथ रिमोट कोड एक्ज़ीक्यूशन श्रृंखला बनाते हैं। लीक एक ही GET में ASLR को पराजित कर देता है, इसलिए ओवरफ़्लो के लिए ASLR को अक्षम करने की आवश्यकता नहीं होती।

विवरण: https://cyberstan.co.uk/nginx-rce/ परामर्श: F5 K000162097 रिपोर्टकर्ता: Stan Shaw (cyberstan)

प्रभावित

nginx 0.9.6 से 1.30.3 (स्टेबल) और 1.31.2 (मेनलाइन), 2011 में map डायरेक्टिव को regex समर्थन मिलने के बाद से पहुँच योग्य। http और stream दोनों मॉड्यूल प्रभावित हैं। 13 कॉल साइटों पर लगभग 50 डायरेक्टिव, साथ ही नामित कैप्चर (r->variables[]) के माध्यम से दूसरा पथ। 1.30.4 और 1.31.3 में सुधार किया गया।

लेआउट

CVE-2026-42533-PoC/
├── exploits/                 exploit and validator scripts
│   ├── poc.py                numbered-capture proxy_method chain (crash/leak/rce/rce-det)
│   ├── calibrate.py          find PL_OFF / HEAP_PAGE_OFF for --rce-det on your build
│   ├── leak_multi.py         info leak on the return and set sinks
│   ├── test_all_sites.py     ASan validator, all 13 overflow sites
│   └── named_capture_poc.py  named-capture r->variables[] variant
├── configs/                  nginx configs the exploits run against
│   ├── nginx_poc.conf        crash / leak / rce
│   └── nginx_det.conf        deterministic rce-det
├── docs/
│   └── EXPLOITATION.md       full exploitation writeup
└── README.md

रिपॉज़िटरी रूट से नीचे दिए गए हर कमांड को चलाएँ, ताकि exploits/, configs/ और ../nginx-1.30.1 बिल्ड ट्री सभी सही ढंग से रिज़ॉल्व हों।

सामग्री

exploits/poc.py मुख्य एक्सप्लॉइट है (नंबरित कैप्चर, proxy_method सिंक)। इसके मोड:

मोडउद्देश्य
poc.py --crashहीप ओवरफ़्लो दागता है; ASan बिल्ड पर यह ngx_http_script_copy_capture_code पर राइट साइज़ और स्टैक प्रिंट करता है।
poc.py --leakसूचना लीक: अत्यधिक बड़े रिस्पॉन्स बॉडी से libc और हीप पॉइंटर बाहर निकालता है।
poc.py --rceपूर्ण प्री-ऑथ RCE। सामान्य सिंगल शॉट (configs/nginx_poc.conf), प्रति प्रयास ~66%, चूक जाने पर दोबारा चलाएँ।
poc.py --rce-detपूर्ण प्री-ऑथ RCE, नियंत्रित configs/nginx_det.conf के विरुद्ध डिटर्मिनिस्टिक।

बग की शेष सतह को कवर करने वाली स्टैंडअलोन स्क्रिप्ट:

स्क्रिप्टउद्देश्य
exploits/leak_multi.pyदो और इवैल्यूएटरों (return, set) के माध्यम से सूचना लीक; प्रत्येक libc+हीप पॉइंटर /proc/<pid>/maps के विरुद्ध पुष्टि किया गया। स्टॉक कॉन्फ़िग।
exploits/test_all_sites.pyAddressSanitizer वैलिडेटर जो सभी 13 ओवरफ़्लो कॉल साइटों (http + stream) को दागता है।
exploits/named_capture_poc.pyr->variables[] / copy_var_code के माध्यम से नामित-कैप्चर (?P<name>...) वैरिएंट; दूसरा मूल कारण।

कॉन्फ़िग configs/ में हैं: nginx_poc.conf (crash/leak/rce), nginx_det.conf (rce-det)। पूरा विवरण docs/EXPLOITATION.md में है।

आवश्यकताएँ

Linux, gcc, python3, और nginx 1.30.1 सोर्स। Ubuntu 24.04.4, glibc 2.39, PCRE2 10.42, python 3.12, पूर्ण ASLR पर विकसित और परीक्षित।

बिल्ड

दो बिल्ड। लीक और RCE के लिए एक क्लीन बिल्ड, ताकि हीप अवशेष वास्तविक रहे। क्रैश और साइट वैलिडेटरों के लिए एक AddressSanitizer बिल्ड, ताकि ओवरफ़्लो की सूचना सटीक राइट साइज़ और स्टैक के साथ मिले।

tar xf nginx-1.30.1.tar.gz
cd nginx-1.30.1

# clean build -> objs.dbg/nginx  (leak, rce)
./configure --with-pcre --with-http_ssl_module --with-debug --builddir=objs.dbg
make -j"$(nproc)"

# ASan build with all the modules the site validator needs -> objs/nginx
./configure --with-pcre --with-http_ssl_module --with-http_v2_module \
    --with-stream --with-stream_ssl_preread_module --with-stream_ssl_module \
    --with-debug \
    --with-cc-opt='-g -O0 -fsanitize=address -fno-omit-frame-pointer' \
    --with-ld-opt=-fsanitize=address --builddir=objs
make -j"$(nproc)"

चलाना

exploits/poc.py 127.0.0.1:8950 पर चल रहे nginx से संवाद करता है। इसे एक टर्मिनल में configs/nginx_poc.conf के साथ शुरू करें, फिर दूसरे टर्मिनल में अपना इच्छित मोड चलाएँ। बाकी तीन स्क्रिप्ट अपना nginx स्वयं शुरू और बंद करती हैं, इसलिए उन्हें केवल NGINX_BIN की आवश्यकता होती है।

ओवरफ़्लो, ASan ट्रेस के साथ

mkdir -p run/logs
../nginx-1.30.1/objs/nginx -p run -c "$PWD/configs/nginx_poc.conf"    # ASan build, foreground
python3 exploits/poc.py --crash

अपेक्षित परिणाम: एक हीप-बफर-ओवरफ़्लो, ngx_http_script.c:1404 पर ngx_http_script_copy_capture_code में WRITE of size 200, जिसे ngx_http_proxy_create_request में ngx_http_complex_value से कॉल किया गया है।

सूचना लीक

../nginx-1.30.1/objs.dbg/nginx -p run -c "$PWD/configs/nginx_poc.conf"    # clean build
python3 exploits/poc.py --leak

अपेक्षित परिणाम: 8161 बाइट का बॉडी, जिसमें 2 बाइट लिखे गए हैं और शेष हीप अवशेष है। ऑफ़सेट 0x08 पर एक libc पॉइंटर और 0x10 पर एक हीप पॉइंटर।

पूर्ण श्रृंखला

../nginx-1.30.1/objs.dbg/nginx -p run -c "$PWD/configs/nginx_poc.conf"    # clean build
python3 exploits/poc.py --rce            # writes /tmp/PWNED via system()

अपेक्षित परिणाम: एक लीक, लगभग 40 स्प्रे कनेक्शन, एक ओवरफ़्लो ट्रिगर, फिर id का आउटपुट रखने वाला /tmp/PWNED। यह सिंगल शॉट है और डेव बिल्ड पर लगभग दो-तिहाई बार सफल होता है; चूक जाने पर वर्कर क्रैश हो जाता है और आप इसे दोबारा चलाते हैं। docs/EXPLOITATION.md का "Reliability" अनुभाग देखें।

डिटर्मिनिस्टिक पूर्ण श्रृंखला

नियंत्रित कॉन्फ़िग के विरुद्ध यही बग एक डिटर्मिनिस्टिक सिंगल शॉट है। यह लीक से एक पंक्ति में पूर्ण हीप बेस प्राप्त करता है (heap_base = (leaked_ptr & ~0xfff) - 0x22000), एक होल्ड किए गए कनेक्शन में ज्ञात पते पर एक एकल जाली पूल क्लीनअप रखता है, और पीड़ित पूल के क्लीनअप को क्षणिक ट्रिगर बॉडी के बजाय उसकी ओर इंगित करता है, जिसे nginx टियरडाउन से पहले मुक्त कर देता है।

mkdir -p run/logs
../nginx-1.30.1/objs.dbg/nginx -p run -c "$PWD/configs/nginx_det.conf"   # controlled config
python3 exploits/poc.py --rce-det

nginx_det.conf एक प्रयोगशाला कॉन्फ़िग है (एकल वर्कर, निश्चित बफर) जिसका हीप लेआउट पुनरुत्पादनीय है, जिससे poc.py में दिए ऑफ़सेट (PL_OFF, HEAP_PAGE_OFF) मान्य रहते हैं। PL_OFF हीप बेस से वह ऑफ़सेट है जिस पर होल्ड किया गया POST /b/ क्लीनअप बॉडी स्थित होता है; यह सटीक आवंटन अनुक्रम पर निर्भर करता है, इसलिए यह बिल्ड, glibc संस्करण और कॉन्फ़िग के अनुसार बदलता है। यदि --rce-det Recalibrate की सूचना दे, तो calibrate.py से चालू वर्कर पर सही मान पढ़ें:

NGINX_BIN=../nginx-1.30.1/objs.dbg/nginx python3 exploits/calibrate.py
# prints e.g.  set PL_OFF = 0x14426  ,  then edit it in exploits/poc.py

एकमात्र अन्य गैर-सफल स्थिति एक ASLR ड्रॉ है जो क्लीनअप पते या ओवरफ़्लो बॉडी के अंदर 0x0a डाल देता है, जिसे map regex के माध्यम से नहीं भेजा जा सकता; टूल इसकी सूचना देता है और आप दोबारा चलाते हैं। एक स्टॉक तैनाती इतनी पूर्वानुमेय नहीं होती, इसलिए वहाँ --rce का उपयोग करें। docs/EXPLOITATION.md में "A deterministic build" देखें।

सभी 13 ओवरफ़्लो साइटें

NGINX_BIN=../nginx-1.30.1/objs/nginx python3 exploits/test_all_sites.py       # ASan build
NGINX_BIN=../nginx-1.30.1/objs/nginx python3 exploits/test_all_sites.py 1 7 12   # a subset

नामित कैप्चर वैरिएंट

NGINX_BIN=../nginx-1.30.1/objs/nginx python3 exploits/named_capture_poc.py    # ASan build

स्टॉक कॉन्फ़िग पर दो और सिंक पर लीक

NGINX_BIN=../nginx-1.30.1/objs.dbg/nginx python3 exploits/leak_multi.py       # clean build

अपेक्षित परिणाम: return और set प्रत्येक एक libc और एक हीप पॉइंटर लीक करते हैं, दोनों की पुष्टि वर्कर के /proc/<pid>/maps के विरुद्ध होती है।

समस्या निवारण

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