La sicurezza delle infrastrutture web deve fare i conti con una nuova classe di vulnerabilità che sfrutta il modo in cui HTTP/3 gestisce le intestazioni delle richieste.
La ricerca di FoxIO, intitolata Header Accordions, documenta un problema di amplificazione della memoria associato a QPACK, il meccanismo di compressione utilizzato dal protocollo.
Il rischio riguarda implementazioni nelle quali i controlli sulle intestazioni decodificate risultano assenti, incompleti o applicati troppo tardi. Un aggressore remoto può così provocare un consumo anomalo di risorse senza autenticarsi. L’impatto principale è la negazione del servizio, che può rendere indisponibili applicazioni e siti web. La scoperta evidenzia quanto la gestione della memoria sia determinante per la resilienza dei servizi esposti a Internet.
Come funziona l’attacco basato su QPACK
HTTP/3 utilizza QUIC per il trasporto dei dati e QPACK per ridurre le dimensioni delle intestazioni HTTP. La compressione permette di sostituire informazioni ripetute con riferimenti più brevi, diminuendo il traffico necessario per comunicare tra client e server.
Il problema emerge quando un’implementazione considera soltanto la dimensione dei dati compressi ricevuti, senza imporre un limite cumulativo adeguato al risultato della decodifica. Il sistema può quindi ricostruire numerosi campi e mantenere in memoria una quantità di informazioni sproporzionata rispetto alla richiesta originale.
Nei test condotti da FoxIO, sette delle dieci implementazioni esaminate hanno mostrato comportamenti vulnerabili. In alcuni casi, l’amplificazione ha raggiunto circa 4.000 volte la quantità di dati trasmessi, secondo le misurazioni dei ricercatori. Questo squilibrio può esaurire la memoria disponibile e interrompere l’elaborazione delle richieste legittime.
La ricerca descrive anche uno scenario distinto in cui un errore nella gestione dei contatori può bloccare il processore. Non si tratta necessariamente di accesso ai dati riservati o di esecuzione di codice arbitrario: il pericolo documentato riguarda soprattutto la disponibilità dell’infrastruttura. I risultati dimostrano che la compressione, se accompagnata da controlli insufficienti, può trasformarsi in una superficie d’attacco significativa.
Software coinvolti e misure per ridurre il rischio
Tra i componenti per i quali sono state segnalate correzioni figurano quic-go, Cloudflare quiche, lsquic e Wireshark. Le versioni correttive indicate nella documentazione sono rispettivamente 0.57.0, 0.29.3, 4.9.0 e 4.6.2 oppure 4.4.12. Gli amministratori devono verificare quale componente sia effettivamente presente nella propria infrastruttura, poiché una libreria vulnerabile può essere integrata in prodotti più ampi.
Al momento della divulgazione, FoxIO segnalava inoltre implementazioni ancora prive di una correzione, tra cui Bun, la libreria Rust h3 e aioquic, utilizzata anche da mitmproxy. Per questi ambienti, le indicazioni comprendono la limitazione dell’esposizione di HTTP/3, la disattivazione del protocollo in mitmproxy e la configurazione di limiti appropriati alle intestazioni per h3. La disponibilità delle correzioni può cambiare: occorre consultare gli avvisi ufficiali dei rispettivi progetti prima di intervenire.
La ricerca non riportava prove di sfruttamento degli attacchi nel mondo reale al momento della pubblicazione, ma la disponibilità di codice dimostrativo rende importante una valutazione tempestiva dell’esposizione.