Chyby v kompresi HTTP/3 umožňují vyčerpat paměť serveru

HTTP/3 Autor: Root.cz s využitím Duck.ai

Bezpečnostní firma FoxIO upozornila na chyby v implementacích QPACK, kompresního mechanismu používaného protokolem HTTP/3. Vzdálený útočník bez přihlášení může za určitých okolností jediným spojením přimět server, aby spotřeboval mnohem více paměti, než kolik odpovídá přijatým datům. Výsledkem může být zpomalení nebo úplný pád služby.

Problém souvisí se zpracováním HTTP hlaviček. Malý komprimovaný blok může po rozbalení vytvořit velké množství hlaviček nebo opakovaně expandovat objem dat uložených v paměti. Některé implementace podle výzkumníků dostatečně neomezují velikost rozbalených hlaviček, případně limit kontrolují až příliš pozdě. V testovaných případech mohl být rozdíl mezi přenesenými daty a spotřebovanou pamětí až v řádech tísícinásobků.

Odborníci zkoumali deset implementací a zranitelných bylo v době zveřejnění sedm z nich. Mezi dotčené projekty patří například quic-go, Cloudflare quiche, lsquic, aioquic, Bun a knihovna h3 pro Rust. Problém se týkal také dekodéru QPACK ve Wiresharku. Nejde tedy o jednu chybu v samotném protokolu, ale o nedostatky v konkrétních programech, které jej implementují.

Některé projekty už opravy vydaly: quic-go 0.57.0, Cloudflare quiche 0.29.3 a lsquic 4.9.0, oprava se objevila také ve Wiresharku. V době zveřejnění článku zůstávaly některé další nálezy bez opravy. Provozovatelé by proto měli ověřit, jakou konkrétní implementaci jejich služba používá, a sledovat bezpečnostní oznámení příslušného projektu.

FoxIO zveřejnilo také funkční ukázku zneužití. Provozovatelé služeb využívajících HTTP/3 by měli nasadit dostupné aktualizace. Pokud oprava pro používaný software ještě není k dispozici, mohou dočasně zvážit vypnutí HTTP/3 nebo nastavení přísného limitu velikosti hlaviček.

Našli jste v článku chybu?

Autor zprávičky

Petr Krčmář pracuje jako šéfredaktor serveru Root.cz. Studoval počítače a média, takže je rozpolcen mezi dva obory. Snaží se dělat obojí, jak nejlépe umí.