注意: 虽然 JavaScript 对于本网站不是必需的,但您与内容的互动将受到限制。请开启 JavaScript 以获得完整的体验。

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-98433socketasyncio 相关名称解析函数用于 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-100001python -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 校验和 文件大小 Sigstore GPG
Gzip 压缩的源码包 源码发布版 38c99c7313f416dcf3238f5cf444c6c2 25.1 MB .sigstore SIG
XZ 压缩的源码包 源码发布版 5738c204eecc375e29751cb2176fc9cc 18.8 MB .sigstore SIG