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 rewrite il cui valore di sostituzione contiene un ? (che imposta un flag interno is_args).
  • Una direttiva set che 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

Soluzioni Temporanee (se l'aggiornamento non è Immediato)