2025年7月28日、Pythonの標準ライブラリ「tarfile」モジュールに深刻な脆弱性(CVE-2025-8194)が発見されました。この問題により、悪意ある .tar アーカイブを処理すると、アプリケーションが無限ループに陥り、サービス拒否(DoS)状態を引き起こす危険性があります。
脆弱性の対象バージョン
この脆弱性はPython 3.14.0未満の全バージョンに影響します。
標準のtarfileモジュールに依存しているアプリケーションやライブラリ全体が対象であり、WebアプリケーションやCI/CDツールなどでアーカイブ展開処理を行っている場合には特に注意が必要です。
脆弱性の対象バージョン
Python 3.14.0以降
脆弱性の概要
CVE-2025-8194は、「tarfile」モジュールにおける TarFile の抽出・列挙処理で、アーカイブ内のメタデータに負のオフセットが含まれている場合でも、Pythonがそれを検出せずに処理を継続してしまうことに起因します。
このような異常なオフセット値を持つファイルを処理すると、無限ループやスレッドのデッドロックが発生し、以下のような被害が予想されます:
-
アプリケーションのフリーズ
-
システムの高負荷
-
リソースの枯渇
-
サービス拒否(DoS)
一時的な対処法(ワークアラウンド)
Python 3.14.0以降ではすでに修正が施されていますが、それ以前のバージョンを利用している開発者や運用者は、次のコードをアプリケーションに組み込むことで緊急的な防御が可能です
import tarfile
def _block_patched(self, count):
if count < 0:
raise tarfile.InvalidHeaderError("invalid offset")
return _block_patched._orig_block(self, count)
_block_patched._orig_block = tarfile.TarInfo._block
tarfile.TarInfo._block = _block_patched
このパッチは、負のオフセットが検出された際に InvalidHeaderError を発生させることで、異常なファイルの処理を即座に中断します。
参照
https://mail.python.org/archives/list/[email protected]/thread/ZULLF3IZ726XP5EY7XJ7YIN3K5MDYR2D/








