SCW アイコン
ヒーロー背景(区切りなし)
ブログ

Pythonのtarfileモジュールにおけるパス通過バグの理解

ローラ・ベルヘイデ
2022年10月03日 掲載
最終更新日: 2026年3月6日

最近、セキュリティ研究者チームがPythonのtarファイル抽出機能に15年前のバグを発見したと発表した。この脆弱性は2007年に初めて報告され、CVE-2007-4559として追跡されていた。 Pythonの公式ドキュメントには注記が追加されたものの、バグ自体は修正されなかった。

この脆弱性は数千ものソフトウェアプロジェクトに影響を及ぼす可能性がありますが、多くの人々が現状や対処法を知りません。だからこそ、ここ Secure Code Warriorでは、この脆弱性の悪用を自らシミュレートし、その影響を直接確認できる機会を提供しています。この永続的なバグのメカニズムに関する実践的な経験を積むことで、アプリケーションをより効果的に保護できるようになります!

今すぐミッションシミュレーションをお試しください。

脆弱性:tarファイル抽出時のパス横断

パストラベリングは、ユーザー入力の検証不足によりファイルパスが生成される際に発生し、攻撃者がファイルへのアクセスや置換、さらには任意のコード実行を可能にします。

Pythonのtarモジュールに脆弱性が存在します。 tarファイル(テープアーカイブ)は単一のファイル(アーカイブと呼ばれる)です。複数のファイルとそのメタデータをまとめ、通常は.tar. gzまたは.tgz拡張子で識別されます。アーカイブの各メンバーは、ファイル名、変更日時、所有者などのメタデータを含むスターオブジェクトで表現されます。

リスクは、アーカイブが再度抽出される可能性に起因する。

抽出時には、各メンバーが書き込むためのパスが必要です。この場所は、ベースパスにファイル名を結合することで作成されます:

Pythonからの抜粋 Tarfile.py


このパスが作成されると、それは tarfile.extract または tarfile.extractall 関数に渡され、抽出が実行されます:

Pythonからの抜粋 Tarfile.py

ここでの問題は、ファイル名の検証が不十分であることです。攻撃者はファイル名を変更し、パスを横断する文字(例:ドットスラッシュ(../))を含めることで、ファイルを本来あるべきディレクトリから移動させ、任意のファイルを上書きする可能性があります。これにより、遠隔からのコード実行につながる恐れがあり、悪用される危険性が高い脆弱性です。

この脆弱性は、特定方法を知っていれば他のシナリオでも現れます。Pythonによるtarファイルの処理に加え、zipファイルの抽出時にも存在します。これは「Zip Slip脆弱性」など別名で知られることもあり、Python以外の言語でも発生しています!

ミッションへのリンク 

リスクを軽減するにはどうすればよいですか?

この脆弱性は長年知られていますが、Pythonの開発陣は抽出機能が意図した動作をしていると認識しています。この場合、「これはバグではなく機能だ」と主張する者もいるでしょう。残念ながら、開発者は未知のソースからのtarやzipファイルの抽出を常に回避できるわけではありません。 安全な開発慣行の一環として、パストラバーサル関連の脆弱性を回避するためには、開発者自身が信頼できない入力をクリーンアップする責任を負う。

Pythonで安全なコードを書き、リスクを軽減する方法について詳しく知りたいですか?

無料のPythonチャレンジをお試しください。

無料のコーディングガイドラインをさらに入手したい場合は、セキュアコーディングコーチを参照して、安全なコーディング手法の最新情報を把握しましょう。

リソースを表示する
リソースを表示する

最近、セキュリティ研究者チームがPythonのtarファイル抽出機能に15年前のバグを発見したと発表した。この脆弱性は2007年に初めて報告され、CVE-2007-4559として特定されていた。 Pythonの公式ドキュメントには注記が追加されたものの、バグ自体は修正されなかった。

さらに詳しく知りたいですか?

もっと詳しく

Secure Code Warrior ソフトウェア開発ライフサイクル全体を通じてコードのセキュリティを確保し、サイバーセキュリティを最優先事項とする文化を構築するために、組織をSecure Code Warrior 。アプリケーションセキュリティ担当者、開発者、情報セキュリティ責任者、その他セキュリティに関わるあらゆる方々のために、当社は組織が非セキュアなコードに関連するリスクを軽減するお手伝いをいたします。

デモを予約する
共有する:
リンクトインのブランドソーシャルx ロゴ
作者
ローラ・ベルヘイデ
2022年10月03日発行

Laura Verheyde est une développeuse de logiciels chez Secure Code Warrior qui se concentre sur la recherche de vulnérabilités et la création de contenu pour les missions et les laboratoires de codage.

共有する:
リンクトインのブランドソーシャルx ロゴ

最近、セキュリティ研究者チームがPythonのtarファイル抽出機能に15年前のバグを発見したと発表した。この脆弱性は2007年に初めて報告され、CVE-2007-4559として追跡されていた。 Pythonの公式ドキュメントには注記が追加されたものの、バグ自体は修正されなかった。

この脆弱性は数千ものソフトウェアプロジェクトに影響を及ぼす可能性がありますが、多くの人々が現状や対処法を知りません。だからこそ、ここ Secure Code Warriorでは、この脆弱性の悪用を自らシミュレートし、その影響を直接確認できる機会を提供しています。この永続的なバグのメカニズムに関する実践的な経験を積むことで、アプリケーションをより効果的に保護できるようになります!

今すぐミッションシミュレーションをお試しください。

脆弱性:tarファイル抽出時のパス横断

パストラベリングは、ユーザー入力の検証不足によりファイルパスが生成される際に発生し、攻撃者がファイルへのアクセスや置換、さらには任意のコード実行を可能にします。

Pythonのtarモジュールに脆弱性が存在します。 tarファイル(テープアーカイブ)は単一のファイル(アーカイブと呼ばれる)です。複数のファイルとそのメタデータをまとめ、通常は.tar. gzまたは.tgz拡張子で識別されます。アーカイブの各メンバーは、ファイル名、変更日時、所有者などのメタデータを含むスターオブジェクトで表現されます。

リスクは、アーカイブが再度抽出される可能性に起因する。

抽出時には、各メンバーが書き込むためのパスが必要です。この場所は、ベースパスにファイル名を結合することで作成されます:

Pythonからの抜粋 Tarfile.py


このパスが作成されると、それは tarfile.extract または tarfile.extractall 関数に渡され、抽出が実行されます:

Pythonからの抜粋 Tarfile.py

ここでの問題は、ファイル名の検証が不十分であることです。攻撃者はファイル名を変更し、パスを横断する文字(例:ドットスラッシュ(../))を含めることで、ファイルを本来あるべきディレクトリから移動させ、任意のファイルを上書きする可能性があります。これにより、遠隔からのコード実行につながる恐れがあり、悪用される危険性が高い脆弱性です。

この脆弱性は、特定方法を知っていれば他のシナリオでも現れます。Pythonによるtarファイルの処理に加え、zipファイルの抽出時にも存在します。これは「Zip Slip脆弱性」など別名で知られることもあり、Python以外の言語でも発生しています!

ミッションへのリンク 

リスクを軽減するにはどうすればよいですか?

この脆弱性は長年知られていますが、Pythonの開発陣は抽出機能が意図した動作をしていると認識しています。この場合、「これはバグではなく機能だ」と主張する者もいるでしょう。残念ながら、開発者は未知のソースからのtarやzipファイルの抽出を常に回避できるわけではありません。 安全な開発慣行の一環として、パストラバーサル関連の脆弱性を回避するためには、開発者自身が信頼できない入力をクリーンアップする責任を負う。

Pythonで安全なコードを書き、リスクを軽減する方法について詳しく知りたいですか?

無料のPythonチャレンジをお試しください。

無料のコーディングガイドラインをさらに入手したい場合は、セキュアコーディングコーチを参照して、安全なコーディング手法の最新情報を把握しましょう。

リソースを表示する
リソースを表示する

以下のフォームに記入してレポートをダウンロードしてください

当社製品および/またはセキュアコーディング関連の情報をお送りするにあたり、ご承諾を頂戴できれば幸いです。お客様の個人情報は常に細心の注意をもって取り扱い、マーケティング目的で他社に販売することは一切ございません。

提出する
SCW成功アイコン
SCWエラーアイコン
フォームを送信するには、Analyticsクッキーを有効にしてください。完了後は再度無効化しても構いません。

最近、セキュリティ研究者チームがPythonのtarファイル抽出機能に15年前のバグを発見したと発表した。この脆弱性は2007年に初めて報告され、CVE-2007-4559として追跡されていた。 Pythonの公式ドキュメントには注記が追加されたものの、バグ自体は修正されなかった。

この脆弱性は数千ものソフトウェアプロジェクトに影響を及ぼす可能性がありますが、多くの人々が現状や対処法を知りません。だからこそ、ここ Secure Code Warriorでは、この脆弱性の悪用を自らシミュレートし、その影響を直接確認できる機会を提供しています。この永続的なバグのメカニズムに関する実践的な経験を積むことで、アプリケーションをより効果的に保護できるようになります!

今すぐミッションシミュレーションをお試しください。

脆弱性:tarファイル抽出時のパス横断

パストラベリングは、ユーザー入力の検証不足によりファイルパスが生成される際に発生し、攻撃者がファイルへのアクセスや置換、さらには任意のコード実行を可能にします。

Pythonのtarモジュールに脆弱性が存在します。 tarファイル(テープアーカイブ)は単一のファイル(アーカイブと呼ばれる)です。複数のファイルとそのメタデータをまとめ、通常は.tar. gzまたは.tgz拡張子で識別されます。アーカイブの各メンバーは、ファイル名、変更日時、所有者などのメタデータを含むスターオブジェクトで表現されます。

リスクは、アーカイブが再度抽出される可能性に起因する。

抽出時には、各メンバーが書き込むためのパスが必要です。この場所は、ベースパスにファイル名を結合することで作成されます:

Pythonからの抜粋 Tarfile.py


このパスが作成されると、それは tarfile.extract または tarfile.extractall 関数に渡され、抽出が実行されます:

Pythonからの抜粋 Tarfile.py

ここでの問題は、ファイル名の検証が不十分であることです。攻撃者はファイル名を変更し、パスを横断する文字(例:ドットスラッシュ(../))を含めることで、ファイルを本来あるべきディレクトリから移動させ、任意のファイルを上書きする可能性があります。これにより、遠隔からのコード実行につながる恐れがあり、悪用される危険性が高い脆弱性です。

この脆弱性は、特定方法を知っていれば他のシナリオでも現れます。Pythonによるtarファイルの処理に加え、zipファイルの抽出時にも存在します。これは「Zip Slip脆弱性」など別名で知られることもあり、Python以外の言語でも発生しています!

ミッションへのリンク 

リスクを軽減するにはどうすればよいですか?

この脆弱性は長年知られていますが、Pythonの開発陣は抽出機能が意図した動作をしていると認識しています。この場合、「これはバグではなく機能だ」と主張する者もいるでしょう。残念ながら、開発者は未知のソースからのtarやzipファイルの抽出を常に回避できるわけではありません。 安全な開発慣行の一環として、パストラバーサル関連の脆弱性を回避するためには、開発者自身が信頼できない入力をクリーンアップする責任を負う。

Pythonで安全なコードを書き、リスクを軽減する方法について詳しく知りたいですか?

無料のPythonチャレンジをお試しください。

無料のコーディングガイドラインをさらに入手したい場合は、セキュアコーディングコーチを参照して、安全なコーディング手法の最新情報を把握しましょう。

ウェビナーを表示する
始めましょう
もっと詳しく

以下のリンクをクリックして、このリソースのPDFをダウンロードしてください。

Secure Code Warrior ソフトウェア開発ライフサイクル全体を通じてコードのセキュリティを確保し、サイバーセキュリティを最優先事項とする文化を構築するために、組織をSecure Code Warrior 。アプリケーションセキュリティ担当者、開発者、情報セキュリティ責任者、その他セキュリティに関わるあらゆる方々のために、当社は組織が非セキュアなコードに関連するリスクを軽減するお手伝いをいたします。

レポートを表示するデモを予約する
PDFをダウンロード
リソースを表示する
共有する:
リンクトインのブランドソーシャルx ロゴ
さらに詳しく知りたいですか?

共有する:
リンクトインのブランドソーシャルx ロゴ
作者
ローラ・ベルヘイデ
2022年10月03日発行

Laura Verheyde est une développeuse de logiciels chez Secure Code Warrior qui se concentre sur la recherche de vulnérabilités et la création de contenu pour les missions et les laboratoires de codage.

共有する:
リンクトインのブランドソーシャルx ロゴ

最近、セキュリティ研究者チームがPythonのtarファイル抽出機能に15年前のバグを発見したと発表した。この脆弱性は2007年に初めて報告され、CVE-2007-4559として追跡されていた。 Pythonの公式ドキュメントには注記が追加されたものの、バグ自体は修正されなかった。

この脆弱性は数千ものソフトウェアプロジェクトに影響を及ぼす可能性がありますが、多くの人々が現状や対処法を知りません。だからこそ、ここ Secure Code Warriorでは、この脆弱性の悪用を自らシミュレートし、その影響を直接確認できる機会を提供しています。この永続的なバグのメカニズムに関する実践的な経験を積むことで、アプリケーションをより効果的に保護できるようになります!

今すぐミッションシミュレーションをお試しください。

脆弱性:tarファイル抽出時のパス横断

パストラベリングは、ユーザー入力の検証不足によりファイルパスが生成される際に発生し、攻撃者がファイルへのアクセスや置換、さらには任意のコード実行を可能にします。

Pythonのtarモジュールに脆弱性が存在します。 tarファイル(テープアーカイブ)は単一のファイル(アーカイブと呼ばれる)です。複数のファイルとそのメタデータをまとめ、通常は.tar. gzまたは.tgz拡張子で識別されます。アーカイブの各メンバーは、ファイル名、変更日時、所有者などのメタデータを含むスターオブジェクトで表現されます。

リスクは、アーカイブが再度抽出される可能性に起因する。

抽出時には、各メンバーが書き込むためのパスが必要です。この場所は、ベースパスにファイル名を結合することで作成されます:

Pythonからの抜粋 Tarfile.py


このパスが作成されると、それは tarfile.extract または tarfile.extractall 関数に渡され、抽出が実行されます:

Pythonからの抜粋 Tarfile.py

ここでの問題は、ファイル名の検証が不十分であることです。攻撃者はファイル名を変更し、パスを横断する文字(例:ドットスラッシュ(../))を含めることで、ファイルを本来あるべきディレクトリから移動させ、任意のファイルを上書きする可能性があります。これにより、遠隔からのコード実行につながる恐れがあり、悪用される危険性が高い脆弱性です。

この脆弱性は、特定方法を知っていれば他のシナリオでも現れます。Pythonによるtarファイルの処理に加え、zipファイルの抽出時にも存在します。これは「Zip Slip脆弱性」など別名で知られることもあり、Python以外の言語でも発生しています!

ミッションへのリンク 

リスクを軽減するにはどうすればよいですか?

この脆弱性は長年知られていますが、Pythonの開発陣は抽出機能が意図した動作をしていると認識しています。この場合、「これはバグではなく機能だ」と主張する者もいるでしょう。残念ながら、開発者は未知のソースからのtarやzipファイルの抽出を常に回避できるわけではありません。 安全な開発慣行の一環として、パストラバーサル関連の脆弱性を回避するためには、開発者自身が信頼できない入力をクリーンアップする責任を負う。

Pythonで安全なコードを書き、リスクを軽減する方法について詳しく知りたいですか?

無料のPythonチャレンジをお試しください。

無料のコーディングガイドラインをさらに入手したい場合は、セキュアコーディングコーチを参照して、安全なコーディング手法の最新情報を把握しましょう。

目次

PDFをダウンロード
リソースを表示する
さらに詳しく知りたいですか?

もっと詳しく

Secure Code Warrior ソフトウェア開発ライフサイクル全体を通じてコードのセキュリティを確保し、サイバーセキュリティを最優先事項とする文化を構築するために、組織をSecure Code Warrior 。アプリケーションセキュリティ担当者、開発者、情報セキュリティ責任者、その他セキュリティに関わるあらゆる方々のために、当社は組織が非セキュアなコードに関連するリスクを軽減するお手伝いをいたします。

デモを予約するダウンロード
共有する:
リンクトインのブランドソーシャルx ロゴ
リソースセンター

はじめの一歩を踏み出すためのリソース

投稿はありません
リソースセンター

はじめの一歩を踏み出すためのリソース

投稿はありません