New QPACK Flaws Can Crash HTTP/3 Servers, Trigger Up to 4,000-Fold Memory Amplification
Mis à jour :
Vulnérabilités critiques par amplification mémoire dans QPACK (HTTP/3)
Des chercheurs de FoxIO ont découvert des vulnérabilités dans le protocole QPACK d’HTTP/3 permettant à un attaquant non authentifié de provoquer un déni de service (DoS) par épuisement de la mémoire (OOM). En envoyant des en-têtes HTTP malicieusement compressés, l’attaquant force le serveur à décompresser les données en mémoire, créant une amplification pouvant atteindre 4 000 fois la taille initiale.
Points clés :
- Mécanisme : La vulnérabilité exploite l’absence ou le retard de plafonnement des en-têtes après leur décompression, contrairement à la vérification effectuée sur le flux entrant.
- Impact : Crash du serveur, saturation CPU (notamment sur Bun), et blocage des nouvelles requêtes. Aucun vol de données n’a été constaté.
- Étendue : Plusieurs bibliothèques HTTP/3 populaires sont affectées, impactant des logiciels comme Caddy, Traefik et les serveurs LiteSpeed.
Vulnérabilités identifiées :
- CVE-2025-64702 : quic-go (corrigé en v0.57.0)
- CVE-2026-12523 : Cloudflare quiche (corrigé en v0.29.3)
- CVE-2025-13945 : Wireshark (corrigé en v4.6.2 / 4.4.12)
- Non référencées : lsquic (corrigé en v4.9.0), ainsi que les versions non corrigées de Bun, h3 (Rust) et aioquic.
Recommandations :
- Mise à jour : Appliquer immédiatement les correctifs pour les bibliothèques concernées (quic-go, quiche, lsquic, Wireshark).
- Atténuation (si correctif indisponible) :
- Bun : Désactiver l’exposition du serveur HTTP/3.
- aioquic/mitmproxy : Désactiver le support HTTP/3 (
--set http3=false). - h3 (Rust) : Configurer manuellement une limite stricte via
max_field_section_size.
