Vai al contenuto
LIVE
VULNERABILITÀ E MINACCE

CVE-2026-111497: falla nel decoder Brotli colpisce Node.js, Bun, Python ed Envoy

Una falla di memory corruption nel decoder Brotli di Google (CVE-2026-111497) interessa molti software. Imperva ha dimostrato l'esecuzione di codice su una build di Node.js. Non risultano attacchi in corso.

CY CyberNexus
25.10.2026 · 4 min di lettura
CVE-2026-111497: falla nel decoder Brotli colpisce Node.js, Bun, Python ed Envoy
Foto: The Hacker News
  • Falla CVE-2026-111497 nel decoder Brotli di Google: scrittura oltre il buffer, possibile RCE
  • Colpiti Node.js, Bun, pacchetti Python Brotli/brotlicffi, Envoy con Brotli attivo
  • CVSS 4.0 di 9.2 per Google; nessun attacco reale segnalato
  • Aggiornare, riavviare e ricostruire i container; senza patch, bloccare Brotli non fidato

Una vulnerabilità di memory corruption nel decoder Brotli di Google, tracciata come CVE-2026-111497, riguarda numerosi programmi che decomprimono dati in formato Brotli. Tra questi Node.js, Bun, i pacchetti Python Brotli e brotlicffi e i proxy Envoy configurati per la decompressione Brotli. Il difetto è stato divulgato il 21 ottobre, quando Node.js e Google hanno rilasciato le prime correzioni.

Il problema

Dati compressi costruiti ad hoc possono provocare una scrittura oltre la fine di un buffer. Le conseguenze possibili sono un crash, una fuga di memoria o l’esecuzione di codice controllato dall’attaccante. Il bug si trova nel codice C che decodifica il flusso Brotli. Ogni programma include una propria copia del decoder, quindi ognuno deve aggiornarla in modo indipendente.

Il team Red Team di Imperva (Node2Shell) ha eseguito codice su una build non modificata di Node.js 24.22.0 per Linux su ARM64. L’ha fatto sia tramite una risposta scaricata sia tramite il corpo di una richiesta Express. L’exploit ha richiesto più tentativi, non è stato pubblicato e non è stato provato su altre build. Per gli altri software la stessa esecuzione non è stata dimostrata.

Chi è esposto

Il rischio c’è solo se il programma decodifica dati Brotli controllati da terzi.

  • Node.js e Bun: quando fetch() legge una risposta con Content-Encoding: br, o quando codice come Express 5 e body-parser 2 decomprime un upload Brotli. Un semplice server HTTP Node.js non decodifica da solo i corpi delle richieste.
  • Envoy e Istio: solo con la decompressione Brotli attiva, per esempio tramite un filtro Envoy.
  • Python: basta che Brotli o brotlicffi siano installati. Client come requests, urllib3, httpx e aiohttp decodificano Brotli in automatico, anche se l’applicazione non importa mai il pacchetto.

Un web application firewall aiuta solo in parte. Vercel ha aggiunto regole il giorno della divulgazione, ma ha precisato che non coprono le risposte che le funzioni scaricano da altri server. In quel caso serve aggiornare runtime o libreria.

OpenAI, il cui team Codex Security ha segnalato il bug, lo descrive come esecuzione di codice remota non autenticata, in entrambe le direzioni. Un server non aggiornato può essere compromesso da un client malevolo. Un client non aggiornato, come curl --compressed, può essere compromesso da un server malevolo.

Gravità e stato degli attacchi

Non risultano sfruttamenti reali. La valutazione CISA del 23 ottobre indica sfruttamento «none» e automazione «no». Red Hat segnala l’assenza di un proof-of-concept pubblico affidabile per l’esecuzione di codice.

I punteggi variano. Google, che ha assegnato il CVE, indica 9.2 (critico) su CVSS 4.0. Node.js lo definisce high. Red Hat assegna 8.1 (important).

La correzione era entrata nel sorgente di Brotli il 27 febbraio, ma nessuna release la includeva fino al 21 ottobre. Secondo OpenAI, allora non si sapeva che il difetto fosse una vulnerabilità di sicurezza. Node.js attribuisce la segnalazione a Khai Tran e Sylvie Mayer di OpenAI Codex Security, e la correzione ai maintainer Matteo Collina e Antoine du Hamel.

Cosa fare

  • Aggiornare a una versione corretta, poi riavviare il servizio e ricostruire le immagini container: un processo in esecuzione mantiene il vecchio decoder.
  • Se non si può aggiornare, evitare di decodificare Brotli non fidato. Rifiutare le richieste con Content-Encoding: br prima di proxy e parser, e disattivare la decodifica Brotli automatica nei client HTTP. Lo suggeriscono OpenAI e Aikido.
  • In Python, disinstallare Brotli e brotlicffi, così i client ripiegano su gzip e deflate.
  • Togliere br da Accept-Encoding non basta, perché il server può inviare Brotli comunque. Per Node.js non esistono workaround: l’unica soluzione è aggiornare.

I pacchetti di sistema arrivano in tempi diversi. Debian 13 (trixie) ha corretto brotli il 23 ottobre con la versione 1.1.0-2+deb13u1. Amazon Linux 2023 al 22 ottobre indicava ancora in attesa i pacchetti brotli e Node.js 24.

Gli scanner di dipendenze potrebbero non segnalare i pacchetti Python. Il record CVE cita il repository Google e non i pacchetti PyPI, e l’advisory GitHub (letto da Dependabot) non elenca pacchetti interessati. Il 23 ottobre sono state aggiunte le voci PYSEC-2026-4322 e PYSEC-2026-4323. Conviene verificare a mano le versioni installate.

Fonte: The Hacker News · Foto: The Hacker News

CY
SCRITTO DA CyberNexus
newsletter.sh
// OGNI SETTIMANA

Le minacce della settimana, prima che arrivino da te.

Una mail, le notizie che contano, spiegate in modo chiaro.

Zero spam. Iscrivendoti accetti l’informativa privacy.