Al contenuto principale
HostOn
Sicurezza

HTTP2Shell (CVE-2026-111497): la falla critica nel decoder Brotli e come proteggersi

HTTP2Shell, la falla critica di Brotli: cosa colpisce (Node.js, Python, Bun, Envoy, .NET), quali versioni contengono la correzione e come proteggersi.

Team HostOn7 min di lettura
HTTP2Shell: falla critica nel decoder Brotli (CVE-2026-111497)

In breve: HTTP2Shell (CVE-2026-111497) è una falla critica nel decoder Brotli, usato da Node.js, Python, Bun, Envoy, .NET e molti altri programmi. Dati compressi preparati ad arte possono corrompere la memoria e, in certe condizioni, permettere l’esecuzione di codice da remoto. La correzione c’è: Node.js 22.23.4, 24.22.1 o 26.12.1 e Brotli 1.0.10, 1.1.1 o 1.2.1. Aggiornate e poi riavviate le applicazioni.

Che cos’è HTTP2Shell?

Il 21 ottobre 2026 il progetto Node.js ha pubblicato aggiornamenti di sicurezza per le versioni 22, 24 e 26. Uno dei problemi corretti, CVE-2026-111497, non si trova in Node.js stesso, ma in Brotli, l’algoritmo di compressione creato da Google e molto diffuso sul web come codifica br.

La falla ha diversi nomi: HTTP2Shell, Node2Shell e Broccoli2Shell. Indicano sempre lo stesso bug. Il nome «HTTP2Shell» è fuorviante: la falla non ha nulla a che fare con il protocollo HTTP/2. Qualsiasi programma che decomprime dati Brotli da fonti non affidabili può essere colpito.

La falla è stata scoperta da Khai Tran e Sylvie Mayer (OpenAI Codex Security). Il team di Imperva ha dimostrato che permette di eseguire codice su una versione vulnerabile di Node.js.

Come funziona la falla

I dati Brotli sono suddivisi in blocchi e il decoder passa da un blocco all’altro seguendo istruzioni contenute nel flusso compresso. Quando un’istruzione di questo tipo non è valida, il decoder vulnerabile non la tratta come un errore. La interpreta come una richiesta di altri dati e continua a scrivere byte in un buffer di soli 8 byte, oltre il suo limite.

Questo tipo di errore si chiama scrittura fuori dai limiti (out-of-bounds write). Conseguenze possibili, in ordine di gravità:

  • arresto del processo: l’applicazione si blocca e il sito o il servizio diventa irraggiungibile;
  • fughe di memoria: un aggressore può leggere dati dalla memoria del processo;
  • esecuzione di codice da remoto: un aggressore esegue comandi propri con i diritti dell’applicazione.

All’aggressore non servono account né password. Basta che l’applicazione decomprima i suoi dati.

Quanto è grave?

Le valutazioni variano a seconda della fonte. L’ente che ha assegnato il CVE la valuta 9,2 su 10 (critica) secondo CVSS 4.0. Node.js la considera di gravità alta e Red Hat importante. Ciò che è certo al 26 ottobre 2026:

  • esiste codice dimostrativo pubblico;
  • l’esecuzione di codice è stata dimostrata su Node.js non aggiornato, ma i risultati variano da sistema a sistema;
  • non sono ancora stati segnalati attacchi reali e la falla non è nel catalogo CISA delle vulnerabilità sfruttate attivamente.

Con codice pubblico disponibile, gli attacchi reali arrivano di solito in fretta. Trattate l’aggiornamento come urgente.

Chi è colpito?

La libreria Brotli

Sono vulnerabili le versioni dalla 1.0.3 alla 1.2.0. La correzione è nelle versioni 1.0.10, 1.1.1 e 1.2.1. Le distribuzioni Linux applicano spesso le correzioni senza cambiare il numero di versione: controllate quindi l’avviso di sicurezza della vostra distribuzione, non solo il numero.

Programmi e linguaggi colpiti

ProgrammaVersioni corrette
Node.js22.23.4, 24.22.1, 26.12.1 (18, 20, 23 e 25 non ricevono più correzioni)
Bun1.4.4
Python: Brotli, brotlicffiBrotli 1.2.1, brotlicffi 1.2.1.0
Envoy Proxy1.36.12, 1.37.8, 1.38.6, 1.39.3, 1.40.0
Istio1.29.9, 1.30.6, 1.31.2
Go: andybalholm/brotliv1.2.7
Ruby: brotli gem0.9.1
PHP: brotli extension0.21.1
.NETaggiornamenti Microsoft del 25 ottobre 2026

PHP ha inoltre ricostruito i pacchetti Windows ufficiali delle versioni dalla 8.2 alla 8.5, perché includono la libreria Brotli.

Programmi con una propria copia di Brotli

Molti programmi includono una propria copia del decoder. Questa non viene corretta quando aggiornate la libreria di sistema, ma solo con una nuova versione del programma. Tra quelli segnalati: ClickHouse, DuckDB, Apache Arrow (pyarrow), 7-Zip-zstd, p7zip, FFmpeg tramite libjxl (immagini JPEG XL) e gli strumenti per i font WOFF2. Per alcuni, il 25 ottobre non esisteva ancora una versione ufficiale corretta.

Come può arrivare un attacco

  • Richieste ricevute dal server: un aggressore invia una richiesta con Content-Encoding: br e l’applicazione decomprime automaticamente il contenuto, per esempio tramite middleware in Express o ASP.NET Core.
  • Risposte scaricate dall’applicazione: la vostra applicazione richiede una pagina o un’API a un altro server, che risponde con dati Brotli manipolati. fetch() in Node.js e i client Python requests, HTTPX, aiohttp e urllib3 decomprimono automaticamente le risposte Brotli quando il supporto è installato.
  • File caricati: immagini JPEG XL, file Parquet, archivi o font WOFF2 che contengono dati Brotli.

Il secondo scenario è il più facile da trascurare: anche se il vostro server non riceve mai dati Brotli, un’applicazione che scarica risorse esterne è esposta.

Verificate se siete colpiti

Versione di Node.js (sul server, in ogni container e in ogni applicazione sotto «Setup Node.js App», se usate cPanel):

node -v

Pacchetti Python (in ogni ambiente virtuale):

pip show brotli brotlicffi

Libreria di sistema:

# Debian / Ubuntu
dpkg -l | grep -i brotli
# AlmaLinux / Rocky / CloudLinux / RHEL
rpm -qa | grep -i brotli

Processi che hanno caricato la libreria di sistema e vanno riavviati dopo l’aggiornamento:

sudo grep -l brotlidec /proc/*/maps 2>/dev/null

Bun:

bun --version

Le immagini Docker contengono una propria versione di Node.js. Controllate ogni immagine, per esempio così (sostituite IMAGE con il nome della vostra immagine):

docker run --rm IMAGE node -v

Come proteggersi

1. Aggiornate

  • Node.js: passate alla 22.23.4, 24.22.1 o 26.12.1 o successive. Se usate Node.js 18 o 20, spostate l’applicazione sulla 22 o 24, perché quelle versioni non ricevono più correzioni.
  • Python: eseguite pip install -U brotli brotlicffi in ogni ambiente che contiene questi pacchetti.
  • Sistema operativo: installate gli aggiornamenti di sicurezza (apt upgrade o dnf upgrade) appena la vostra distribuzione pubblica il pacchetto corretto.
  • Bun, Envoy, Istio, .NET: le versioni della tabella qui sopra.
pip install -U brotli brotlicffi

2. Riavviate e ricostruite

Un processo avviato prima dell’aggiornamento continua a eseguire il codice vecchio. Riavviate le applicazioni Node.js (per esempio con pm2 reload all o da cPanel), i servizi Python e ogni processo trovato con il comando qui sopra. Ricostruite le immagini Docker su un’immagine di base corretta e verificate dopo l’avvio che giri la nuova versione.

3. Misure temporanee

Se non potete aggiornare subito, bloccate le richieste in arrivo compresse con Brotli. I browser non inviano richieste compresse con Brotli, quindi i visitatori abituali non se ne accorgono. Verificate però se integrazioni (API, app) inviano richieste di questo tipo.

In nginx, nel blocco server:

if ($http_content_encoding ~* "br") {
    return 415;
}

In Apache (.htaccess):

RewriteEngine On
RewriteCond %{HTTP:Content-Encoding} br [NC]
RewriteRule ^ - [R=415,L]

Il 25 ottobre Cloudflare ha pubblicato una regola WAF d’emergenza per questa falla, e Azure, Imperva e Vercel hanno regole simili. In Python potete disinstallare temporaneamente i pacchetti brotli e brotlicffi; senza di essi i client HTTP non decomprimono più dati Brotli.

Consiglio: Queste misure proteggono solo i dati che arrivano al server. Non proteggono le applicazioni che scaricano risorse da altri siti. Solo l’aggiornamento protegge del tutto.

4. Tenete d’occhio i segnali di un attacco

  • arresti imprevisti di applicazioni Node.js o Python (errori come segmentation fault);
  • richieste con Content-Encoding: br nei log del server web;
  • nuovi processi o connessioni insolite avviati dall’utente dell’applicazione.

Raccomandazioni per tipo di utilizzo

  • Sito WordPress o sito aziendale su hosting web: non dovete fare nulla. Le librerie di sistema le aggiorna il provider di hosting. Continuate ad aggiornare WordPress, il tema e i plugin.
  • Applicazioni Node.js in cPanel: in «Setup Node.js App» scegliete Node.js 22 o successivo e riavviate l’applicazione.
  • VPS o server proprio: gestite voi il sistema. Eseguite le verifiche qui sopra, aggiornate, riavviate e ricostruite i container.
  • Sviluppatori: aggiornate Node.js in locale e nella CI, ricostruite le immagini e controllate le dipendenze con una propria copia di Brotli.
  • Tutti gli altri: aggiornate browser e app. Chrome e Firefox includono già la correzione.

Cosa abbiamo fatto da HostOn

Sui nostri server di hosting web Node.js gira già nella versione corretta 22.23.4, anche in «Setup Node.js App» di cPanel (dal pacchetto Pilatus). Le versioni 18 e 20 non ricevono più correzioni: spostate quindi le vostre applicazioni sulla 22. Aggiorniamo i pacchetti di sistema non appena le distribuzioni pubblicano la correzione. Con un VPS gestite voi il sistema e dovete applicare i passi qui sopra. Serve aiuto? Aprite un ticket nell’area clienti o scriveteci dalla pagina Contatti.

Cronologia

  • 21 ottobre 2026: escono Brotli 1.0.10, 1.1.1 e 1.2.1 e Node.js 22.23.4, 24.22.1 e 26.12.1.
  • 22–23 ottobre: vengono corretti i pacchetti Python Brotli e brotlicffi; compare codice dimostrativo pubblico.
  • 24 ottobre: correzioni per la gem Ruby e l’estensione PHP brotli.
  • 25 ottobre: aggiornamenti Microsoft per .NET e regola WAF d’emergenza di Cloudflare.
  • 26 ottobre: PHP ha ricostruito i pacchetti Windows; nessun attacco reale segnalato.

Fonti: BleepingComputer, Wiz, JFrog Security Research, Phoenix Security, Ubuntu Security, The Hacker News.

SicurezzaHTTP2ShellCVE-2026-111497BrotliNode.js

Domande frequenti sul tema

HTTP2Shell (CVE-2026-111497), chiamata anche Node2Shell o Broccoli2Shell, è una scrittura fuori dai limiti nel decoder Brotli di Google. Dati compressi manipolati fanno scrivere il decoder oltre un buffer. Questo può bloccare il processo, esporre dati in memoria o, in certe condizioni, permettere l’esecuzione di codice da remoto.

No. Il nome è fuorviante: il bug è nel decoder Brotli, non nel protocollo HTTP/2. Qualsiasi applicazione che decomprime dati Brotli da fonti non affidabili può essere colpita, indipendentemente dal protocollo.

Node.js 22.23.4, 24.22.1 o 26.12.1 o successive sulla stessa linea. Le versioni 18, 20, 23 e 25 non ricevono più aggiornamenti e non avranno la correzione; spostatele su una linea supportata.

WordPress non usa direttamente il decoder Brotli. Le librerie di sistema che decomprimono Brotli vengono aggiornate tramite i pacchetti della distribuzione. Sull’hosting web HostOn ci occupiamo noi di questi aggiornamenti: per un normale sito WordPress non dovete fare nulla.

Al 26 ottobre 2026 non sono stati segnalati attacchi reali e la falla non è nel catalogo CISA delle vulnerabilità sfruttate attivamente. Esiste però codice dimostrativo pubblico e Imperva ha dimostrato l’esecuzione di codice su una versione vulnerabile di Node.js: aggiornate subito.

No. Bloccare le richieste con Content-Encoding: br protegge solo i dati che arrivano al server. Se la vostra applicazione scarica risorse da altri siti, un server malevolo può inviarle una risposta Brotli. Solo l’aggiornamento protegge del tutto.

Sì. Un processo avviato prima dell’aggiornamento continua a usare il codice vecchio in memoria. Riavviate le applicazioni Node.js e Python e i servizi che usano la libreria Brotli, e ricostruite le immagini Docker.

Condividi l'articolo

Domande? Ci scriva nella sua lingua.

Rispondiamo nella lingua in cui ci scrive – tedesco, francese, italiano, inglese e altre due lingue.

DEENFRITESRO

Di norma risposta nello stesso giorno lavorativo

Postazioni di lavoro con cuffie e laptop in un ufficio luminoso
  • Ticketconsigliato

    Per tutto ciò che riguarda il suo account: hosting, domini, fatture. Con cronologia e allegati.

    Apri un ticket
  • E-mail

    Per domande prima dell'ordine e per offerte.

    support@hoston.ch

    Scrivi un'e-mail
  • WhatsApp

    Per domande brevi. Non invii password né dati di clienti.

    Scrivi un messaggio

Prima verifichi: c'è un guasto in corso?

status.hoston.ch

Contatti · Servizio di migrazione · Strumenti