Python 3.9.16
发布日期: 2022 年 12 月 6 日
这是 Python 3.9 的安全版本
注意: 您正在查看的版本是 Python 3.9.16,是针对旧版 3.9 系列的安全错误修复版本。Python 3.11 现在是 Python 3 的最新功能版本系列。 在此处获取 3.11.x 的最新版本。
此版本中的安全内容
- gh-98739:将捆绑的 libexpat 更新至 2.5.0,以修复 CVE-2022-43680 (堆内存释放后使用)。
- gh-98517:移植 XKCP 修复 SHA-3 中的缓冲区溢出问题,以修复 CVE-2022-37454。
- gh-98433:
socket
或asyncio
相关名称解析函数在 DNS 主机名上使用的 IDNA 编解码器解码器不再涉及二次算法来修复 CVE-2022-45061。如果解码涉及双向字符的超长规范外的主机名,则可以防止潜在的 CPU 拒绝服务。某些协议(例如urllib
http 3xx 重定向)可能会允许攻击者提供此类名称。 - gh-97514:在 Linux 上,
multiprocessing
模块恢复使用文件系统支持的 Unix 域套接字与 forkserver 进程进行通信,而不是 Linux 抽象套接字命名空间。仅选择使用“forkserver”启动方法的代码会受到影响。这样可以防止 Linux CVE-2022-42919(潜在的权限提升),因为抽象套接字没有权限,并且可能允许系统上同一网络命名空间(通常是整个系统)中的任何用户将代码注入到multiprocessing
forkserver 进程中。这是一个潜在的权限提升。基于文件系统的套接字权限将此限制为 forkserver 进程用户,这在 Python 3.8 及更早版本中是默认设置。 - gh-68966:已弃用的 mailcap 模块现在拒绝将不安全的文本(文件名、MIME 类型、参数)注入到 shell 命令中,以解决 CVE-2015-20107。它会警告并且表现得好像没有找到匹配项(对于测试命令,则表现得好像测试失败),而不是使用此类文本。
- gh-100001:
python -m http.server
不再允许将垃圾请求中发送的终端控制字符打印到 stderr 服务器日志中。 - gh-87604:避免通过
gc
模块发布活动解释器审核挂钩的列表。
没有安装程序
根据 PEP 596 中指定的发布日历,Python 3.9 现在处于其生命周期的“仅安全修复”阶段:3.9 分支仅接受安全修复,并且这些修复仅以源代码形式不定期发布,直到 2025 年 10 月。Python 3.9 不再接收常规的错误修复,并且不再为其提供二进制安装程序。Python 3.9.13 是最后一个具有二进制安装程序的 Python 3.9 完整错误修复版本。
文件
版本 | 操作系统 | 描述 | MD5 校验和 | 文件大小 | GPG | Sigstore | |
---|---|---|---|---|---|---|---|
Gzipped 源代码 tarball | 源代码发布 | 38c99c7313f416dcf3238f5cf444c6c2 | 25.1 MB | SIG | .sigstore | ||
XZ 压缩源代码 tarball | 源代码发布 | 5738c204eecc375e29751cb2176fc9cc | 18.8 MB | SIG | .sigstore |