
CVE-2026-42945 NGINX हीप ओवरफ्लो भेद्यता स्कैनिंग और सत्यापन उपकरण
NGINX Rift CVE-2026-42945 और CVE-2026-9256 (NGINX ngx_http_rewrite_module हीप ओवरफ़्लो भेद्यता) के लिए एक ओपन-सोर्स स्कैनिंग और सत्यापन उपकरण है। यह रिमोट नेटवर्क फ़िंगरप्रिंट स्कैनिंग और स्थानीय गहन कॉन्फ़िगरेशन ऑडिट का समर्थन करता है, जिससे सुरक्षा टीमें NGINX वातावरण में संभावित जोखिमों की त्वरित जाँच कर सकती हैं।
| गुण | विवरण |
|---|---|
| CVE आईडी | CVE-2026-9256 |
| भेद्यता प्रकार | हीप-आधारित बफ़र ओवरफ़्लो (Heap-based Buffer Overflow, CWE-122) |
| प्रभावित घटक | NGINX ngx_http_rewrite_module |
| प्रभावित संस्करण | NGINX ओपन-सोर्स 0.1.17 ~ 1.31.0 (mainline) / 0.1.17 ~ 1.30.1 (stable) |
| पैच संस्करण | NGINX 1.31.1 (mainline) / 1.30.2 (stable), 2026-05-22 को जारी |
| खतरा स्तर | उच्च जोखिम — सेवा से इनकार (DoS) का कारण बन सकता है, ASLR बंद होने पर रिमोट कोड निष्पादन (RCE) संभव |
ट्रिगर शर्तें: rewrite निर्देश PCRE रेगेक्स का उपयोग करता है और ओवरलैपिंग कैप्चर मौजूद है, प्रतिस्थापन स्ट्रिंग में कई अनाम कैप्चर समूहों का संदर्भ दिया गया है।
| गुण | विवरण |
|---|---|
| CVE आईडी | CVE-2026-42945 |
| भेद्यता प्रकार | हीप ओवरफ़्लो (Heap Overflow) |
| प्रभावित घटक | NGINX ngx_http_rewrite_module |
| प्रभावित संस्करण | NGINX ओपन-सोर्स 0.6.27 ~ 1.30.0 / NGINX Plus R32 ~ R36 |
| पैच संस्करण | NGINX 1.30.1 (stable) / 1.31.0 (mainline) / NGINX Plus R32 P6+ |
| खतरा स्तर | उच्च जोखिम — सेवा से इनकार (DoS) और रिमोट कोड निष्पादन (RCE) का कारण बन सकता है |
ट्रिगर शर्तें: rewrite निर्देश के प्रतिस्थापन URL में एक साथ ? और अनाम कैप्चर समूह संदर्भ (जैसे $1) शामिल हैं।
# CVE-2026-42945 触发配置: ? + $1
rewrite ^/api/(.*)$ /internal?id=$1 last;
# CVE-2026-9256 触发配置: 多个 $N 捕获引用
rewrite ^/(\w+)/(\d+)$ /$2/$1 last;
# 安全配置 (使用命名捕获组)
rewrite ^/api/(?<myid>.*)$ /internal?id=$myid last;
dpkg/rpm पैकेज मैनेजर के साथ एकीकरण, यह पता लगाना कि वितरण ने Backport के माध्यम से भेद्यता को ठीक किया है या नहींrewrite-target एनोटेशन की स्वचालित खोजReleases पेज से अपने प्लेटफ़ॉर्म के अनुरूप बाइनरी फ़ाइल डाउनलोड करें।
git clone https://github.com/nu0l/NGINX-Rift.git
cd NGINX-Rift
# 单平台编译
go build -o nginx_rift_scanner nginx_rift_scanner.go
# 全平台交叉编译
chmod +x build.sh && ./build.sh
./nginx_rift_scanner -h
# 扫描单个目标
./nginx_rift_scanner scan -u http://example.com
# 批量扫描(从文件读取 URL 列表)
./nginx_rift_scanner scan -f url.txt
url.txt में प्रत्येक पंक्ति में एक URL, उदाहरण के लिए:
http://target1.com
https://target2.com
target3.com
# 自动查找默认 NGINX 配置路径
./nginx_rift_scanner verify
# 指定配置文件路径
./nginx_rift_scanner verify -p /etc/nginx/nginx.conf
Verify मोड तीन-चरणीय ऑडिट निष्पादित करता है:
nginx -v चलाकर संस्करण प्राप्त करें, और OS पैकेज मैनेजर के Backport पैच की जाँच करेंinclude निर्देशों सहित), खतरनाक rewrite नियमों की पहचानkubectl का पता चलता है, तो क्लस्टर में सभी Ingress संसाधनों की स्वचालित स्कैनिंग| प्राथमिकता | समाधान | विवरण |
|---|---|---|
| P0 | NGINX अपग्रेड करें | 1.30.2+ (stable) / 1.31.1+ (mainline) / NGINX Plus नवीनतम सुरक्षा संस्करण में अपग्रेड करें |
| P0 | OS पैकेज मैनेजर अपडेट | apt-get upgrade nginx या yum update nginx |
| P1 | आपातकालीन कॉन्फ़िगरेशन शमन | rewrite में $1, $2 आदि को नामित कैप्चर समूह $name में बदलें, बिना डाउनटाइम के |
| P2 | K8s Ingress फिक्स | Ingress Controller अपग्रेड करें और rewrite-target एनोटेशन संशोधित करें |
| P3 | डिफेंस-इन-डेप्थ | server_tokens off; कॉन्फ़िगर करके संस्करण फ़िंगरप्रिंट छिपाएँ |
NGINX-Rift/
├── nginx_rift_scanner.go # 主程序源码
├── build.sh # 全平台交叉编译脚本
├── go.mod # Go 模块定义
└── README.md
Server रिस्पॉन्स हेडर को पार्स करने के लिए Go मानक लाइब्रेरी net/http का उपयोगnginx/X.Y.Z) और कमर्शियल (NGINX Plus RXX) संस्करण संख्याएँ निकालने के लिए रेगेक्स मिलानinclude निर्देशों पर नज़र रखना, चक्रीय संदर्भों को रोकने के लिए visited map का उपयोग? + $N (CVE-2026-42945) और एकाधिक $N संदर्भ (CVE-2026-9256)kubectl get ingress --all-namespaces -o yaml के माध्यम से K8s Ingress कॉन्फ़िगरेशन को गतिशील रूप से प्राप्त करनाdpkg-query/rpm --changelog का उपयोग (दोनों CVE आईडी की एक साथ खोज)CGO_ENABLED=0), जिससे C निर्भरता के बिना स्टैंडअलोन बाइनरी तैयार होती हैMIT License
सुरक्षा समुदाय द्वारा योगदान।