EN
en direct

nginx corrige un débordement de tas dans la poignée de main HTTP/3 de ses serveurs edge

Le 15 septembre 2026, nginx a publié les versions 1.31.6 et 1.30.5 pour colmater CVE-2026-90439, un débordement de tas dans le module HTTP/3 qui frappe les déploiements compilés contre OpenSSL 3.5.0 ou antérieur. Mettez à jour nginx et OpenSSL, puis désactivez HTTP/3 sur les bords qui n’en ont pas besoin.

Un tapis de tri postal chargé de petits paquets sombres, un seul paquet éventré à son coin avec un éclat ambre.

15 septembre 2026. nginx livre les versions 1.31.6 (mainline) et 1.30.5 (stable), toutes deux porteuses d’un correctif de sécurité. 2 septembre. La 1.31.5 avait ouvert un chapitre fonctionnel inédit : API de contrôle, predicate locations et module JSON natif. 3.5.0. C’est le numéro d’OpenSSL au-delà duquel le déclencheur disparaît. Pourquoi c’est important : la faille vit dans HTTP/3, la partie la plus récente et la moins rodée de la surface d’un serveur edge — celle que beaucoup d’équipes exposent sur Internet sans même savoir qu’elle est active.

HTTP/3 est devenu une surface par défaut, pas un choix réfléchi

nginx est le reverse proxy et le serveur web le plus déployé de l’internet, et HTTP/3 y est arrivé relativement tard par rapport à d’autres implémentations. La conséquence est double. D’un côté, la base installée est immense : tout correctif y touche un nombre d’instances considérable. De l’autre, HTTP/3 repose sur QUIC, un transport bâti sur UDP et non sur TCP — un changement de modèle complet qui ne se résume pas à « du HTTP en plus rapide ».

Le point qui compte ici est opérationnel. Beaucoup d’administrateurs ont activé HTTP/3 en suivant une recette de déploiement — les directives listen 443 quic reuseport; et l’en-tête Alt-Svc — sans la revoir ensuite. Résultat : une surface réseau supplémentaire est ouverte sur des boîtiers qui, jusqu’alors, ne parlaient que TCP. C’est précisément sur cette surface que CVE-2026-90439 frappe.

Ce que fait précisément la faille

La vulnérabilité vit dans ngx_http_v3_module, le module qui implémente HTTP/3. D’après l’avis de sécurité, un débordement de tas limité (heap buffer overflow) peut se produire pendant la poignée de main TLS d’une connexion QUIC, lorsque deux conditions sont réunies : le serveur est compilé contre OpenSSL 3.5.0 ou une version antérieure, et certaines configurations particulières sont en place.

Trois propriétés rendent cette faille inhabituelle. D’abord, le déclencheur est non déterministe — l’éditeur écrit lui-même qu’il survient « d’une manière qui échappe au contrôle de l’attaquant ». Ensuite, l’impact est double : un redémarrage du processus worker (déni de service) et une corruption de données limitée. Enfin, le score CVSS 6.5 la classe « moyenne », mais ce chiffre masque l’essentiel : la corruption se produit dans le même worker qui traite les autres requêtes, et l’impact de disponibilité touche le bord entier, pas une seule connexion.

Le périmètre couvre nginx Plus et nginx Open Source. La correction a été intégrée aux deux branches simultanément — 1.31.6 pour la mainline et 1.30.5 pour la stable — et s’accompagne d’un durcissement distinct : l’extension de paramètres de transport QUIC reçue dans une connexion SSL est désormais toujours ignorée.

Pourquoi OpenSSL 3.5.0 est le vrai marqueur de risque

Le lien avec OpenSSL n’est pas anecdotique. La faille n’existe que si le binaire nginx a été lié contre une OpenSSL antérieure ou égale à 3.5.0. Cela veut dire qu’une mise à jour de nginx seule ne suffit pas toujours : un paquet reconstruit contre une OpenSSL obsolète peut rester vulnérable malgré une version nginx récente.

La vérification se fait en une commande, et elle est plus fiable que la seule lecture du numéro de version :

bash
# Lister la version nginx et la version OpenSSL de compilation
nginx -V 2>&1 | tr ' ' '\n' | grep -E 'nginx/|OpenSSL'

Tant que la ligne built with OpenSSL affiche 3.5.0 ou moins, le correctif applicatif n’est pas complet : il faut aussi mettre à jour la bibliothèque OpenSSL utilisée au link.

Désactiver HTTP/3, ou le garder sous contrôle

Pour un serveur edge qui n’a pas besoin de HTTP/3, la mesure la plus propre est la suppression pure et simple de la directive d’écoute QUIC :

nginx
server {
    listen 443 ssl;
    # listen 443 quic reuseport;   # <- commenter/retirer désactive HTTP/3
    server_name example.com;
}

Pour les déploiements qui veulent conserver HTTP/3, la posture minimale est une mise à jour coordonnée de nginx et d’OpenSSL, puis une surveillance du taux de redémarrage des workers. Un worker qui crashe en boucle sur un bord QUIC exposé est le symptôme exact de ce que CVE-2026-90439 produit.

L’épisode illustre une tendance plus large. HTTP/3 est la première refonte majeure du transport web depuis des années, et son adoption a été largement tirée par la latence et les CDN plus que par un raisonnement de sécurité. Les failles de cette couche sont mécaniquement plus jeunes, moins documentées et moins couvertes par les outils de détection historiques — les IDS et les pare-feux qui parsent encore TCP ne voient pas toujours le trafic QUIC de la même façon. Le correctif du 15 septembre rappelle que cette surface neuve n’est pas encore entrée dans la routine de durcissement de la plupart des équipes. Le retrait d’ingress-nginx au profit du Gateway API dans Kubernetes, que nous avons couvert ici, déplace d’ailleurs une partie de cette responsabilité vers d’autres implémentations qu’il faudra suivre avec la même rigueur.

Verdict

CVE-2026-90439 n’est pas un CVSS 9.8 à la une, mais c’est un signal utile sur une surface que peu d’équipes surveillent réellement. Si vous exposez nginx sur Internet avec HTTP/3 actif, passez en 1.30.5+ ou 1.31.6+ et vérifiez la version d’OpenSSL liée — les deux, pas l’un ou l’autre. Si vous n’utilisez pas HTTP/3, retirez la directive listen … quic : vous supprimez le risque sans attendre le moindre correctif. Si vous gérez un parc de proxies, ajoutez le couple « version nginx + version OpenSSL de compilation » à votre inventaire de conformité, car c’est la combinaison, et non l’un des deux numéros isolément, qui détermine l’exposition.

Références

Le brief cyber, chaque mardi

Les failles qui comptent, les correctifs à appliquer, en dix minutes de lecture.

Pas de spam. Désinscription en un clic.
à lire ensuite

Sur le même sujet

BIND 9 corrige 14 failles dont un crash DNS-over-HTTPS non authentifié en une seule requête

Le 16 septembre 2026, l’ISC a publié BIND 9.20.29 et 9.21.26 pour corriger 14 vulnérabilités, dont CVE-2026-77692 qui permet de faire planter named avec une seule requête DNS-over-HTTPS malformée. Inventoriez chaque résolveur, corrigez et rendez la résolution redondante avant qu’un seul paquet ne mette votre plateforme à terre.

Le compromis de BGP.Exchange épargne les route servers mais expose les données de ses 510 réseaux membres

Le 12 septembre 2026, l’IXP virtuel BGP.Exchange a vu son site défiguré et son système d’e-mails détourné pour harceler ses membres ; l’opérateur assure qu’aucun route server n’a été touché. Vérifiez vos sessions de peering, changez vos identifiants et mesurez ce que l’incident dit de la séparation entre plan de gestion et plan de données.

← Retour au fil

Tapez au moins deux caractères.

naviguer ouvrir esc fermer