Mise à jour Go d’urgence : huit clés d’AC intermédiaires bloquées

Une mise à jour Go d'urgence bloque huit clés d'autorités de certification, pour des raisons de sécurité non détaillées.
L’équipe du langage Go a publié le 20 octobre une mise à jour Go inhabituelle. Les versions Go 1.27.3 et Go 1.26.10 modifient le comportement du vérificateur de certificats. Désormais, il rejette toute chaîne de certification passant par l’une de huit clés d’autorité de certification (AC) intermédiaires. Les développeurs et les équipes d’exploitation doivent donc réagir vite.
Ce que change cette mise à jour Go
Le principe est simple. En effet, lorsqu’un programme Go valide un certificat, il examine toute la chaîne de confiance. Ainsi, si cette chaîne contient l’une des huit clés visées, la validation échoue.
Par conséquent, les programmes compilés avec les nouvelles versions refusent les connexions concernées. Cela touche les sites et les services dont les certificats ont été émis sous ces clés. Le client Go ne parvient alors pas à établir la session sécurisée.
Les deux versions sont publiées en parallèle. Ainsi, Go 1.27.3 correspond à la branche la plus récente. En revanche, Go 1.26.10 concerne la branche précédente. Les projets qui suivent l’une ou l’autre disposent donc du même correctif.
Huit clés, une seule autorité de certification
Selon l’équipe Go, ces huit clés intermédiaires appartiennent à une seule autorité de certification. Toutefois, les informations disponibles ne précisent pas les motifs détaillés de ce blocage. Le titre de l’annonce évoque d’ailleurs des préoccupations de sécurité non divulguées.
Cette opacité complique l’évaluation du risque. En effet, on ignore pour l’instant si le problème vient d’une compromission, d’une mauvaise pratique d’émission ou d’un autre incident. Il serait donc imprudent de formuler des hypothèses sur ce point.
Cependant, un fait mérite l’attention. Bloquer des clés au niveau du langage est une mesure forte. Elle est rarement employée, car elle casse volontairement des connexions légitimes. Elle traduit donc un niveau de préoccupation élevé.
Quels risques pour vos applications ?
L’impact dépend de vos dépendances externes. D’abord, vos applications peuvent appeler des API tierces dont les certificats relèvent de cette autorité. Ensuite, vos outils internes peuvent utiliser des certificats émis par la même AC. Enfin, des services de supervision ou de paiement pourraient être touchés.
Les symptômes seront probablement des erreurs de vérification de certificat. Par exemple, un client HTTP Go signalera une chaîne non fiable ou un certificat invalide. Ces erreurs apparaîtront après la recompilation, pas avant.
Ce détail est important. En effet, les binaires Go embarquent leur propre bibliothèque standard. Un programme déjà déployé conserve donc l’ancien comportement jusqu’à sa reconstruction. En revanche, la prochaine compilation intégrera le blocage, parfois sans que personne s’y attende.
- Ainsi, les pipelines d’intégration continue qui recompilent automatiquement sont exposés.
- Les images de conteneurs reconstruites régulièrement sont également exposées.
- Enfin, les outils en ligne de commande écrits en Go, mis à jour par leurs mainteneurs, peuvent changer de comportement.
Comment réagir à cette mise à jour Go
Il ne faut pas ignorer l’alerte. Il ne faut pas non plus contourner la vérification des certificats. En effet, désactiver la validation TLS pour « faire repasser » un service ouvrirait une brèche bien plus grave.
Voici une démarche raisonnable, étape par étape :
- Inventorier les binaires Go en production. La commande
go version -mindique la version de la chaîne d’outils utilisée. - Mettre à niveau vers Go 1.27.3 ou Go 1.26.10, selon votre branche.
- Ensuite, tester les connexions sortantes vers vos partenaires et vos fournisseurs avant tout déploiement massif.
- Examiner les chaînes de certification de vos services, par exemple avec
openssl s_client -connect hôte:443 -showcerts. - Enfin, contacter le fournisseur concerné si un de ses certificats est refusé. Il pourra fournir une chaîne émise sous une autre clé.
Par ailleurs, surveillez les communications officielles de l’équipe Go. Des précisions sur les raisons du blocage pourraient être publiées. Elles aideraient ainsi à mesurer l’exposition réelle.
Ce qu’il faut retenir
- Go 1.27.3 et Go 1.26.10, publiées le 20 octobre, rejettent les chaînes passant par huit clés d’AC intermédiaires.
- Ces clés appartiennent à une seule autorité de certification.
- Toutefois, les raisons précises du blocage n’ont pas été détaillées.
- Par conséquent, les programmes recompilés refuseront les connexions vers les services concernés.
- En revanche, les binaires déjà déployés ne changent pas tant qu’ils ne sont pas reconstruits.
- Il faut donc tester avant de déployer, et ne jamais désactiver la validation TLS comme solution de contournement.
Source : Go Issues Emergency Update Blocking Eight CA Keys Over Undisclosed Security Concerns