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 校驗和 | 檔案大小 | Sigstore | GPG | |
|---|---|---|---|---|---|---|---|
| Gzip 壓縮的原始碼包 | 原始碼釋出版 | 38c99c7313f416dcf3238f5cf444c6c2 | 25.1 MB | .sigstore | SIG | ||
| XZ 壓縮的原始碼包 | 原始碼釋出版 | 5738c204eecc375e29751cb2176fc9cc | 18.8 MB | .sigstore | SIG | ||
