Aller au contenu

Python 3.10 arrive en fin de vie, cinq versions corrigent 8 CVE

Python 3.10.22 est la dernière version de la branche 3.10 : elle a atteint sa fin de vie le 1er octobre 2026, tandis que 3.11 à 3.14 recevaient des correctifs pour jusqu'à huit CVE.

Par Tech AI Wire Team

4 min de lecture

XLinkedIn
Screenshot of the Python Insider post announcing Python 3.10.22, 3.11.17, 3.12.15, 3.13.16 and 3.14.8, with download links for each release.

En chiffres

CVEs fixed across the five releases
8
of them in the tarfile module
3
end of support for Python 3.11
Oct 2027
end of support for Python 3.12
Oct 2028

Python 3.10 a atteint sa fin de vie le 1er octobre 2026, cinq ans après sa sortie. Sa dernière mise à jour, Python 3.10.22, est arrivée en même temps que 3.11.17, 3.12.15, 3.13.16 et 3.14.8. Ensemble, elles corrigent huit failles de sécurité. Quiconque utilise encore 3.10 ne reçoit désormais plus aucun correctif, y compris pour les bugs de sécurité.

La même série fait passer Python 3.13 aux seuls correctifs de sécurité. Python 3.14 est la branche la plus récente de la série.

Ce que la fin de vie signifie pour 3.10

La « fin de vie » signifie que l'équipe principale de Python cesse de maintenir une version. Plus aucune version ne sort pour elle, même quand une nouvelle faille de sécurité est découverte. L'annonce de la version sur Python Insider marque le moment sans détour : « C'est le ringdown de Python 3.10. Une dernière version avant d'éteindre la machinerie de publication. »

Pablo Galindo Salgado a géré les lignes de versions 3.10 et 3.11, rapporte Linux Compatible. Le message d'adieu rappelle que Python 3.10 a commencé « par un voyage à l'intérieur d'un trou noir de Schwarzschild », et il se termine lui aussi sur des trous noirs. Thomas Wouters et Hugo van Kemenade, les autres responsables des versions, ont également signé l'annonce.

Voici où en est chaque branche prise en charge, selon l'annonce :

VersionCette publicationStatutFin du support
3.103.10.22Fin de vie1er octobre 2026
3.113.11.17Correctifs de sécurité uniquementOctobre 2027
3.123.12.15Correctifs de sécurité uniquementOctobre 2028
3.133.13.16Désormais correctifs de sécurité uniquementNon précisée dans cette publication
3.143.14.8Branche la plus récenteNon précisée dans cette publication

L'annonce indique que 3.13.16 « est la dernière version de maintenance complète de 3.13 ; les futures versions de 3.13 ne contiendront que des correctifs de sécurité. »

Les huit correctifs de sécurité

Une CVE est un numéro d'identification public attribué à une faille de sécurité connue. L'annonce en liste huit. Toutes sont incluses dans chaque version, sauf CVE-2026-87910, qui ne concerne pas 3.14.

CVEModuleCe que fait le correctif
CVE-2026-19553sslSSLContext.wrap_bio() vérifie désormais ses arguments server_side, server_hostname et session
CVE-2026-82049tarfileComble une faille du filtre d'extraction liée aux liens physiques vers des liens symboliques, qui pouvait exposer des fichiers hors du dossier cible
CVE-2026-15310zipfileLimite la quantité de données bzip2 et LZMA décompressées à chaque lecture, ce qui évite une consommation de mémoire illimitée
CVE-2026-19672tarfileEmpêche les filtres d'extraction de créer des dossiers hors de la cible
CVE-2026-19445sslCorrige un plantage quand un callback SNI change de contexte
CVE-2026-17084stringprep, IDNALimite les deux aux règles de caractères Unicode de la RFC 3454
CVE-2026-15806urllib.requestCloisonne les mots de passe de HTTPPasswordMgr par schéma d'URL, pour que les identifiants HTTPS ne soient pas détournés
CVE-2026-87910tarfileApplique les filtres d'extraction quand un lien se rabat sur l'extraction d'un membre de l'archive

Trois des huit concernent tarfile, le module de la bibliothèque standard qui décompresse les archives .tar. Ses filtres d'extraction sont les contrôles de sécurité qui empêchent une archive d'écrire des fichiers hors du dossier dans lequel vous la décompressez. Les trois correctifs comblent des lacunes dans ces contrôles.

Installateurs et OpenSSL

Seules deux des cinq versions sont livrées avec des installateurs prêts à l'emploi. Selon l'annonce sur Python Discourse, 3.10.22, 3.11.17 et 3.12.15 sont publiées uniquement sous forme de code source, sans installateurs Windows ni macOS. Python 3.13.16 et 3.14.8 en proposent.

Ces deux versions mettent aussi à jour l'OpenSSL intégré, la bibliothèque que Python utilise pour les connexions chiffrées, vers la version 3.5.9. Cela s'applique aux builds Windows, macOS et Android, et 3.14.8 couvre aussi iOS.

Ce que cela signifie pour les développeurs

Quittez Python 3.10 dès maintenant. Vérifiez chaque endroit où une version est figée : images Docker de base, matrices de tests CI, fichiers pyproject.toml et images de serveur. Désormais, aucune image 3.10 ne recevra de nouveau correctif de sécurité.

Choisissez votre cible en tenant compte des dates de support. Passer à 3.11 ne vous donne qu'un an, jusqu'en octobre 2027. Passer à 3.12 vous en donne deux. Si vous faites le travail de toute façon, 3.13 ou 3.14 offre la plus longue marge.

Appliquez d'abord les correctifs si vous décompressez des archives que vous n'avez pas créées. Les services qui acceptent des fichiers .tar ou .zip envoyés en ligne sont concernés par les correctifs de tarfile et de zipfile. Mettez-les à jour en premier, et gardez les filtres d'extraction activés dans votre propre code.

Vérifiez urllib si vous l'utilisez pour envoyer des mots de passe. Le correctif de HTTPPasswordMgr empêche que des identifiants prévus pour HTTPS soient réutilisés avec un autre schéma. Le code qui définit des mots de passe d'authentification basique via urllib.request doit passer aux versions corrigées.

Prévoyez des compilations depuis les sources pour les anciennes branches. Sous Windows et macOS, les correctifs de 3.11 et 3.12 arrivent sans installateurs. Récupérez-les via votre distribution Linux, une image de conteneur ou un outil qui compile Python depuis les sources.

Sources

  1. Python 3.10.22, 3.11.17, 3.12.15, 3.13.16 and 3.14.8 are now available! - Python Insider
  2. Python 3.10.22, 3.11.17, 3.12.15, 3.13.16, and 3.14.8 Ship as 3.10 Hits End of Life - Linux Compatible
  3. Python 3.10.22, 3.11.17, 3.12.15, 3.13.16 and 3.14.8 release announcement - Python Discourse

Articles liés