
🛡️ NGINX CVE-2026-42945 के लिए परीक्षण स्क्रिप्ट
NGINX Open Source, NGINX Plus, या NGINX-आधारित ingress/controllers चलाने वाले संगठनों को जाँच करनी चाहिए कि वे CVE-2026-42945 से प्रभावित हैं या नहीं और शोषण के प्रयास प्रोडक्शन एजों तक पहुँचने से पहले पैच या पुनःकॉन्फ़िगर करें।
यह रिपॉजिटरी उन सिस्टमों पर अधिकृत रक्षात्मक उपयोग के लिए एक रीड-ओनली, गैर-शोषण स्कैनर प्रदान करती है जिनके स्वामी आप हैं या जिनके परीक्षण की आपको अनुमति है।
| आइटम | विवरण |
|---|---|
| CVE | CVE-2026-42945 |
| नाम | NGINX Rift |
| घटक | ngx_http_rewrite_module (हीप बफर ओवरफ्लो) |
| प्रभावित संस्करण | NGINX Open Source 0.6.27 से 1.30.0 तक |
| स्थिर संस्करण | 1.30.1, 1.31.0 (+ विक्रेता बैकपोर्ट्स) |
| CVSS | 9.2 (क्रिटिकल) |
शोषण के लिए एक विशिष्ट रिवाइट कॉन्फ़िगरेशन आवश्यक है:
rewrite निर्देश जो रिप्लेसमेंट में अनाम PCRE कैप्चर ($1, $2, …) का उपयोग करता है? होता हैserver/location स्कोप में कोई अन्य rewrite, if, या set उस कैप्चर का उपयोग करता हैप्रभाव:
| जाँच | विधि |
|---|---|
| संस्करण | स्थानीय nginx -v या निष्क्रिय Server हेडर |
| कॉन्फ़िग ट्रिगर | nginx -T या कॉन्फ़िग फ़ाइल का ह्युरिस्टिक पार्स |
| ASLR (Linux) | /proc/sys/kernel/randomize_va_space |
| मार्गदर्शन | प्राथमिकता-आधारित सुधार चरण |
यह नहीं करता: शोषण-संबंधी अनुरोध भेजना या वर्करों को क्रैश करने का प्रयास करना।
cd nginx-cve-2026-42945
chmod +x scan_nginx_rift.py
# सर्वोत्तम: प्रत्येक NGINX होस्ट पर sudo के साथ चलाएँ
sudo python3 scan_nginx_rift.py --local
# या पूर्ण कॉन्फ़िग डंप स्कैन करें
sudo nginx -T 2>&1 | tee /tmp/nginx-full.txt
python3 scan_nginx_rift.py --local --config /tmp/nginx-full.txt
# निष्क्रिय रिमोट बैनर जाँच (केवल संस्करण)
python3 scan_nginx_rift.py --url https://your-site.example/
# ऑटोमेशन के लिए JSON
python3 scan_nginx_rift.py --local --json --fail-on high
जोखिम HIGH या CRITICAL होने पर एग्ज़िट कोड 1 (--fail-on का उपयोग करके CI गेट्स ट्यून करें)।
| जोखिम | अर्थ |
|---|---|
| CRITICAL | असुरक्षित संस्करण + ज्ञात ट्रिगर से मेल खाता रिवाइट पैटर्न |
| HIGH | असुरक्षित संस्करण और संदिग्ध रिवाइट, या अज्ञात संस्करण लेकिन संभावित ट्रिगर |
| MEDIUM | असुरक्षित संस्करण, स्कैन किए गए कॉन्फ़िग में कोई ट्रिगर नहीं मिला (फिर भी पैच करें) |
| LOW | पैच किया गया संस्करण लेकिन जोखिमपूर्ण रिवाइट पैटर्न मौजूद हैं |
| INFO | पैच किया गया और स्कैन किए गए कॉन्फ़िग में कोई ट्रिगर पैटर्न नहीं |
अपग्रेड करें NGINX 1.30.1 / 1.31.0+ या अपने OS/विक्रेता सुरक्षा पैकेज पर।
अपग्रेड के बाद वर्करों को रिस्टार्ट करें (systemctl restart nginx), केवल reload नहीं।
पूर्ण कॉन्फ़िग ऑडिट करें: sudo nginx -T और $1/$2 तथा ? वाले रिवाइट नियम खोजें।
अस्थायी शमन: $1, $2 के बजाय नामित कैप्चर का उपयोग करें:
# असुरक्षित पैटर्न (सरलीकृत)
rewrite ^/api/(.*)$ /internal?migrated=true;
set $original_path $1;
# सुरक्षित पैटर्न
rewrite ^/api/(?<path>.*)$ /internal?migrated=true;
set $original_path $path;
पुष्टि करें कि Linux पर ASLR सक्षम बना रहे (randomize_va_space=2)।
Kubernetes ingress, Helm चार्ट्स, और जनरेट किए गए कॉन्फ़िग्स की समीक्षा करें — न केवल /etc/nginx/nginx.conf।
केवल उस इन्फ्रास्ट्रक्चर पर उपयोग करें जिसके मूल्यांकन के लिए आप अधिकृत हैं। अनधिकृत स्कैनिंग नीति या कानून का उल्लंघन हो सकती है।