Python Software Foundationは4月2日(米国時間)、プログラミング言語「Python」の最新版となるPython 3.9.3および3.8.9をリリースした。その後、3.9.3は意図しない非互換性が含まれていることが発覚したためリコールされ、同4月4日に修正版のPython 3.9.4がリリースされた。これらは複数の脆弱性を修正したセキュリティリリースに当たるため、すべてのユーザーに対してアップデートが推奨されている。

  • Python 3.9.4リリースノート

    Python 3.9.4リリースノート

Python 3.9.3/3.9.4および3.8.9における主な変更点は、Python Insiderの次のエントリに詳しくまとめられている。

このリリースに含まれるセキュリティ上の主な修正点としては、以下が挙げられている。

  • bpo-43631:CI、macOS版およびWindows版のインストーラーにおいて、OpenSSLがCVE-2021-3449およびCVE-2021-3450の修正を含む1.1.1kにアップデートされた
  • bpo-42988:CVE-2021-3426のディレクトリトラバーサルの脆弱性を含むpydocモジュールのgetfile機能が削除された
  • bpo-43285:ftplibが、デフォルトでPASVコマンドに応答してサーバーから返されたIPアドレス値を信用しないように変更された
  • bpo-43439:gc.get_objects()、gc.get_referrers()およびgc.get_referents()に監査用フックが追加された

Python 3.9.4および3.8.9は次のページよりダウンロードすることができる。

Python 3.9系は通常であれば約2カ月に1度メンテナンスリリースが行われるスケジュールになっており、3.9.3はもともとは2021年5月3日にリリースされる計画だった。今回セキュリティリリースが差し込まれたが、開発チームは当初のリリーススケジュールを維持する方針を決めたという。すなわち、次期バージョンの3.9.5は当初の予定通り5月3日にリリースされる。

Python 3.8系は次のバージョンが最後のメンテナンスリリースとなるが、これも3.9系と同様に当初のスケジュールを維持して、5月3日に3.8.10がリリースされる予定となった。3.8系については、3.8.10以降はセキュリティ修正のためのソースリリースのみに移行される。リリーススケジュールについての詳細は下記にまとめられている。