概要
Python(CPython)のtarfileモジュールに、アーカイブの誤解釈を引き起こす脆弱性が発見されました(CWE-20, CWE-74, CWE-434)。
tarfileモジュールは、マルチブロックメンバー(GNUTYPE_LONGNAMEやGNUTYPE_LONGLINKなど)の処理中であっても、AREGTYPE(\x00)ブロックをDIRTYPEへ正規化してしまいます。これにより、細工されたtarアーカイブを処理した際に、他のtar実装と異なる解釈が発生し、意図しないパスへのファイル配置(パストラバーサル類似の挙動)が起こる可能性があります。
CI/CDパイプライン、デプロイスクリプト、外部からtarアーカイブを受け取るサービスなど、信頼できないtarファイルを処理する環境での影響が懸念されます。
CVSSベクトル
| 項目 | 値 |
|---|---|
| スコア | 9.8 (Critical) |
| CWE | CWE-20 (不適切な入力検証), CWE-74 (インジェクション), CWE-434 (危険なタイプのファイルのアップロード) |
| 攻撃元区分 | ネットワーク(AV:N) |
| 攻撃の複雑さ | 低(AC:L) |
| 必要な権限 | 不要(PR:N) |
| ユーザー関与 | 不要(UI:N) |
| スコープ | 変更なし(S:U) |
| 機密性への影響 | 高(C:H) |
| 完全性への影響 | 高(I:H) |
| 可用性への影響 | 高(A:H) |
影響を受けるソフトウェア
| 製品 | ベンダー | 影響バージョン |
|---|---|---|
| Python CPython | Python Software Foundation | 修正コミット以前の複数バージョン |
修正は複数のCPythonバージョン向けにバックポートされています。使用しているPythonのリリースノートを確認してください。
修正バージョンと回避策
修正: 以下のCPythonコミットで修正されています。ディストリビューションや環境に応じた修正済みPythonバージョンへのアップデートを推奨します。
修正コミット(一部):
42d754e34c06e57ad6b8e7f92f32af679912d8ab72dde1016493c52abe857fc4a7bf6c40138b41147ad3093d76a748af55bdb1d2e8aad3638163b0179a23b753552afa28e3a2f4d8863572fc66479406ae99fe3a33b43e303a05f012815cef60b611a9c7
回避策(暫定):
- 信頼できないソースからのtarアーカイブの処理を避ける
- tarファイルの展開前に
tarfile.is_tarfile()および内容検証を実施する - サンドボックス環境でtarの展開処理を行う
関連リンク
データソース: NVD (NIST), GitHub Advisory Database AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
