Un client distant et non authentifié peut forcer un serveur HTTP/3 à allouer des dizaines, voire des milliers de fois plus de mémoire que ce qu'il envoie. Une seule connexion suffit à épuiser la mémoire d'un serveur ou à paralyser un serveur à configuration par défaut. Sept des dix implémentations testées sont vulnérables, et plusieurs ont déjà été corrigées.
QPACK compresse les en-têtes HTTP/3 afin de réduire au minimum le trafic transmis sur le réseau. Dans les implémentations concernées, les limites des en-têtes décodés sont absentes, incomplètes ou appliquées trop tard. Une petite trame HEADERS peut ainsi se transformer en centaines de milliers d'objets d'en-tête en mémoire. Pour empêcher cette expansion, il faut imposer un budget cumulatif au fur et à mesure que les champs sont décodés et conservés.
La recherche a débuté lors de l'étude des piles QUIC pour le scanner TLS JA4Scan, où la même classe de vulnérabilité est apparue dans plusieurs implémentations HTTP/3. La RFC 9114 définit comment les serveurs doivent limiter la taille des en-têtes décodés, mais certaines implémentations ne vérifient que la taille de la trame compressée, décompressent tout avant de vérifier, omettent le surcoût de 32 octets par champ, considèrent la limite comme illimitée lorsqu'elle n'est pas configurée, ou ne l'appliquent jamais.
L'attaque fonctionne dans les deux sens. Une trame HEADERS de 1 000 000 octets peut contenir environ 160 000 en-têtes uniques, tandis qu'une variante avec table dynamique insère une grande entrée et la référence des milliers de fois à l'aide d'index d'un octet, ce qui produit un rapport de 4064:1 dans lsquic et Bun.
quic-go, Cloudflare quiche, lsquic et Wireshark disposent de correctifs. Bun, le crate h3 et aioquic/mitmproxy restaient non corrigés au 20 octobre 2026. Les mesures d'atténuation consistent à ne pas exposer les serveurs HTTP/3, à désactiver HTTP/3 dans mitmproxy et à définir une valeur raisonnable de max_field_section_size dans h3. IIS, Envoy et ngtcp2/nghttp3 ne sont pas affectés.
Source: Hacker News · Résumé par HeadlinesBriefing