Skip to content

Go 1.27.2 et 1.26.9 : 15 failles corrigées

Go 1.27.2 et 1.26.9 corrigent 15 failles, dont plusieurs dans le serveur HTTP/2 de net/http. Ce qui est touché et pourquoi mettre à jour Go rapidement.

Publié le 3 min de lecture
Go 1.27.2 et 1.26.9 : 15 failles corrigées

L'équipe de Go a publié le 8 octobre 2026 les versions correctives Go 1.27.2 et Go 1.26.9, qui corrigent 15 vulnérabilités. La majorité concerne le paquet net/http, au cœur de nombreux services web, API et proxys écrits en Go. La commande go elle-même, crypto/tls, html/template, net/textproto et os sont également touchés. Les deux branches encore maintenues reçoivent les mêmes correctifs de sécurité.

HTTP/2 en première ligne

La faille la plus marquante, CVE-2026-97032, peut faire planter un serveur HTTP/2. Selon l'annonce de l'équipe Go, le serveur modifiait la taille de table de son encodeur HPACK (la compression des en-têtes HTTP/2) depuis une goroutine pendant qu'une autre l'utilisait pour encoder des réponses. Un client changeant de façon répétée ce paramètre pouvait provoquer le plantage. Le correctif met le réglage en attente et l'applique avant l'écriture de la trame suivante. La découverte est attribuée à RyotaK, de GMO Flatt Security.

Le même chercheur est crédité de CVE-2026-78659 : en déclarant un grand nombre de champs « Trailer », un client HTTP/2 pouvait pousser le serveur à allouer bien plus de mémoire que ses limites d'en-têtes ne le permettent. Les limites MaxHeaderValueCount et MaxHeaderBytes s'appliquent désormais aussi à ces champs.

D'autres correctifs visent HTTP/2 : consommation CPU excessive liée à des changements répétés de fenêtre initiale, double remboursement du contrôle de flux sur les flux serveur, ou encore acceptation d'en-têtes de cadrage malformés par le transport client.

CONNECT, Range et MIME

Côté HTTP/1, deux failles concernent la méthode CONNECT et peuvent désynchroniser une connexion, l'une côté client après un refus, l'autre côté serveur après une réponse 2xx. Avec CVE-2026-78667, les fonctions ServeContent, ServeFile et FileServer ignorent désormais les en-têtes Range contenant plus de 200 plages, qui pouvaient entraîner une consommation CPU excessive ; ce comportement est contrôlé par le paramètre GODEBUG httpservecontentmaxranges. Enfin, une limite mémoire pouvait être contournée lors de l'analyse d'en-têtes MIME dans net/textproto et mime/multipart.

La chaîne d'outils aussi concernée

Deux failles touchent la commande go et la vérification des sommes de contrôle. Dans les deux cas, un utilisateur travaillant dans un projet Go malveillant, associé à un proxy de modules malveillant, pouvait contourner la vérification prévue pour les modules golang.org/fips140 (CVE-2026-94444) ou golang.org/toolchain (CVE-2026-94447). Désormais, la somme de contrôle canonique de la chaîne d'outils est toujours récupérée sur le réseau. Ce type de scénario rappelle que la chaîne d'approvisionnement logicielle reste une surface d'attaque à part entière.

Le reste du lot comprend deux corrections d'échappement JavaScript dans html/template, un rejet des références malformées dans l'extension ECH de crypto/tls, et, sous Windows, une faille de os.Root : Root.Mkdir et Root.MkdirAll pouvaient suivre une jonction et créer un répertoire hors de la racine prévue.

Que faire

Le correctif passe par une simple mise à jour de la chaîne d'outils, suivie d'une recompilation : les binaires Go embarquent la bibliothèque standard, et un service compilé avec une version antérieure reste vulnérable tant qu'il n'est pas reconstruit et redéployé.

  • Mettre à jour vers Go 1.27.2 ou 1.26.9, selon la branche utilisée.
  • Recompiler et redéployer en priorité les serveurs exposés qui utilisent HTTP/2 via net/http.
  • Mettre à jour les images de build et la directive toolchain des fichiers go.mod si elle fixe une version précise.

Pour rappel, Go 1.27, sortie le 19 août 2026, avait notamment introduit les méthodes génériques et le nouveau paquet encoding/json/v2. Les développeurs qui suivent plusieurs écosystèmes retrouveront le même enjeu de mise à jour régulière que pour Rust 1.99.

Articles liés

Rust 1.99 stabilise les fonctions variadiques extern "C", de nouvelles API mémoire et prépare la fin des outils hôtes sur Windows 32 bits.
PostgreSQL 19 : release candidate le 15 octobre, version finale visée le 29. REPACK, autovacuum revu et fonctions retirées avant la sortie.
Java 27 généralise le ramasse-miettes G1, active les en-têtes d'objets compacts et ajoute un échange de clés TLS post-quantique. Le point sur ses 9 JEP.