Cinque vulnerabilità di NGINX corrette nelle versioni 1.30.6 e 1.31.7
Cinque vulnerabilità di NGINX che interessano particolari configurazioni di web server sono state corrette nella versione stable 1.30.6 e nella versione mainline 1.31.7. NGINX ha pubblicato entrambi gli aggiornamenti il 14 ottobre. Tre vulnerabilità possono danneggiare la memoria, causare il crash di un worker process e potenzialmente consentire remote code execution (RCE), vale a dire che un aggressore potrebbe eseguire software sul server. Un’altra potrebbe falsificare una sessione Transport Layer Security (TLS) e aggirare la client-certificate verification, mentre la quinta può inserire dati non previsti in una richiesta HTTP/3 inviata a un’applicazione backend.
NGINX classifica tutte e cinque le vulnerabilità come di gravità media. F5, la società dietro NGINX, ha assegnato alle tre vulnerabilità della memoria un punteggio Critical di 9,2 secondo il Common Vulnerability Scoring System versione 4.0. Ha assegnato un punteggio di 8,3 al problema TLS e di 6,9 al problema HTTP/3. Al 15 ottobre, nessuna delle vulnerabilità risultava inclusa nel catalogo Known Exploited Vulnerabilities della Cybersecurity and Infrastructure Security Agency statunitense, e né NGINX né F5 avevano segnalato attacchi che le coinvolgessero. Una vulnerabilità interessa release risalenti a maggio 2005, ma ciascuna richiede una configurazione specifica e non espone per impostazione predefinita tutte le installazioni di NGINX.
CVE-2026-15176 interessa le versioni dalla 0.1.29 alla 1.31.6. Può causare un heap overflow quando una location utilizza alias, un rewrite modifica l’URI della richiesta e una direttiva come return, set, if, add_header oppure l’access log legge $request_filename prima che NGINX selezioni la location successiva. Se il prefisso di tale location è più lungo dell’URI riscritto, la conversione dell’URI in un percorso di file può superare il relativo memory buffer. F5 consiglia di evitare alias in quella location e di non utilizzare $request_filename fino a quando non sarà possibile effettuare l’aggiornamento.
CVE-2026-93479 è un altro heap overflow, raggiungibile tramite una map con espressione regolare i cui valori acquisiti vengono utilizzati da root o log_format prima della variabile di output della map. Sono indicate come interessate le versioni dalla 1.30.0 alla 1.30.5 e dalla 1.31.2 alla 1.31.6. La gestione vulnerabile delle stringhe era stata modificata in precedenza per CVE-2026-42533, corretta da NGINX il 15 luglio. Secondo la correzione successiva, una modifica di luglio impediva un buffer overrun, ma consentiva ancora l’ingresso di dati nello spazio riservato, mentre un’altra calcolava la dimensione finale della stringa a partire da quella lunghezza in eccesso. L’overflow appena corretto era limitato all’area riservata nel percorso document-root e a un singolo null byte nel percorso dell’access log. Sebbene le versioni interessate indicate inizino prima della modifica di luglio, qualsiasi server aggiornato con la release di luglio resta compreso negli intervalli interessati. Il consiglio temporaneo di F5 è di utilizzare named captures soltanto all’interno del blocco contenente l’espressione corrispondente, anche se a luglio un ricercatore ha dichiarato a The Hacker News che l’aggiornamento era l’unica soluzione completa al problema precedente.
CVE-2026-97205 è una vulnerabilità use-after-free che interessa le versioni dalla 0.8.11 alla 1.31.6 quando sono abilitati input e output asincroni (AIO) e le pagine Server Side Includes (SSI) utilizzano comandi include virtual in determinate configurazioni. Ogni operazione asincrona non completata incrementa un contatore a 8 bit. Con 256 operazioni in sospeso, il contatore torna a zero, permettendo che una richiesta venga liberata mentre alcune operazioni fanno ancora riferimento alla sua memoria. Il risultato può essere un crash, il danneggiamento della memoria o la possibile esecuzione di codice. Gli amministratori che non possono effettuare l’aggiornamento possono disabilitare AIO o interrompere la distribuzione di pagine SSI.
CVE-2026-95101 interessa le implementazioni HTTP/3 che eseguono versioni dalla 1.25.0 alla 1.31.6 con proxy_request_buffering abilitato, che è l’impostazione predefinita. Un campo del parser veniva utilizzato sia per tenere traccia della dimensione restante di un frame sconosciuto che veniva ignorato, sia per contare i byte del corpo della richiesta. Se tale frame arrivava attraverso due letture, NGINX poteva interpretare il conteggio restante come dati del corpo e inoltrare byte aggiuntivi al backend, senza applicare il controllo client_max_body_size. La soluzione temporanea di F5 consiste nell’impostare proxy_request_buffering su off. La documentazione di NGINX raccomanda normalmente il buffering delle richieste, perciò è importante che gli operatori HTTP/3 installino la release corretta anziché mantenere indefinitamente la soluzione temporanea.
CVE-2026-97629 interessa le versioni dalla 1.23.2 alla 1.31.6 quando ssl_session_cache utilizza una cache condivisa e non è configurato alcun file ssl_session_ticket_key. A partire dalla versione 1.23.2 dell’ottobre 2022, questa combinazione fa sì che NGINX crei e ruoti automaticamente le TLS session ticket keys. Ogni worker conserva tre key slot, ma la rotazione ne copiava soltanto due. Il terzo poteva quindi contenere memoria non inizializzata e un ticket riferito a tale slot poteva essere verificato e decifrato utilizzando quei contenuti non previsti. F5 afferma che la conseguente falsificazione della sessione non è deterministica e sfugge al controllo dell’aggressore, ma potrebbe aggirare la client-certificate verification. La configurazione con cache condivisa compare nella documentazione di NGINX. I siti che non possono effettuare l’aggiornamento possono rimuovere la cache condivisa, fornire TLS session ticket keys tramite ssl_session_ticket_key oppure impostare ssl_session_tickets su off. Nel febbraio 2025 NGINX ha corretto un precedente problema di riutilizzo delle sessioni, CVE-2025-23419, che presentava la stessa potenziale possibilità di aggirare il controllo del certificato.
Gli amministratori dovrebbero installare la versione 1.30.6 sul branch stable o la versione 1.31.7 su mainline. La release stable contiene soltanto correzioni. NGINX pubblica correzioni di sicurezza per questi due branch, pertanto i branch meno recenti, come 1.28, restano compresi negli intervalli interessati, a meno che una distribuzione Linux non abbia backported le patch nel proprio pacchetto. Gli utenti di NGINX Plus e gli operatori di F5 Ingress Controller, Gateway Fabric, Instance Manager o dei prodotti WAF dovrebbero consultare gli avvisi di prodotto di F5. Al 15 ottobre, tali avvisi riportavano le build interessate e, per diversi prodotti, nessuna build corretta.
Una verifica pratica inizia visualizzando la configurazione attiva con nginx -T e controllando la presenza di alias combinato con rewrite, map basate su espressioni regolari utilizzate da root o log_format, aio insieme a ssi, direttive listen che utilizzano quic e una cache ssl_session_cache condivisa priva di ssl_session_ticket_key. I clienti di servizi gestiti che non possono effettuare autonomamente questa verifica dovrebbero chiedere al proprio hosting provider di confermare la release di NGINX installata e se le patch siano state backported. Per i proprietari di siti WordPress che valutano servizi gestiti, AEU Hosting offre hosting WordPress gestito e protetto end to end.
Questa è stata l’ottava security release di NGINX del 2026. L’urgenza è rafforzata da un altro overflow del modulo rewrite, CVE-2026-42945, che secondo VulnCheck veniva sfruttato entro pochi giorni dalla sua divulgazione, dopo che NGINX lo aveva corretto a maggio. F5 ha individuato la vulnerabilità relativa ad alias e ha attribuito le altre segnalazioni a ricercatori affiliati a Tolmo e GOTROOT, a PhiNode Labs e a un altro ricercatore. Lo stesso giorno, NGINX ha inoltre pubblicato njs 1.0.2 per correggere due vulnerabilità di gravità media nella gestione di XML, CVE-2026-101025 e CVE-2026-101019.