Python 3.10.22 于 10 月 1 日发布。发布页面说明这是 3.10 的最后一个版本,3.10 系列将不再获得安全更新。
PEP 619 写道,自 2026 年 10 月 1 日起 3.10 进入生命周期结束(end-of-life)阶段。3.10 代码库已冻结,缺陷跟踪器不再接受任何类型的问题。
3.10.22 包含多项带 CVE 编号的修复,涉及 tarfile 解压过滤器绕过、zipfile 解压 bzip2 和 LZMA 成员时的无上限内存分配、urllib 凭据作用范围等。捆绑的 libexpat 也升级到 2.8.5。
ssl.SSLContext.wrap_bio() 现在会校验 server_hostname 等参数。在 3.10 上,为了兼容,启用 check_hostname 却缺少主机名时只会发出 DeprecationWarning。
3.10.22 仅提供源码。最后一个带官方二进制安装程序的 3.10 版本是 2023 年 4 月的 3.10.11。
注意事项:上游终止与发行版支持的区别
这次终止针对的是上游 CPython 的维护。操作系统发行版或商业供应商可能另有政策,但本文没有核实任何发行版政策或合同。
通过安装程序安装的环境,可能一直没能经由常规途径获得 3.10.12 以来的仅源码安全版本。安装 3.10.22 也不会延长上游支持期。
发布页面建议升级到受支持的 Python 版本,并说明目前最新的功能版本系列是 3.14。
把最后一个补丁与运行时迁移分开
列出使用 3.10 的服务、容器基础镜像和定时任务,就能看清两项工作的范围。
最后一个补丁是应用已经发布的修复,运行时迁移则是为了今后继续获得安全修复。依赖项和原生扩展的表现要在目标版本上才会另外显现。
Python 3.10.22 是 3.10 的最后一个安全修复,应用它并不会让 3.10 的上游支持重新开始。