Red Hot Cyber
Sicurezza Informatica, Notizie su Cybercrime, Analisi Vulnerabilità e Intelligenza Artificiale
una immagine di node-js spaccato per terra

Node.js, scoperta una falla che può aprire le porte agli hacker: è Node2Shell

27 Ottobre 2026 06:25
In sintesi

Node2Shell (CVE-2026-111497) è una vulnerabilità nel decoder Brotli che può consentire l'esecuzione di codice da remoto durante la decompressione di dati appositamente manipolati. Il problema interessa Node.js e altri software, tra cui Bun, Python, Envoy e Istio. Sono disponibili aggiornamenti di sicurezza: gli utenti devono verificare i prodotti coinvolti e applicare le patch.

Gli sviluppatori di Node.js hanno rilasciato aggiornamenti per tutte le versioni supportate (22.x, 24.x e 26.x), in cui hanno risolto dieci vulnerabilità. La più grave di queste riguarda il decoder Brotli integrato e, secondo le stime degli esperti, potrebbe portare all’esecuzione remota di codice. Questa vulnerabilità in Brotli ha già ricevuto i nomi Node2Shell, HTTPS2Shell e Brocolli2Shell ed è pericolosa non solo per Node.js, ma anche per Bun, per i pacchetti Python, Envoy, Istio e altri software.

Le correzioni sono state incluse nelle versioni Node.js 22.23.4, 24.22.1 e 26.12.1. Poiché il supporto per le versioni 20.x e precedenti è già stato interrotto, non riceveranno patch e agli utenti viene consigliato di passare alle versioni aggiornate di Node.js. La vulnerabilità più pericolosa ha ricevuto l’identificatore CVE-2026-111497 ed è legata alla scrittura out-of-bounds. Il problema si verifica quando Brotli elabora dati compressi appositamente preparati.

L’algoritmo di compressione dei dati Brotli, sviluppato dagli esperti di Google, è integrato direttamente in Node.js, quindi la vulnerabilità può manifestarsi durante la decompressione di dati appositamente preparati. Questo riguarda sia l’uso di Brotli tramite il modulo node:zlib, sia tramite fetch(): Node.js decomprime automaticamente le risposte dei server compressi con questo algoritmo. Pertanto, per un attacco, un malintenzionato deve far sì che l’applicazione elabora dati Brotli dannosi (ad esempio, inviati nella richiesta o ricevuti nella risposta da un server esterno).

Advertising

Per eliminare la vulnerabilità, gli sviluppatori di Node.js hanno utilizzato una patch del progetto Brotli e questa correzione fa sì che il decoder interrompa l’elaborazione dei dati non corretti prima di uscire dai limiti del buffer. Una patch simile è stata inclusa nelle versioni di Brotli 1.2.1, 1.1.1 e 1.0.10.

Poiché la vulnerabilità riguarda il decoder Brotli, utilizzato da molti altri progetti, il problema non è limitato solo a Node.js. CVE-2026-111497 colpisce anche il runtime Bun, i pacchetti Python Brotli e brotlicffi, il proxy Envoy e la piattaforma Istio.

Per questi sono già disponibili correzioni e alla vulnerabilità sono stati assegnati nomi come HTTPS2Shell, Brocolli2Shell e persino Brotlipocalypse.

Le condizioni di sfruttamento dipendono dal prodotto specifico. Ad esempio, Envoy e Istio sono vulnerabili solo se il decompressore Brotli è attivato. D’altra parte, in Python, se nell’ambiente è installato il pacchetto Brotli o brotlicffi, client HTTP popolari come Requests, urllib3, httpx e aiohttp possono decomprimere automaticamente le risposte Brotli. Pertanto, la vulnerabilità potrebbe colpire anche le applicazioni che non utilizzano direttamente Brotli.

Si noti che il PoC-exploit, inizialmente presentato per CVE-2026-111497 in Node.js, consentiva l’esecuzione del codice solo in una build di test appositamente indebolita. Tuttavia, presto gli esperti di Imperva hanno pubblicato un proprio exploit, chiamato Node2Shell. Questo PoC dimostra l’esecuzione remota di codice arbitrario in Node.js 24.22.0 per Linux arm64 e non richiede l’uso di un debugger o modifiche alla build. Sebbene si osservi che per l’esecuzione del codice potrebbero essere necessari diversi tentativi.

Advertising

Tra gli altri errori corretti in Node.js, si possono citare CVE-2026-106069 e CVE-2026-105483, che permettevano di aggirare il controllo del nome host nel certificato TLS utilizzando indirizzi IP in formato non standard, nonché il bug CVE-2026-105482, che costringeva dns.resolve a troncare il nome host se al suo interno era presente un byte nullo.


📢 Resta aggiornatoTi è piaciuto questo articolo? Rimani sempre informato seguendoci su 🔔 Google News.
Ne stiamo anche discutendo sui nostri social: 💼 LinkedIn, 📘 Facebook e 📸 Instagram.
Hai una notizia o un approfondimento da segnalarci? ✉️ Scrivici


Luigi Zullo 300x300
Ricercatore di sicurezza informatica con esperienza nell’analisi delle vulnerabilità, nella mitigazione del rischio cyber, nelle attività di red teaming ed ethical hacking e nella protezione di sistemi complessi. Specializzato in penetration testing e Threat Intelligence, contribuisce al rafforzamento della resilienza digitale di infrastrutture e reti aziendali.
Aree di competenza: Penetration Testing, Threat Intelligence, Red Teaming, Vulnerability Assessment, Incident Response