
Proof-of-concept exploit per CVE-2026-42945, un heap buffer overflow nel modulo rewrite di NGINX che consente l'esecuzione remota di codice non autenticata tramite heap feng shui tra richieste.
Proof of concept di RCE per CVE-2026-42945, un overflow critico dell'heap buffer in ngx_http_rewrite_module di NGINX introdotto nel 2008. Il bug consente l'esecuzione remota di codice non autenticata contro server che utilizzano le direttive rewrite e set.
Questa vulnerabilità — insieme ad altri tre problemi di corruzione della memoria (CVE-2026-42946, CVE-2026-40701, CVE-2026-42934) — è stata scoperta autonomamente dal sistema di analisi della sicurezza di depthfirst dopo un solo clic per l'inserimento del sorgente NGINX.
Vuoi trovare problemi come questo nel tuo codice? Prova lo stesso sistema su https://depthfirst.com/open-defense.
Il motore di script di NGINX usa un processo in due passaggi: prima calcola la dimensione del buffer necessaria, poi copia i dati. Il flag is_args viene impostato sul motore principale quando una sostituzione rewrite contiene ?, ma il passaggio di calcolo della lunghezza viene eseguito su un sotto-motore appena azzerato. Quindi:
is_args = 0 → restituisce la lunghezza grezza della cattura.is_args = 1 → chiama ngx_escape_uri con NGX_ESCAPE_ARGS, espandendo ogni byte escapabile in 3 byte.La copia causa un overflow del buffer heap sottodimensionato con dati URI controllati dall'attaccante. Lo sfruttamento usa heap feng shui tra richieste per corrompere il puntatore cleanup di un ngx_pool_t adiacente (spruzzato tramite corpi POST, poiché i byte URI non possono contenere byte null), reindirizzandolo a un finto ngx_pool_cleanup_s che invoca system() alla distruzione del pool.
Leggi di più su questo bug nel nostro approfondimento tecnico.
| Prodotto | Versioni interessate | Corretta in |
|---|---|---|
| NGINX Open Source | 0.6.27 – 1.30.0 | 1.31.0, 1.30.1 |
| NGINX Plus | R32 – R36 | R36 P4, R35 P2, R32 P6 |
Avviso completo del fornitore: https://my.f5.com/manage/s/article/K000160932
Testato su Ubuntu 24.04.3 LTS.
./setup.sh — crea il container.docker compose -f env/docker-compose.yml up — avvia il server NGINX vulnerabile.python3 poc.py --shell — apre una shell.