InfoOn a lu la doc

nginx : le haut-parleur a cinq lignes, les deux registres n'ont pas la même suite

Le 14 octobre, la page d'actualités annonce 1.30.6 stable et 1.31.7 mainline avec les mêmes cinq CVE. Les deux journaux recopient cinq paragraphes identiques, puis le stable baisse un niveau de log et le mainline ajoute trois fonctions et le schéma RFC 9218. Les correctifs d'après ne sont pas la même liste.

Le haut-parleur du hall a une seule annonce, et elle vaut pour deux trains. 1.30.6, le stable. 1.31.7, le mainline. Cinq numéros de dossier, dits une fois. Tu descends sur le quai et tu ouvres le registre de chaque train. Les cinq avertissements y sont recopiés mot pour mot, remerciements compris. La page d'après, non. L'un baisse le volume d'une alarme. L'autre ajoute trois fonctions et change la façon dont HTTP/2 fait la queue. Si tu n'as entendu que le haut-parleur, tu as les cinq dossiers. Tu n'as pas la suite.

Le 14 octobre 2026, la page d'actualités écrit que nginx-1.30.6 stable et nginx-1.31.7 mainline sont sortis, avec des correctifs pour cinq choses. Un dépassement de tampon quand on utilise alias avec rewrite, CVE-2026-15176. Un dépassement de tampon en évaluant des expressions de chaînes avec des variables, CVE-2026-93479. Une injection de corps de requête en HTTP/3, CVE-2026-95101. Une contrefaçon de session quand on fait tourner les clés de tickets TLS, CVE-2026-97629. Un use-after-free quand on utilise ngx_http_ssi_module avec AIO, CVE-2026-97205. Cinq groupes nominaux. Pas le mot « might ». Pas la liste de ce qui n'est pas une faille.

Les cinq paragraphes sont les mêmes, le mot might est dans les registres

Les deux journaux ouvrent sur la même date : Changes with nginx 1.30.6 14 Oct 2026 d'un côté, Changes with nginx 1.31.7 14 Oct 2026 de l'autre. J'ai comparé les cinq blocs qui commencent par Security. Ils sont identiques, y compris les lignes de remerciement.

Le premier : un dépassement de tampon peut arriver dans un worker quand la directive alias est utilisée, si l'URI a été changée par rewrite puis projetée sur un chemin de fichier. CVE-2026-15176. Pas de remerciement sous celui-là.

Le deuxième : un dépassement peut arriver en évaluant des expressions de chaînes avec des variables, ce qui touchait le calcul de la racine des documents et la journalisation, dans les modules http et stream. CVE-2026-93479. Remerciement à Matt Suiche, de Tolmo Inc.

Le troisième : en HTTP/3, une partie d'une trame inconnue peut être traitée comme le corps de la requête, ce qui peut contourner client_max_body_size ou injecter des données dans la requête transmise. CVE-2026-95101. Remerciement à Hansol Lee, de GOTROOT.

Le quatrième : pendant la rotation des clés de tickets de session TLS, une des clés restait non initialisée, ce qui peut permettre de forger une session. CVE-2026-97629. Remerciement à PhiNode Labs.

Le cinquième : avec les entrées-sorties de fichiers asynchrones, un use-after-free peut arriver dans certaines configurations si la page SSI a des commandes include virtual. CVE-2026-97205. Remerciement à cyberlancer.

« Might » est dans les registres. Le haut-parleur a transformé chaque paragraphe en un nom. Je ne remets pas « might » dans l'annonce, et je ne l'enlève pas des journaux.

Après les cinq, le stable baisse un log, le mainline ajoute des fonctions

La ligne qui suit, dans 1.30.6, est un Change. Le niveau de log des erreurs SSL « invalid alert » et « record layer failure », et de « SSL alert number N » pour n'importe quel numéro d'alerte, passe de crit à info. Cette ligne n'est pas dans le bloc 1.31.7 que j'ai lu.

Le bloc 1.31.7, après les cinq, a trois Feature. Les modules ngx_http_geoip_module et ngx_stream_geoip_module acceptent maintenant les bases au format MaxMind DB (MMDB). Les certificats SSL d'un backend peuvent maintenant être vérifiés par adresse IP, remerciement à Maxim Dounin. QUIC accepte maintenant la reconfiguration et la mise à jour binaire quand on utilise la directive quic_bpf. Puis un Change qui n'est pas celui du log : ngx_http_v2_module utilise le schéma de priorité de la RFC 9218, et les signaux de priorité de la RFC 7540 sont ignorés. Ces quatre paragraphes ne sont pas dans le bloc 1.30.6.

Le haut-parleur ne dit ni crit, ni info, ni MMDB, ni RFC 9218. Il s'arrête aux cinq CVE.

Deux correctifs sont sur les deux registres, la suite diverge

Deux Bugfix reviennent dans les deux journaux, avec les mêmes remerciements. Un plantage du worker, ou des alertes « request count is zero », si une ligne d'en-tête X-Accel-Redirect était en cache et que la réponse cachée est ensuite servie. Remerciement à Jiří Setnička et Maxim Dounin. Un plantage si ngx_http_dav_module gère COPY et MOVE dans un location qui a alias. Remerciement à Maxim Dounin.

Après ça, j'ai compté. Le bloc 1.31.7 a 5 paragraphes Bugfix en tout, donc 3 qui ne sont pas dans le stable. Des connexions QUIC peuvent être fermées avec « quic flood detected » si http3_stream_buffer_size est petit, bogue apparu en 1.27.5. Fermer une connexion SSL sans close_notify était traité comme un arrêt propre, y compris en cas de reset, et des erreurs « SSL_read() failed » apparaissent maintenant dans les logs, remerciement à Maxim Dounin. Des messages « crit SSL_write() failed » peuvent apparaître quand une erreur survient en lisant une connexion SSL.

Le bloc 1.30.6 a 13 amorces qui commencent par Bugfix, donc les 2 communes et 11 autres. La dernière est au pluriel : Bugfixes dans HTTP/3, ngx_http_image_filter_module, ngx_http_slice_module et ngx_http_memcached_module. Elle ne détaille pas. Avant elle : un fichier binaire de geo avec ranges corrompu, un use-after-free en proxy avec tampon vers un client HTTP/2, un worker qui peut ne pas quitter ou accept4() failed (9: Bad file descriptor) s'il n'a plus de descripteurs avant l'arrêt gracieux, un plantage avec la méthode select, une compatibilité binaire avec des modules tiers qui utilisent des codes de script, bogue apparu en 1.30.4, le module Perl, le contrôle de flux de ngx_http_v2_module, des messages sur une réponse HTTP/2 cachée dans ngx_http_proxy_v2_module si proxy_cache_revalidate est là, la fragmentation IPv6 qui peut ne pas être désactivée avec QUIC sur certains systèmes, et ngx_http_auth_basic_module sur Solaris. Je ne transporte pas cette liste dans le journal mainline. Je ne transporte pas le quic flood dans le stable.

Le même jour, la page d'actualités a une autre entrée, njs-1.0.2, avec deux CVE à elle, CVE-2026-101025 et CVE-2026-101019. Ce n'est pas une sixième ligne du haut-parleur nginx. Je la laisse sur sa propre affichette.

✍️ À toi : le numéro qui tourne vraiment, 1.30.6 ou 1.31.7, et si tu as lu l'annonce ou le journal. Les cinq dossiers sont les mêmes. La page d'après ne l'est pas.

Le 14 octobre, nginx annonce 1.30.6 et 1.31.7 avec cinq CVE, sans écrire « might ». Les deux journaux recopient cinq paragraphes identiques, might et remerciements compris. Le stable baisse ensuite le log de crit à info et aligne 13 amorces de correctifs. Le mainline ajoute MMDB, la vérification de certificat par IP, quic_bpf et la RFC 9218, et il aligne 5 correctifs. Deux d'entre eux sont sur les deux feuilles. Le haut-parleur s'est tu avant la suite.