Ein entfernter, nicht authentifizierter Client kann einen HTTP/3-Server dazu zwingen, zehn- bis tausendfach mehr Speicher zuzuweisen, als er selbst sendet. Eine einzige Verbindung reicht aus, um den Speicher eines Servers zu erschöpfen oder einen Server mit Standardkonfiguration lahmzulegen. Sieben der zehn getesteten Implementierungen sind anfällig, und mehrere davon wurden bereits behoben.
QPACK komprimiert HTTP/3-Header, um den über das Netzwerk übertragenen Datenverkehr möglichst gering zu halten. Bei den betroffenen Implementierungen fehlen Grenzwerte für dekodierte Header, sind unvollständig oder werden zu spät angewendet. Ein kleiner HEADERS-Frame kann daher im Speicher zu Hunderttausenden von Header-Objekten anwachsen. Um diese Expansion zu verhindern, muss beim Dekodieren und Speichern der Felder ein kumulatives Budget durchgesetzt werden.
Die Untersuchung begann während der Analyse von QUIC-Stacks für den TLS-Scanner JA4Scan, wo dieselbe Schwachstellenklasse in mehreren HTTP/3-Implementierungen auftrat. RFC 9114 legt fest, wie Server die Größe dekodierter Header begrenzen sollten. Manche Implementierungen prüfen jedoch nur die Größe des komprimierten Frames, dekomprimieren alles, bevor geprüft wird, lassen den Overhead von 32 Byte pro Feld außer Acht, setzen bei nicht konfigurierter Einstellung standardmäßig auf unbegrenzt oder erzwingen die Einstellung überhaupt nicht.
Der Angriff wirkt in zwei Richtungen. Ein HEADERS-Frame mit 1.000.000 Byte kann etwa 160.000 eindeutige Header enthalten, während eine Variante mit dynamischer Tabelle einen großen Eintrag einfügt und diesen mit Ein-Byte-Indizes tausendfach referenziert, was in lsquic und Bun ein Verhältnis von 4064:1 ergibt.
Für quic-go, Cloudflare quiche, lsquic und Wireshark sind Korrekturen verfügbar. Bun, das h3-Crate und aioquic/mitmproxy blieben Stand 20. Oktober 2026 ungepatcht. Zu den Gegenmaßnahmen gehören das Nicht-Exponieren von HTTP/3-Servern, das Deaktivieren von HTTP/3 in mitmproxy und das Setzen eines sinnvollen max_field_section_size im h3-Crate. IIS, Envoy und ngtcp2/nghttp3 sind nicht betroffen.
Quelle: Hacker News · Zusammengefasst von HeadlinesBriefing