Pythonのtarfileモジュールに深刻な脆弱性(CVE-2024-12718)

セキュリティニュース

投稿日時: 更新日時:

Pythonのtarfileモジュールに深刻な脆弱性(CVE-2024-12718)

2025年6月、Pythonの標準ライブラリ「tarfile」に新たな脆弱性(CVE-2024-12718)が報告されました。この脆弱性は、Python 3.12以降に導入されたfilterパラメータの設計不備に起因し、アーカイブファイルを展開する際に、意図したディレクトリ外のファイルに対してメタデータの変更(タイムスタンプやパーミッションの書き換え)が可能になるというものです。

脆弱性の対象バージョン

バージョン3.12以降

 Python 3.14 以降では filter=”data” がデフォルトなので注意が必要です。

パッチはリリース済みなので、アップグレードする事をお勧めします。

脆弱性の概要

この脆弱性は、Python 3.12以降に導入されたfilterパラメータの設計不備に起因し、アーカイブファイルを展開する際に、意図したディレクトリ外のファイルに対してメタデータの変更(タイムスタンプやパーミッションの書き換え)が可能になるというものです。

Python 3.12から導入されたtarfileのfilterパラメータは、安全性を高めるための新機能ですが、filter="data"filter="tar"を使用した場合、アーカイブ展開時に不正なパス指定により、以下のような事態が発生します。

  • filter="data":任意のファイルのタイムスタンプ(mtime)を変更可能

  • filter="tar":任意のファイルのアクセス権限(chmod)を変更可能

つまり、アーカイブを展開しているつもりが、全く別のディレクトリにある重要ファイル(例:/etc/shadowなど)に影響を与えてしまう恐れがあるということです。

特にPython 3.14では、filter="data"がデフォルトになっているため、無意識のうちにこの挙動に陥る危険性があります。

セキュリティが懸念される場合は、 filter=”data”またはfilter=”tar”を避け、代わりに安全なカスタム フィルターを実装してください。