21CTO 导读:Python 3.14.8 是一个加速安全版本,亦为 3.14 的第八个维护版本,自 3.14.7 以来,它包含了 142 位贡献者提供的约 354 项错误修复、构建改进与文档更改。
3.10.22 版本现在完成了 PEP 619 规范的制定。与 3.10.12 版本一样,该版本仅提供源代码,因此没有 Windows 或 macOS 安装程序可供下载。上一次可以下载 3.10 版本的二进制文件仍在 2023 年 4 月。
3.11.17 延续了自 2024 年 4 月开始的仅发布安全修复补丁的模式。该系列版本将持续发布安全补丁,直到 2027 年 10 月左右完结。
3.12.15 版本目前仍在积极维护中,安全更新将持续到 2028 年 10 月,但此版本仅提供源代码。该系列产品本身状况良好。
3.13.16 备受瞩目,原因只有一个:它是 3.13 的最后一个“完整”维护版本。此后,3.13 将只包含安全修复。不过,与之前的三个版本不同的是,它提供了适用于 Windows、macOS 和 Android 的二进制安装程序。
3.14.8 是当前的功能版本系列,因此它在修复安全漏洞的同时,也新增了一些新功能。二进制安装程序支持 Windows、macOS、Android 和 iOS 系统,并且包含了该系列中最新的加密协议栈。
它是 Python 3.14 系列的第八个维护版本,定位为紧急安全更新。自 Python 3.14.7 以来,它包含了大约 354 项错误修复、构建改进和文档更新。
因此,这次同步更新可以让所有人,无论你使用的是古老的 3.10 版本还是最新的 3.14 版本,都能一次性获得最新的补丁。
当一个 Python 系列版本停止维护时,它将停止接收所有类型的更新,包括相关安全补丁。
在2026 年 10 月之后在 3.10 版本中发现的任何漏洞都将永远无法修复。对于个人开发者来说,这只是一个升级的温柔提醒。但对于运行在 3.10 版本上的旧系统的企业来说,这是一个合规性问题,通常会引发迁移项目。
3.10 版本于 2021 年 10 月 4 日发布,至此,其五年生命周期以最终版本完美落幕。
这是一个广受欢迎且生命周期很长的系列,它为我们带来了 X | Y 形式的联合类型、使用 match/case 进行结构化模式匹配、显式类型别名以及 zip() 函数中的可选长度检查。坦白说,模式匹配是该系列的亮点所在。
发布经理 Pablo Galindo Salgado 负责和监督 3.10 和 3.11 版本,但他的说明更像是告别信,而不是变更日志。
这五个版本都包含相同的核心修复程序,并在此基础上添加了一些特定于版本的功能。主要修复内容涵盖了你在安全资讯中经常看到的几种攻击类型。
精心构造的 tar 压缩包,如果其中包含指向符号链接的硬链接,则可能访问解压文件夹之外的文件。这就是 CVE-2026-82049。另一个类似的“离开并返回”路径遍历漏洞(CVE-2026-19672)允许类似 ../evil/../dest/sub/file 的路径名称绕过包含检查,访问中间目录。这两个漏洞目前都已修复。
此外,还修复了一个 ZIP 解压缩炸弹漏洞 (CVE-2026-15310),限制了单次读取操作解压缩的数据量,从而防止原本很小的 bzip2 或 LZMA 成员文件膨胀成占用大量内存的“怪物”。同时,也修复了一个允许 HTTPPasswordMgr 在普通 HTTP 协议下重用安全凭据的 HTTPS 凭据漏洞 (CVE-2026-15806)。
TLS 相关的工作(CVE-2026-19553)使得 `ssl.SSLContext.wrap_bio()` 验证其主机名的方式与 `wrap_socket()` 一贯的做法相同。在Python 3.13 及更高版本中,如果主机名缺失,现在会抛出 `ValueError` 异常,而不仅仅是发出警告。
还有一些额外的更新。libexpat 升级到 2.8.5,3.10.22 版本为了完善功能增加了 XML 哈希泛洪攻击的加固,3.13.16 和 3.14.8 版本则将 OpenSSL 升级到 3.5.9。需要注意的是,仅提供源代码的 3.10 到 3.12 版本并未捆绑 OpenSSL,因此只有较新的两个版本包含了 OpenSSL 的更新。
你应该怎么做
发布团队的指导特别明确:如果你还在使用 3.10 版本,请立即升级。
对于正在考虑升级时间的团队来说,3.12 和 3.13 版本提供了较长的安全窗口期,而 3.14 版本虽然是最新版本,但更新速度也最快。
Salgado也为后续工作留下了余地。他的说明指出,3.11 版本还有一年的安全修复工作要做,因此当 3.11 版本最终在 2027 年 10 月停止维护时,他很可能还会继续担任发布经理。
故事到这里就变得有意思了。
Python 有个由来已久的传统,每次发布说明的结尾都会附上一段略带奇特的科学小知识,比如 Victor Borge 那句著名的“接下来是完全不同的内容”。这次十月的版本更新延续了这一传统,可谓是首尾呼应。
Python 3.10 于 2021 年 10 月首次发布,首发文章探讨了落入史瓦西黑洞的过程。五年后,其最终版本以“铃声”(ringdown)收尾:这是合并中的黑洞在最终稳定下来时发出的引力波嗡鸣声。“我们以一次史瓦西黑洞之旅开启了 Python 3.10 的开发,”Salgado写道,“所以以黑洞作为结尾似乎也合情合理。”
不管怎么说,这是个不错的做法。维护世界上被使用广泛的语言的人,往往和当初让他们投身天体物理学的好奇心是一致的。
作者:场长
本篇文章为 @ 场长 创作并授权 21CTO 发布,未经许可,请勿转载。
内容授权事宜请您联系 webmaster@21cto.com或关注 21CTO 微信公众号。
该文观点仅代表作者本人,21CTO 平台仅提供信息存储空间服务。
请扫描二维码,使用微信支付哦。