2025年6月3日、Pythonの開発チームは、複数のメジャーバージョンにわたる最新の修正リリースを一斉に公開しました。
今回のリリースは、当初 Python 3.13.4 のみの公開が予定されていましたが、重要度の高いセキュリティ脆弱性(CVE)への対応が必要となったため、急遽 5つのバージョンが同時に更新される異例の「リリースパーティ」となりました。
本記事では、修正された脆弱性の詳細や、各バージョンにおける変更点の概要について解説します。
セキュリティ修正の重要ポイント
今回の同時リリースにおいて、最も注目すべきは tarfile モジュールに関する複数の脆弱性修正です。
開発チームは、セキュリティ担当のエンジニアを含め、総力を挙げてこれらの問題に対処しました。
tarfileモジュールの脆弱性対策
tarfile モジュールにおいて、抽出フィルタ (filter="data" および filter="tar") をバイパスできてしまう問題が修正されました。
細工されたシンボリックリンクやハードリンクを使用することで、制限を回避してファイルを展開されるリスクがありました。
修正の対象となった主なCVEは以下の通りです。
| 識別番号 | 内容の概要 |
|---|---|
| CVE-2024-12718 | 抽出フィルタのバイパスに関する問題 |
| CVE-2025-4138 | シンボリックリンクを用いた検証回避 |
| CVE-2025-4330 | 特定条件下でのフィルタリング不備 |
| CVE-2025-4517 | ハードリンクによるセキュリティ制限の無効化 |
その他の重要な修正
tarfile 以外にも、システムのリソース消費やメモリ安全性に関わる以下の修正が含まれています。
- ipaddressモジュールのDoS対策:極端に長いIPv6アドレスを処理する際に、過剰なメモリ消費を引き起こす問題が修正されました。
- unicode-escapeのuse-after-free:特定のデコード処理において、メモリの解放後使用 (use-after-free) が発生する脆弱性が修正されました。
各バージョンのリリース内容
今回のアップデートでは、最新の 3.13 系統から、すでにセキュリティ修正のみのフェーズに入っている 3.9 系統まで幅広くカバーされています。
Python 3.13.4 の変更点
最新のメンテナンスリリースである Python 3.13.4 では、上記のセキュリティ修正に加え、300件以上のバグ修正、ビルドの改善、ドキュメントの更新が含まれています。
安定性が大幅に向上しているため、3.13系を利用中のユーザーは早急な移行が推奨されます。
旧バージョン (3.12 ~ 3.9) の対応
Python 3.12.11、3.11.13、3.10.18、および 3.9.23 が公開されました。
これらは主にセキュリティ修正を目的としたリリースです。
特に Python 3.9.23 では、メールメッセージの整形時における引用文字列の処理不備が修正されており、ヘッダーの偽装を防ぐための対策が講じられています。
使用している環境のバージョンを確認するには、以下のコードを実行してください。
import sys
# 現在のPythonバージョンと詳細情報を出力します
print(f"Python Version: {sys.version}")
# セキュリティ修正済みのバージョンかどうかを確認する目安になります
if sys.version_info >= (3, 13, 4):
print("Python 3.13.4以降を使用しています。")
Python Version: 3.13.4 (main, Jun 3 2025, 12:00:00) [GCC 10.2.1]
Python 3.13.4以降を使用しています。
まとめ
今回の同時リリースは、Pythonエコシステムの安全性を維持するための極めて重要なステップです。
特に tarfile や ipaddress といった標準ライブラリの脆弱性は、多くのアプリケーションに影響を及ぼす可能性があります。
利用者は、公式サイト python.org から自身の環境に合った最新バージョンを入手し、速やかにアップデートを適用することを強く推奨します。
開発チームは「Stay safe and upgrade!(安全のためにアップグレードを!)」と呼びかけています。
