CPython : deux failles TLS corrigées (CVE-2026-19445 et -19553)
L'ANSSI relaie deux vulnérabilités TLS dans CPython : un use-after-free critique (CVE-2026-19445) et une validation d'hôte manquante dans wrap_bio (CVE-2026-19553).
La fondation Python a publié le 30 septembre 2026 des correctifs pour deux vulnérabilités du module ssl de CPython, relayées par l'ANSSI dans l'avis CERTFR-2026-AVI-1243. L'une, CVE-2026-19445, est un use-after-free côté serveur évalué critique ; l'autre, CVE-2026-19553, affaiblit la vérification du nom d'hôte.
CVE-2026-19445 — use-after-free via sni_callback
Décrite dans le bulletin de sécurité Python, la faille concerne un SSLContext côté serveur libéré prématurément lorsque le sni_callback bascule de contexte. Un client TLS distant non authentifié peut faire planter le serveur — ou provoquer un appel via un pointeur libéré — si le callback assigne un autre contexte à SSLSocket.context (la méthode documentée pour choisir un certificat par nom de serveur) et que rien d'autre ne maintient le SSLContext d'origine en vie.
En attendant d'appliquer le correctif, la mitigation consiste à conserver une référence vers chaque SSLContext définissant un sni_callback pendant toute la durée de vie du serveur.
CVE-2026-19553 — wrap_bio() sans validation de server_hostname
La seconde faille, détaillée dans ce bulletin, est évaluée CVSS 7.6. SSLContext.wrap_bio() ne validait pas le paramètre server_hostname. Après correctif, le comportement passe du contournement silencieux de la vérification du nom d'hôte à la levée d'une ValueError lorsque server_hostname n'est pas fourni — aligné sur wrap_socket(). Le risque avant patch : une connexion TLS que l'on croit vérifiée ne l'est pas, ce qui ouvre la porte à l'interception.
Systèmes affectés
Selon l'avis CERT-FR : « CPython sans le dernier correctif de sécurité. » Les correctifs sont disponibles dans les versions de sécurité publiées le 30 septembre 2026. Référez-vous aux bulletins de l'éditeur ci-dessus pour la branche exacte à déployer.
Que faire
- Mettre à jour CPython vers la dernière version de sécurité sur tous les hôtes, images et environnements virtuels.
- Prioriser les serveurs TLS utilisant
sni_callbackpour le SNI multi-certificats : ce sont les cibles directes de CVE-2026-19445. - Auditer le code appelant
wrap_bio(): vérifiez queserver_hostnameest bien transmis, sans quoi la vérification d'hôte était jusqu'ici silencieusement ignorée. - Reconstruire les conteneurs embarquant un interpréteur Python vulnérable plutôt que de patcher à chaud.
Contexte
Deux failles du module ssl la même semaine rappellent que la surface TLS de la bibliothèque standard reste sensible : la première casse la disponibilité, la seconde casse une garantie de sécurité de façon silencieuse — le cas le plus pernicieux, puisque rien ne signale que la vérification d'hôte a été sautée. CPython étant omniprésent (serveurs web, agents, images de base), le correctif concerne bien plus que les projets Python « visibles ».