
व्यवहार-आधारित पहचान स्क्रिप्ट CVE-2026-42945 (NGINX Rift) के लिए — ngx_http_rewrite_module में हीप ओवरफ्लो। कोई RCE नहीं, केवल क्रैश-आधारित पहचान।
CVE-2026-42945 (NGINX Rift) के लिए व्यवहारिक डिटेक्शन स्क्रिप्ट — ngx_http_rewrite_module में एक हीप बफर ओवरफ्लो, जो 2008 से nginx में मौजूद है।
यह टूल केवल अधिकृत सुरक्षा परीक्षण और शोध के लिए है। इसे केवल उन सिस्टम पर चलाएँ जिनके स्वामी आप हैं या जिनके परीक्षण के लिए आपके पास स्पष्ट लिखित अनुमति है। अनधिकृत उपयोग आपके क्षेत्राधिकार में कंप्यूटर अपराध कानूनों का उल्लंघन कर सकता है। लेखक इस टूल के किसी भी दुरुपयोग या क्षति के लिए ज़िम्मेदार नहीं है।
CVE-2026-42945 nginx के रीराइट स्क्रिप्ट इंजन (ngx_http_rewrite_module) में एक हीप बफर ओवरफ्लो है, जो संस्करण (2008) में पेश किया गया था और लगभग 18 वर्षों से मौजूद है।
0.6.27यह बग रीराइट इंजन के दो पासों के बीच बेमेल के कारण आता है:
is_args = 0 देखता है → छोटा बफर आवंटित करता हैis_args = 1 देखता है → ngx_escape_uri को कॉल करता है, प्रत्येक एस्केप योग्य बाइट (जैसे +) को 3× आकार में विस्तारित करता है → हीप बफर को ओवरफ्लो कर देता हैयह बिना प्रमाणीकरण के रिमोट कोड निष्पादन की अनुमति देता है।
प्रभावित संस्करण:
| उत्पाद | असुरक्षित | पैच किया गया |
|---|---|---|
| NGINX Open Source | 0.6.27 – 1.30.0 | 1.30.1, 1.31.0+ |
| NGINX Plus | R32 – R36 | R36 P4, R35 P2, R32 P6 |
संदर्भ:
यह स्क्रिप्ट RCE का प्रयास नहीं करती। यह रॉ सॉकेट्स का उपयोग करके PoC के प्रवाह की नकल करती है:
GET /api/<349×A><969×+> को आंशिक HTTP अनुरोध के रूप में भेजता है।डिटेक्शन एक वर्कर प्रक्रिया को क्रैश करने पर निर्भर करता है। nginx मास्टर इसे तुरंत पुनः स्पॉन कर देगा, लेकिन संक्षिप्त रुकावट आएगी। प्रोडक्शन सिस्टम पर सावधानी से उपयोग करें।
# Single target (HTTP)
python3 detect-CVE-2026-42945.py --host 127.0.0.1 --port 80
# Single target (HTTPS)
python3 detect-CVE-2026-42945.py --host example.com --port 443 --tls
# List of targets
python3 detect-CVE-2026-42945.py -l targets.txt
# With threading and output file
python3 detect-CVE-2026-42945.py -l targets.txt --threads 10 -o vulnerable.txt
# More attempts for unreliable targets
python3 detect-CVE-2026-42945.py --host 10.0.0.1 --port 8080 --tries 5
targets.txt प्रारूप — प्रति पंक्ति एक:
http://example.com
https://example.com:8443
192.168.1.1
192.168.1.1:8080
विकल्प:
--host Single target host
--port Port (default: 80, or 443 with --tls)
--tls Use TLS/HTTPS for single target
-l, --list File with list of targets
--tries Detection attempts per target (default: 3)
--threads Concurrent threads for list scan (default: 5)
-o, --output Save vulnerable targets to CSV file
[*] CVE-2026-42945 NGINX Rift Detection | targets=2 threads=5 tries=3
[*] http://192.168.1.1:80 - nginx/1.28.0
[*] http://192.168.1.2:8080 - nginx/1.31.0
[!!!] VULNERABLE | http://192.168.1.1:80 | nginx/1.28.0 | worker crash (trigger connection closed — worker respawned)
[+] http://192.168.1.2:8080 - not vulnerable (or timing miss, try --tries 5)
==================================================
[*] Scan complete. 2 targets scanned.
[!!!] 1 VULNERABLE target(s):
http://192.168.1.1:80 (nginx/1.28.0)
==================================================
मूल रिपॉजिटरी में एक Docker लैब वातावरण शामिल है:
git clone https://github.com/DepthFirstDisclosures/Nginx-Rift
cd Nginx-Rift
chmod +x setup.sh && ./setup.sh
docker compose -f env/docker-compose.yml up -d
python3 detect-CVE-2026-42945.py --host 127.0.0.1 --port 19321
MIT — देखें LICENSE
मूल भेद्यता शोध और PoC: DepthFirstDisclosures