Allerta Critica: CVE-2026-42945 – La Falla Dimenticata di Nginx Minaccia la Sicurezza Web
Allerta Critica: CVE-2026-42945 – La Falla Dimenticata di Nginx Minaccia la Sicurezza Web
Nel sempre più complesso scacchiere della cybersecurity, a volte le minacce più insidiose non sono nuove, ma piuttosto vecchie falle dimenticate che riemergono con conseguenze devastanti. È questo il caso della CVE-2026-42945, una vulnerabilità critica (CVSS 9.2) che affligge Nginx, il pilastro di milioni di infrastrutture web globali, da ben 18 anni.
CVE-2026-42945: Il Buffer Overflow Nascosto per 18 Anni
Questa vulnerabilità, un heap buffer overflow nel modulo ngx_http_rewrite_module, era presente in Nginx sin dalla versione 0.6.27 (rilasciata nel 2008). È stata scoperta e documentata con il nome in codice “Nginx Rift”. Ciò che la rende particolarmente pericolosa è la sua semplicità di attivazione attraverso una combinazione di direttive Nginx estremamente comuni:
- Una direttiva
rewriteil cui valore di sostituzione contiene un?(che imposta un flag internois_args). - Una direttiva
setche fa riferimento a un gruppo di cattura di espressioni regolari (ad esempio,$1,$2).
Il Meccanismo dell’Exploit: Un Errore nel Motore di Script
Il cuore del problema risiede nel motore di script a due passaggi di Nginx. Durante il primo passaggio, per il calcolo della lunghezza, viene utilizzato un sotto-motore “fresco” con il flag is_args=0. Tuttavia, durante il secondo passaggio, quello di copia, viene utilizzato il motore principale dove il flag is_args=1 è ancora impostato. Quando l’URI contiene caratteri che richiedono escape (come + o &), la fase di copia espande ogni byte a tre byte, scrivendo ben oltre il buffer allocato e sovrascrivendo l’heap.
Un esempio di configurazione vulnerabile è il seguente, spesso utilizzato in gateway API o configurazioni di migrazione:
location ~ ^/api/(.*)$ {
rewrite ^/api/(.*)$ /internal?migrated=true;
set $original_endpoint $1; # <-- Questa combinazione attiva il bug
}
Le Versioni Interessate e le Implicazioni
Questa vulnerabilità interessa una vasta gamma di installazioni Nginx:
- Nginx open-source: Dalla versione 0.6.27 fino alla 1.30.0.
- Nginx Plus: Dalle release R32 a R36.
- Numerosi prodotti F5/Nginx basati su queste versioni (fare riferimento all'advisory completo per i dettagli).
Le implicazioni di uno sfruttamento riuscito sono gravissime, dato il punteggio CVSS di 9.2 (Critico):
- Esecuzione di Codice Remoto (RCE): Un attaccante non autenticato può eseguire codice arbitrario sul server Nginx, ottenendo il controllo totale del sistema.
- Compromissione dei Dati: Accesso non autorizzato a dati sensibili, credenziali e informazioni riservate.
- Defacement e Manipolazione: Alterazione del contenuto del sito web o reindirizzamento degli utenti a siti malevoli.
- Punto di Appoggio per Ulteriori Attacchi: Il server Nginx compromesso può diventare un trampolino di lancio per attacchi all'interno della rete aziendale.
Come Verificare e Mitigare: Azioni Immediate
La rapidità di risposta è fondamentale. È disponibile uno scanner per identificare le installazioni vulnerabili:
Scanner Nginx Rift
curl -fsSL https://raw.githubusercontent.com/enclave-ai/nginx-rift-scanner/main/scan.sh | sudo bash
Questo script verifica la versione di Nginx e scansiona i file di configurazione per il pattern vulnerabile rewrite + set. Si raccomanda l'uso di sudo per una scansione completa che includa tutte le direttive include. L'output indicherà se il sistema è vulnerabile o meno, anche tramite il codice di uscita (1 per vulnerabile, 0 per non vulnerabile), ideale per script e CI/CD.
La Soluzione Definitiva: Aggiornare Nginx
La vulnerabilità è stata corretta nelle seguenti versioni:
- Nginx open-source: 1.30.1
- Nginx Plus: R37
L'azione più urgente è aggiornare Nginx alla versione patchata. Ecco i comandi per i sistemi operativi più comuni:
# Debian / Ubuntu
apt-get update && apt-get install --only-upgrade nginx
# RHEL / CentOS / Amazon Linux
yum update nginx
# Alpine
apk upgrade nginx