Node.js ha rilasciato aggiornamenti di sicurezza per affrontare CVE-2026-111497, una vulnerabilità ad alta gravità nel suo codice di decompressione Brotli incorporato, che può potenzialmente consentire l’esecuzione di codice remoto. Il difetto è una scrittura fuori dai limiti attivata quando un decodificatore vulnerabile elabora dati Brotli appositamente creati.
Il problema riguarda tutti i rami Node.js attualmente supportati—22.x, 24.x e 26.x. Node.js ha risolto la vulnerabilità nelle versioni 22.23.4, 24.22.1 e 26.12.1 come parte del rilascio di sicurezza del 21 ottobre 2026, che ha corretto dieci vulnerabilità in totale.
Il rischio è particolarmente rilevante perché la compressione Brotli è comunemente usata per il traffico HTTP. Le applicazioni Node.js possono invocare il decodificatore vulnerabile direttamente attraverso node:zlib o automaticamente quando fetch() riceve una risposta che utilizza Content-Encoding: br. Un’applicazione può quindi essere esposta ogni volta che contenuto Brotli controllato da un attaccante raggiunge il decodificatore attraverso una richiesta in entrata, una risposta remota, un flusso di lavoro proxy o un altro percorso di elaborazione dati.
Per la rilevazione di CVE-2026-111497, i team di sicurezza dovrebbero dare priorità alle applicazioni Node.js che elaborano contenuti compressi non affidabili e monitorarle per crash, comportamento anomalo della memoria, processi figli insoliti e attività sospette immediatamente dopo la decompressione Brotli.
La piattaforma di rilevamento basata sull’intelligenza artificiale di SOC Prime consente ai team di sicurezza di rafforzare la visibilità sull’esploit emergente delle vulnerabilità e sul comportamento post-compromissione associato, con contenuti di rilevamento distribuibili su tecnologie SIEM, EDR e Data Lake.
Fare clic su Esplora rilevamenti per accedere ai contenuti di rilevamento pertinenti e alla logica di caccia. Per rilevare CVE-2026-111497, i difensori dovrebbero correlare la telemetria delle applicazioni Node.js con l’attività dell’endpoint, proxy, web e di rete per identificare comportamenti sospetti relativi al traffico HTTP compresso.
I team di sicurezza possono anche sfruttare Prime Architect per trasformare le informazioni più recenti sulle vulnerabilità in regole Sigma e query di caccia, convalidare la logica di rilevamento e tradurre i contenuti di rilevamento pertinenti su piattaforme di sicurezza supportate.
Analisi di CVE-2026-111497
La vulnerabilità risiede nel decodificatore Brotli incluso con Node.js. Brotli è un algoritmo di compressione ampiamente utilizzato per ridurre le dimensioni dei contenuti web, e Node.js include una propria copia della libreria.
Uno stream compresso malformato può attivare una scrittura fuori dai limiti, causando al decodificatore di scrivere al di fuori del buffer di memoria allocato per i dati decompresso. La correzione a monte cambia il decodificatore in modo che l’input non valido venga rifiutato prima invece di consentire che l’esecuzione continui nella condizione di scrittura di memoria non sicura.
CVE-2026-111497 influisce su Node.js 22.x, 24.x e 26.x prima dei rilasci di sicurezza del 21 ottobre. Le versioni patchate sono:
- Node.js 22.23.4
- Node.js 24.22.1
- Node.js 26.12.1
Le versioni di Node.js 20.x e precedenti hanno raggiunto la fine della vita e non ricevono l’aggiornamento di sicurezza, quindi le organizzazioni che usano queste versioni dovrebbero migrare a un ramo supportato.
Il problema sottostante non è limitato a Node.js. Il codice vulnerabile proviene dal progetto Brotli stesso, e le correzioni corrispondenti sono state rilasciate in Brotli 1.0.10, 1.1.1 e 1.2.1. Altre applicazioni che incorporano versioni vulnerabili di Brotli potrebbero quindi richiedere aggiornamenti separati anche se non utilizzano Node.js.
La superficie d’attacco dipende da come i dati compressi raggiungono l’applicazione. L’uso diretto delle API di decompressione Brotli è un percorso ovvio. Tuttavia, Node.js può anche elaborare automaticamente le risposte HTTP compresse con Brotli quando le applicazioni usano fetch().
Questo rende particolarmente rilevanti le applicazioni che recuperano contenuti controllati da un attaccante. Esempi includono servizi di anteprima degli URL, crawler, processor di webhook, piattaforme proxy, scanner di contenuti, servizi di conversione e applicazioni che consentono agli utenti di inviare URL remoti.
Il traffico in entrata può creare un altro percorso in cui un’applicazione web o un middleware accetta corpi di richieste compressi Brotli. I team di sicurezza dovrebbero quindi esaminare i flussi di dati effettivi dell’applicazione anziché limitare la valutazione dell’esposizione alle chiamate Brotli esplicite nel codice sorgente.
I dettagli per CVE-2026-111497 mostrano perché il problema può avere conseguenze oltre un semplice crash del servizio. La corruzione della memoria può potenzialmente influire sullo stato del processo vicino e, a seconda delle protezioni della piattaforma e delle condizioni di runtime, portare a divulgazione della memoria o esecuzione arbitraria del codice.
Node.js descrive esplicitamente la vulnerabilità come capace di esecuzione di codice remoto, ma la sua exploitabilità pratica merita sfumature. Il difetto è valutato High dal Progetto Node.js piuttosto che Critical.
Un PoC pubblico per CVE-2026-111497 rilasciato dopo la divulgazione ha ottenuto l’esecuzione di codice contro una build di test deliberatamente indebolita. Contro una build standard di Node.js, il ricercatore ha segnalato un crash e una divulgazione limitata della memoria del processo ma non ha ottenuto una esecuzione affidabile del codice. Ciò significa che il primitivo di corruzione della memoria è dimostrato, mentre un RCE riuscito contro build di produzione normali dipende da condizioni di exploit aggiuntive.
Le versioni patchate di Node.js rifiutano il contenuto malformato usato nella dimostrazione. Al 22 ottobre, non è stato segnalato alcun sfruttamento in natura.
Di conseguenza, non sono stati pubblicati IOC specifici per la campagna CVE-2026-111497 come indirizzi IP malevoli, domini, hash dei payload o firme di richiesta di exploit confermate nella ricerca citata.
Le squadre di sicurezza dovrebbero invece concentrarsi su indicatori comportamentali come:
- Crash imprevisti dei servizi Node.js che gestiscono il traffico compresso
- Fault di segmentazione o fallimenti dei decodificatori nativi
- Avvisi anormali di protezione della memoria o prevenzione degli exploit
- Node.js che genera shell o interpreti di comandi
- Connessioni in uscita insolite immediatamente dopo l’elaborazione Brotli
- Richieste compresse sospette da fonti sconosciute
- Attività di fetch() lato server che raggiungono infrastrutture non attendibili
- Modifiche inaspettate di file o processi originate da un account di servizio Node.js
Il rilascio di Node.js del 21 ottobre ha anche corretto ulteriori problemi ad alta gravità riguardanti la validazione del nome host TLS e l’elaborazione DNS. CybersecurityNews osserva che le organizzazioni dovrebbero trattare il rilascio come un aggiornamento di sicurezza del runtime più ampio piuttosto che concentrarsi esclusivamente sul difetto Brotli.
Lo stesso rilascio ha anche aggiornato le informazioni di fiducia dei certificati a seguito della compromissione dell’autorità di certificazione eMudhra, aumentando ulteriormente il valore dell’aggiornamento piuttosto che tentare di reintrodurre solo una correzione.
Mitigazione CVE-2026-111497
La mitigazione principale di CVE-2026-111497 è aggiornare tutte le installazioni supportate di Node.js a una versione patchata:
- 22.x → 22.23.4 o successive
- 24.x → 24.22.1 o successive
- 26.x → 26.12.1 o successive
Il Progetto Node.js non fornisce nessuna soluzione temporanea equivalente a livello di runtime per la vulnerabilità Brotli, rendendo l’aggiornamento il percorso di rimedio affidabile.
Dopo aver aggiornato il runtime, gli amministratori dovrebbero riavviare tutti i servizi Node.js interessati. I processi di lunga durata continuano a usare il vecchio runtime fino al riavvio.
I carichi di lavoro containerizzati richiedono un’attenzione aggiuntiva. CybersecurityNews specificamente raccomanda la ricostruzione delle immagini dei container in modo che le applicazioni distribuite contengano il runtime Node.js patchato. L’aggiornamento di Node.js sul host sottostante non sostituisce un runtime vulnerabile già incorporato all’interno di un’immagine del container.
Anche le organizzazioni che utilizzano Brotli in modo indipendente dovrebbero aggiornare le versioni vulnerabili della libreria. Gli inventari software e gli SBOM possono aiutare a identificare copie incorporate in applicazioni native, dispositivi, strumenti di sviluppo e pacchetti di terze parti.
Dove l’aggiornamento immediato non è possibile, le organizzazioni possono ridurre temporaneamente la superficie d’attacco:
- Rifiutando i corpi di richieste compressi Brotli dove la compressione non è necessaria
- Limitando le richieste HTTP lato server a destinazioni fidate
- Impedendo agli utenti di fornire URL remoti arbitrari
- Limitando la connettività in uscita da carichi di lavoro vulnerabili
- Disabilitando l’elaborazione opzionale di Brotli dove operativamente fattibile
- Monitorando da vicino crash delle applicazioni e errori legati alla memoria
- Ispezionando processi figli insoliti avviati da Node.js
Vercel ha introdotto protezioni firewall per bloccare i dati Brotli malevoli che arrivano attraverso richieste in entrata. Tuttavia, The Hacker News osserva che tali regole non proteggono le applicazioni che recuperano indipendentemente risposte Brotli malevoli da server esterni, illustrando perché il filtraggio WAF non può sostituire l’aggiornamento del runtime.
Gli amministratori dovrebbero anche confermare il runtime effettivamente utilizzato dai carichi di lavoro di produzione dopo la patch. L’output del gestore pacchetti da solo è insufficiente quando rimangono vecchi binari di Node.js all’interno di container, bundle serverless, applicazioni pacchettizzate o directory di runtime installate manualmente.
Se si sospettano sfruttamenti, i rispondenti dovrebbero isolare il carico di lavoro interessato e conservare la telemetria delle applicazioni, degli endpoint, proxy e delle reti. I dump dei crash possono essere particolarmente preziosi perché la vulnerabilità influisce direttamente sulla memoria del processo.
I team di sicurezza dovrebbero indagare su:
- Processi figli imprevisti di Node.js
- File recentemente creati o meccanismi di persistenza
- Connessioni in uscita insolite
- Modifiche alla configurazione dell’applicazione o del dispiegamento
- Credenziali e segreti disponibili in variabili d’ambiente
- Chiavi API, token e credenziali cloud accessibili al processo Node.js
- Archivio dati backend raggiungibili utilizzando l’identità di servizio dell’applicazione
Poiché è stata dimostrata la divulgazione limitata della memoria del processo, i segreti residenti nella memoria dell’applicazione vulnerabile dovrebbero essere considerati potenzialmente esposti quando viene identificata un’attività di sfruttamento sospetta, anche se l’esecuzione di codice arbitrario non può essere dimostrata in modo conclusivo.
Le organizzazioni dovrebbero anche rivedere i privilegi assegnati ai servizi interessati. Lo sfruttamento riuscito di un container con privilegi minimali ha conseguenze diverse dallo sfruttamento di un processo Node.js con credenziali cloud, accesso amministrativo al database, token CI/CD o permessi di deploy.
I clienti SOC Prime possono sfruttare contenuti di rilevamento basati sul comportamento per identificare lo sfruttamento delle vulnerabilità e l’attività correlata dell’attaccante mentre i sistemi vulnerabili vengono scoperti e rimediati.
Disconoscimento: Il contenuto di rilevamento potrebbe non essere disponibile per ogni CVE. Controlla la piattaforma SOC Prime per la copertura attuale. Se i rilevamenti pertinenti non sono ancora disponibili, controlla di nuovo poiché nuove informazioni sulle minacce e contenuti di rilevamento vengono continuamente aggiunti.
FAQ
Cos’è CVE-2026-111497 e come funziona?
CVE-2026-111497 è una vulnerabilità di scrittura fuori dai limiti nel decodificatore Brotli incluso in Node.js. Uno stream Brotli maliziosamente costruito può causare al decodificatore di scrivere oltre il suo buffer di memoria previsto. A seconda dell’ambiente e delle condizioni di sfruttamento, ciò può portare a un crash del processo, divulgazione della memoria del processo o potenzialmente all’esecuzione di codice controllato da un attaccante. Il decodificatore vulnerabile può essere raggiunto attraverso API di decompressione dirette o automaticamente quando Node.js elabora risposte HTTP compresse con Brotli.
Quando è stato scoperto per la prima volta CVE-2026-111497?
Il Progetto Node.js ha divulgato pubblicamente e patchato la vulnerabilità il 21 ottobre 2026. I ricercatori di sicurezza di OpenAI Codex Khai Tran e Sylvie Mayer sono accreditati per aver segnalato il problema a Node.js. The Hacker News segnala che la correzione corrispondente del codice sorgente Brotli è stata effettuata per la prima volta a monte a febbraio 2026 ma è stata distribuita come una correzione di sicurezza a ottobre.
Qual è l’impatto di CVE-2026-111497 sui sistemi?
Lo sfruttamento riuscito può corrompere la memoria all’interno di un processo Node.js vulnerabile. Le possibili conseguenze includono il diniego di servizio attraverso i crash dell’applicazione, l’esposizione della memoria del processo e potenzialmente l’esecuzione di codice remoto. L’effettivo impatto dipende dal fatto che contenuto Brotli controllato dall’attaccante raggiunga il decodificatore e se il primitivo di corruzione della memoria può bypassare le protezioni nel runtime di destinazione e nel sistema operativo. Se viene raggiunta l’esecuzione del codice, l’attaccante erediterebbe generalmente i permessi e l’accesso disponibili al processo Node.js compromesso, potenzialmente esponendo dati dell’applicazione, credenziali, risorse cloud o sistemi backend connessi.
CVE-2026-111497 può ancora influenzarmi nel 2026?
Sì. Le installazioni di Node.js 22.x, 24.x e 26.x rimangono vulnerabili se non sono state aggiornate alle versioni patchate del 21 ottobre. Le organizzazioni che eseguono Node.js 20.x o precedenti dovrebbero migrare a una versione supportata perché i rami a fine vita non ricevono questa correzione. Le applicazioni che incorporano indipendentemente librerie Brotli vulnerabili possono anche rimanere esposte, anche se Node.js stesso è stato aggiornato.
Come posso proteggermi da CVE-2026-111497?
Aggiornare Node.js a 22.23.4, 24.22.1, 26.12.1 o una versione supportata più recente e riavviare i carichi di lavoro interessati. Ricostruire le immagini dei container, aggiornare le librerie Brotli incluse indipendentemente e verificare che i servizi di produzione stiano effettivamente eseguendo i binari patchati. Fino a quando la patching non è completa, ridurre l’esposizione agli input Brotli non attendibili e limitare le richieste lato server alle destinazioni approvate. Monitorare i servizi vulnerabili per crash, processi figli insoliti, attività di rete inaspettate e altri segni di sfruttamento della memoria. Se viene scoperta un’attività sospetta, isolare il carico di lavoro, preservare le prove forensi e ruotare le credenziali sensibili disponibili al processo Node.js interessato.