Python 標準モジュール「tarfile」に高リスク脆弱性-無限ループによるDoS攻撃の恐れ(CVE-2025-8194)

セキュリティニュース

投稿日時: 更新日時:

Python 標準モジュール「tarfile」に高リスク脆弱性-無限ループによるDoS攻撃の恐れ(CVE-2025-8194)

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/