内容提要
Python 发布 3.10.22、3.11.17、3.12.15、3.13.16 和 3.14.8。3.10 系列结束支持,3.11 仅安全修复至 2027 年 10 月,3.12 支持至 2028 年 10 月,3.13.16 为最后完整维护版。各版本修复浮点格式化、SSL、tarfile、zipfile、urllib 等安全漏洞,并更新 libexpat 与 OpenSSL。
延伸解读
Python 3.10 生命周期结束:升级建议
Python 3.10.22 是 3.10 系列的最终版本,此后将不再获得任何安全更新。如果你仍在使用 Python 3.10,应尽快规划升级到受支持的版本,以避免潜在的安全风险。
各版本支持状态与安装包差异
Python 3.11 仅接收安全修复至 2027 年 10 月,3.12 支持至 2028 年 10 月。3.10.22 和 3.11.17 仅提供源码,没有 Windows 或 macOS 安装程序;3.13.16 和 3.14.8 则包含二进制安装程序。
安全修复要点:浮点格式化与 SSL 验证
本次发布修复了浮点或复数格式化精度接近 INT_MAX 时的崩溃或错误输出,并改进了 SSLContext.wrap_bio() 对参数的验证。在 Python 3.10-3.12 中,缺少主机名且启用 check_hostname 时会发出弃用警告,而 3.13 及以上版本会直接引发 ValueError。
其他安全更新:tarfile、zipfile 与 urllib
修复了 tarfile 提取过滤器涉及硬链接到符号链接的漏洞,以及路径离开目标后返回时可能创建外部目录的问题。zipfile 对 bzip2、LZMA 和 Zstandard 成员实施每次读取的解压限制,防止小压缩成员导致无界分配。urllib.request 的 HTTPPasswordMgr 凭据现在按 URL 方案限定,避免 HTTPS 凭据被用于 HTTP URL。
Q&A
Python 3.10.22 是最后一个版本吗?之后还会更新吗?
是的,Python 3.10.22 是 Python 3.10 系列的最终版本。该系列已结束支持,将不再接收任何安全更新。建议仍在使用 Python 3.10 的用户计划升级到受支持的版本。
Python 3.11 还会支持多久?更新频率如何?
Python 3.11 处于仅安全修复模式,将持续到 2027 年 10 月。安全版本根据需要发布,没有固定周期。
这次发布的哪些版本提供二进制安装程序?
Python 3.13.16 和 3.14.8 提供二进制安装程序。Python 3.10.22、3.11.17 和 3.12.15 是仅源代码发布,没有 Windows 或 macOS 安装程序。
Python 3.13.16 是最后一个完整维护版本吗?
是的,Python 3.13.16 是 3.13 系列的最后一个完整维护版本。未来的 3.13 版本将只包含安全修复。
这次发布修复了哪些安全漏洞?
修复了多个安全漏洞,包括:浮点格式化精度接近 INT_MAX 时的崩溃或错误输出;ssl.SSLContext.wrap_bio() 参数验证;tarfile 提取过滤器漏洞(硬链接到符号链接、目录逃逸);zipfile 解压缩无界分配;ssl SNI 回调崩溃;stringprep 和 IDNA 编解码器限制;urllib.request 凭据按 URL 方案作用域;以及 tarfile 链接回退时的过滤器应用。
哪些版本更新了 OpenSSL?更新到了哪个版本?
Python 3.13.16 和 3.14.8 更新了捆绑的 OpenSSL 到 3.5.9。在 3.13.16 中适用于 Windows、macOS 和 Android,从 OpenSSL 3.0.21 升级到 3.5 LTS 系列;在 3.14.8 中还适用于 iOS。仅源代码的 3.10–3.12 版本不捆绑 OpenSSL。