Vai al contenuto principale
CVE-2026-111497 · Brotli RCE

Patch di sicurezza Node.js (ottobre 2026)

Il 21 ottobre 2026 Node.js ha pubblicato una release di sicurezza con 10 CVE per le linee 26.x, 24.x e 22.x. La più grave, CVE-2026-111497, è una scrittura fuori dai limiti nel decompressore Brotli che consente l’esecuzione remota di codice. Le versioni corrette sono v26.12.1, v24.22.1 e v22.23.4; 20.x e 25.x sono a fine vita e non ricevono patch.

Hai questa vulnerabilità? Aggiorniamo Node.js su server, immagini Docker e pipeline, verifichiamo che l’applicazione risponda come prima e pianifichiamo il cambio di linea se sei ancora su 20.x o 25.x.

Cosa è successo

Dieci CVE in una release, quattro di gravità alta

La release corregge quattro vulnerabilità alte, tre medie e tre basse. Al 21 ottobre non era stato segnalato lo sfruttamento di nessuna.

CVE-2026-111497 è una scrittura fuori dai limiti nel decompressore Brotli che consente l’esecuzione remota di codice. Non serve chiamare zlib direttamente per essere esposti: secondo Cyberkendra, Express 5 e fetch() decomprimono Brotli in automatico.

Le altre tre di gravità alta riguardano la rete. CVE-2026-106069 e CVE-2026-105483 permettono di aggirare il controllo dell’hostname nei certificati TLS, cioè la verifica che la tua applicazione stia parlando con il server giusto quando fa una richiesta HTTPS. CVE-2026-105482 fa sì che dns.resolve tronchi i nomi che contengono un carattere NUL.

La stessa release rifiuta le catene di certificati che usano le chiavi compromesse di eMudhra, l’autorità di certificazione indiana i cui otto certificati intermedi erano stati generati con chiavi deboli. Le linee 20.x e 25.x, a fine vita, non ricevono nulla di tutto questo.

Fonti: nodejs.org: October 2026 Security Releases

Sei vulnerabile?

Versioni di Node.js corrette

Se un servizio gira con una versione precedente a quella della sua linea, è vulnerabile. Per 20.x e 25.x non c’è versione corretta: bisogna cambiare linea.

Linea Corretta in Nota
26.x v26.12.1
24.x v24.22.1
22.x v22.23.4
25.x Nessuna patch Fine vita: passare a 26.x
20.x Nessuna patch Fine vita: passare a 22.x o 24.x

Controlla questo

  • Hai API, backend o rendering lato server (Next.js, Nuxt, Astro, NestJS, Express) su Node.js.
  • node -v sul server, o dentro l’immagine Docker, restituisce una versione precedente a quella della tua linea.
  • Il tuo Dockerfile usa un tag come node:22 e l’immagine non è stata ricostruita: ha ancora la versione del momento della build.
  • Qualche servizio è ancora su 20.x o 25.x: per quelle linee non ci sarà patch.
  • La tua applicazione decomprime Brotli (con fetch(), Express 5 o un proxy proprio) o fa richieste HTTPS a terze parti.
Nel frattempo

Se sei ancora su 20.x o 25.x

Node.js non ha pubblicato mitigazioni temporanee per questa release. Su una linea non supportata, l’unica correzione è uscirne.

  1. 01 Le linee a fine vita non ricevono questa correzione né le prossime.
  2. 02 Passare da 20.x a 22.x o 24.x di solito obbliga a rivedere le dipendenze con moduli nativi e a testare l’intera build.
  3. 03 Durante la migrazione conviene sapere quali endpoint accettano corpi compressi e quali servizi scaricano contenuti esterni: sono i primi da spostare.
Come lavoriamo

Sette passi, in questo ordine

Applichiamo la stessa procedura su ogni server: prima capire quale versione gira dove, poi correggere e infine verificare che nessuno sia entrato prima della patch.

Inventario
versione per server
Mitigazione
temporanea
Aggiornamento
v26.12.1 · v24.22.1 · v22.23.4
Verifica
in produzione
Indicatori
log · file
Segreti
se serve
Monitoraggio
nuovi avvisi
01

Inventario delle versioni

Individuiamo dove gira Node.js: server, immagini Docker, funzioni serverless, runner di CI e il .nvmrc o il campo engines di ogni repository. Ogni punto può avere una versione diversa.

02

Mitigazione immediata

Senza mitigazione ufficiale, partiamo dai servizi più esposti: quelli che accettano corpi Brotli o scaricano contenuti di terzi vanno per primi.

03

Aggiornamento

Passiamo a v26.12.1, v24.22.1 o v22.23.4, ricostruiamo le immagini e fissiamo la versione in Dockerfile, .nvmrc e CI. Se sei su 20.x o 25.x, pianifichiamo il cambio di linea.

04

Verifica

Controlliamo la versione dentro il container in produzione, eseguiamo i test e verifichiamo che le chiamate HTTPS verso terzi continuino a validare i certificati.

05

Analisi degli indicatori di compromissione

Esaminiamo i log dell’applicazione e del sistema cercando crash del processo, riavvii senza spiegazione e processi o file che non dovrebbero esserci.

06

Rotazione dei segreti, se serve

Se ci sono segnali di accesso, ruotiamo le variabili d’ambiente sensibili: chiavi API, credenziali del database e token.

07

Monitoraggio dei nuovi avvisi

Annotiamo la versione di ogni servizio e la data di fine vita della sua linea, così la prossima release di sicurezza parte da quell’inventario.

Prima e dopo

Dove Node.js resta senza aggiornamento

Aggiornare a occhio Con la procedura
Node viene aggiornato sul server, ma l’immagine Docker è stata creata due mesi fa
Immagini ricostruite e versione verificata dentro il container
La CI testa con una versione e la produzione ne usa un’altra
La stessa versione fissata in Dockerfile, .nvmrc e pipeline
Un microservizio su 20.x resta fuori perché nessuno se ne ricordava
Un piano di migrazione per ogni servizio su una linea non supportata
I segreti del .env restano uguali anche se il processo è crashato senza motivo apparente
Segreti ruotati quando ci sono indicatori

Hai servizi su Node 20 e non sai quanto costa spostarli?

Consulenza gratuita →
FAQ

Domande frequenti sulla release di sicurezza di Node.js

Quali versioni di Node.js correggono CVE-2026-111497?
v26.12.1, v24.22.1 e v22.23.4, pubblicate il 21 ottobre 2026. Le linee 20.x e 25.x sono a fine vita e non hanno una versione corretta.
Uso Node 20, sono vulnerabile?
Node.js non pubblica patch per 20.x, quindi nessuna versione di quella linea corregge queste falle. La strada è passare a 22.x o 24.x, rivedendo prima le dipendenze con moduli nativi e testando l’intera build.
Mi riguarda se non uso Brotli?
Forse lo usi senza saperlo: secondo Cyberkendra, fetch() ed Express 5 decomprimono Brotli in automatico. Inoltre la release corregge altre falle, come i due bypass del controllo dell’hostname TLS, che riguardano qualsiasi applicazione che fa richieste HTTPS.
Basta cambiare l’immagine base di Docker?
Bisogna ricostruire l’immagine e rifare il deploy. Un container in esecuzione resta con la versione con cui è stato creato, anche se il tag node:22 punta già a una versione nuova.
Iniziamo

Raccontaci dove gira il tuo Node.js

Partiamo dall’inventario: quale versione usa ogni servizio, quale va aggiornato per primo e quale linea richiede una migrazione.

Patch di sicurezza Node.js (ottobre 2026)

Raccontaci la tua sfida. Ti proponiamo la soluzione.

Senza impegno. In meno di 24 ore riceverai una proposta con ambito, tempistiche e budget. Nessuna clausola nascosta.

Prenota una call gratuita →