Si chiama Node2Shell ed è una delle vulnerabilità più trasversali scoperte negli ultimi mesi: non colpisce un singolo prodotto, ma una libreria di compressione dati, Brotli di Google, che si trova incorporata in decine di runtime, framework e tool usati ogni giorno da sviluppatori e aziende di tutto il mondo. Dalla settimana del 21 ottobre 2026, Node.js, Microsoft (.NET, Visual Studio, PowerShell) e i principali pacchetti Python hanno rilasciato patch urgenti per correggerla.
Cos'è Node2Shell e perché è pericolosa
La falla, catalogata come CVE-2026-111497, è una scrittura fuori dai limiti di memoria ("out-of-bounds write") nel decoder Brotli, la libreria open source di Google usata per comprimere e decomprimere dati su web e applicazioni. Sono vulnerabili le versioni di Brotli comprese tra la 1.0.3 e la 1.2.0; la correzione arriva con le versioni 1.0.10, 1.1.1 e 1.2.1.
Google valuta la vulnerabilità con un punteggio CVSS v4 di 9.2, nella fascia critica. Microsoft, che la classifica come elevazione di privilegio, le assegna un CVSS v3.1 di 8.1 e la segnala come "exploitation more likely", cioè probabile che venga sfruttata attivamente in futuro. Secondo Node.js, un input creato ad arte potrebbe permettere a un attaccante non autenticato di eseguire codice da remoto sul server.
Quali prodotti sono interessati
L'elenco delle patch già pubblicate è lungo, segno di quanto sia diffuso l'uso di Brotli nell'ecosistema software:
- Node.js: corretto nelle versioni 22.23.4, 24.22.1 e 26.12.1. Le linee ormai a fine vita (18.x, 20.x, 23.x, 25.x) non riceveranno l'aggiornamento.
- Microsoft: patch per .NET runtime 8.0.33, 9.0.22 e 10.0.14 (oltre alla release candidate di .NET 11), per Visual Studio 2019, 2022 e 2026 e per PowerShell 7.4, 7.5 e 7.6, rilasciate il 25 ottobre.
- Python: aggiornati su PyPI i pacchetti Brotli 1.2.1 e brotlicffi 1.2.1.0.
- Risultano aggiornati anche Bun, Envoy e Istio.
- Secondo un tracker pubblico, probabilmente incompleto, non risultano ancora corretti DuckDB, Apache Arrow, 7-Zip-zstd, p7zip ed EDK II: chi li utilizza dovrebbe verificare con i rispettivi produttori.
Un'applicazione è a rischio ogni volta che passa al decoder Brotli dati che un utente esterno può influenzare: corpi di richieste HTTP compresse, risposte scaricate da server non attendibili, file compressi caricati dagli utenti.
Chi ha scoperto la falla e cosa si sa sugli exploit
Il bug è stato individuato dal team di sicurezza di OpenAI Codex durante attività di red-teaming automatizzato. Secondo OpenAI, la causa tecnica era già stata corretta nel codice sorgente di Brotli a febbraio, ma all'epoca non si era compreso che quella modifica chiudesse anche una falla di sicurezza: una dimostrazione di come bug "silenziosi" possano restare nascosti per mesi nelle librerie condivise da mezzo ecosistema software.
I ricercatori di Imperva hanno dimostrato in laboratorio un'esecuzione di codice sull'immagine ufficiale Node.js 24.22.0 per Linux arm64, sfruttando una risposta del server o un corpo di richiesta elaborato tramite Express 5 o body-parser 2; il successo dell'attacco, però, non è garantito a ogni tentativo. Un proof of concept circolato su GitHub funziona solo su una build volutamente privata delle protezioni standard, e alcuni ricercatori ritengono che, nelle condizioni reali più comuni, il bug sia sfruttabile soprattutto per mandare in crash un servizio (denial of service) piuttosto che per eseguire codice arbitrario. Al momento non sono stati segnalati attacchi in corso nel mondo reale.
Come proteggersi
Le indicazioni per chi gestisce infrastrutture software sono quelle tipiche di una vulnerabilità di libreria condivisa, ma vanno applicate con attenzione perché il numero di punti di esposizione è alto:
- Aggiornare Brotli alle versioni 1.0.10, 1.1.1 o 1.2.1, oppure installare le patch specifiche già disponibili per Node.js, .NET, Visual Studio, PowerShell e i pacchetti Python.
- Riavviare i servizi interessati dopo l'aggiornamento: i processi già in esecuzione continuano a usare in memoria il codice vulnerabile finché non vengono rilanciati.
- Ricostruire le immagini container partendo da una base già aggiornata, non limitarsi a patchare l'host.
- Per il software non ancora corretto, verificare con il fornitore se include una copia vulnerabile del decoder Brotli.
- In attesa delle patch, limitare o filtrare i dati compressi provenienti da fonti non attendibili.
Il commento di PINET
Node2Shell è un caso da manuale di rischio nella catena di fornitura del software: la maggior parte delle aziende italiane che usano Node.js, .NET o pacchetti Python per le proprie applicazioni non ha probabilmente idea di dipendere, a più livelli di profondità, da una singola libreria di compressione. È proprio questa invisibilità, più che la gravità tecnica del singolo bug, il problema che le PMI e le pubbliche amministrazioni italiane faticano a gestire: l'inventario delle dipendenze software (la cosiddetta software bill of materials) resta un esercizio per pochi, mentre qui avrebbe permesso di capire in poche ore se e dove si era esposti. Il fatto che il bug sia stato trovato da un sistema di intelligenza artificiale dedicato alla sicurezza, e non da un ricercatore umano, è un segnale che vale la pena osservare nei prossimi mesi, perché cambia i tempi con cui queste falle vengono scoperte rispetto a quelli con cui vengono poi corrette su scala. Per ora non risultano exploit attivi, il che lascia il tempo per aggiornare con ordine: la vera urgenza, più che il singolo patch, è dotarsi di processi che permettano di sapere rapidamente quali applicazioni usano Brotli.