Brotli, il compressore che non voleva smettere di mangiare

Brotli, il compressore che non voleva smettere di mangiare

Immaginate di trovarvi davanti a un buffet infinito: non importa quanto mangiate, il piatto non si svuota mai e, paradossalmente, più continuate a riempirvi la bocca, più il rischio di soffocare aumenta. È esattamente quello che succede con la vulnerabilità CVE-2026-111497, ribattezzata con un nome piuttosto suggestivo, Node2Shell, che colpisce il decoder Brotli.

Il problema non è solo un piccolo bug di gioventù, ma una falla di sicurezza con un punteggio CVSS 4.0 di ben 9.2. In parole povere: è una bomba a orologeria per chiunque utilizzi librerie Python che decodificano dati compressi provenienti dall’esterno. Il cuore della questione risiede in un errore di gestione della memoria (CWE-787): il decoder non controlla correttamente i valori di ritorno, permettendo di scrivere dati al di fuori dei limiti previsti. In pratica, un attaccante potrebbe inviare un flusso di dati malformato che, invece di terminare la decompressione, costringe il sistema a continuare a leggere all’infinito, portando potenzialmente all’esecuzione di codice remoto.

Per noi sviluppatori che operiamo in Italia, dove spesso gestiamo infrastrutture che devono rispondere a standard di sicurezza rigorosi, la notizia non è solo un ‘allarme tecnico’. Se il vostro microservizio accetta richieste HTTP con l’header ‘Content-Encoding: br’, siete nel mirino. E la cosa subdola è che non dovete nemmeno chiamare esplicitamente Brotli nel vostro codice: se avete installato librerie come ‘requests’, ‘httpx’ o ‘aiohttp’, queste useranno il decoder vulnerabile in modo del tutto trasparente non appena ricevono una risposta compressa da un server esterno che non controllate.

La buona notizia? La soluzione non richiede di riscrivere l’intera architettura del software. Non è una di quelle situazioni in cui bisogna cambiare provider cloud o migrare tutto su un nuovo framework perché l’attuale è diventato obsoleto. Basta un semplice aggiornamento delle dipendenze. Dovete puntare a Brotli 1.2.1 o brotlicffi 1.2.1.0.

Un consiglio pratico per chi si muove nel mondo Docker o gestisce ambienti complessi: non limitatevi a guardare il file ‘requirements.txt’. Usate ‘pip show’ sui vostri container e fate un check con ‘pipdeptree’ per capire quali pacchetti stanno trascinando la versione vulnerabile. Se non potete aggiornare immediatamente, una manovra di emergenza è disinstallare i pacchetti incriminati, costringendo i client HTTP a ripiegare su gzip o deflate. Un po’ come togliere il buffet troppo pericoloso per evitare l’indigestione, ma pur sempre una soluzione di fortuna.

In un mondo dove la sicurezza viene spesso trattata come un peso burocratico, ricordare che una semplice ‘version bump’ può evitare un disastro è fondamentale. Muovetevi ora, prima che il vostro server decida che non ne ha più abbastanza di ricevere dati.

Source: Node2Shell evolves to HTTP2Shell, blast radius affects many HTTP libs and apps

Lascia un commento