注意: 虽然 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 校验和 文件大小 GPG Sigstore
Gzipped 源代码 tarball 源代码发布 38c99c7313f416dcf3238f5cf444c6c2 25.1 MB SIG .sigstore
XZ 压缩源代码 tarball 源代码发布 5738c204eecc375e29751cb2176fc9cc 18.8 MB SIG .sigstore