ヒーロー背景(区切りなし)
ブログ

Pythonのtarfileモジュールにおけるパス横断エラーを理解する

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

最近、セキュリティ研究者のチームが、Pythonのtarファイル抽出機能における15年前のバグを発見したと発表しました。この脆弱性は2007年に初めて公開され、CVE-2007-4559として追跡されました。Pythonの公式ドキュメントに注意書きが追加されましたが、バグそのものは未パッチのままでした。

この脆弱性は、何千ものソフトウェアプロジェクトに影響を与える可能性がありますが、多くの人がこの状況や対処法についてよく知らないままです。そのため、このたび Secure Code Warriorこの脆弱性がどのような影響を及ぼすかを実際に体験し、この根強いバグのメカニズムを理解することで、あなたのアプリケーションをより良く保護することができます。

今すぐシミュレーションミッションを体験してください。

脆弱性:tarファイル抽出時のパストラバーサル

パスまたはディレクトリのトラバーサルは、未分析のユーザー入力がファイルパスの構築に使用された場合に発生し、攻撃者がファイルへのアクセスや上書き、さらには任意のコードを実行することを可能にします。 

この脆弱性は、Pythonのtarfileモジュールに存在します。tar(テープアーカイブ)ファイルは、アーカイブと呼ばれる1つのファイルです。これは、複数のファイルをそのメタデータとともにパッケージ化したもので、通常、.tar.gzまたは.tgzという拡張子を持っていることで認識されます。アーカイブ内の各メンバーはTarInfoオブジェクトで表すことができ、ファイル名、変更時間、所有者などのメタデータを含んでいます。

リスクは、アーカイブが再び取り出される可能性があることに起因する。

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

Pythonのスニペット のスニペットです。


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

Pythonのスニペット のスニペットです。

ここで問題となるのは、ファイル名のサニタイズが行われていないことです。攻撃者は、ドット・スラッシュ(../)のようなパス・トラバーサル文字を含むようにファイル名を変更し、ファイルが意図したディレクトリの外にトラバースして、任意のファイルを上書きすることができます。これは最終的にリモートでのコード実行につながり、悪用される可能性があります。 

この脆弱性は、特定する方法を知っていれば、他のシナリオでも出現します。Python の tar ファイルの取り扱いに加えて、zip ファイルの抽出にも脆弱性が存在します。これは、Python 以外の言語でも顕在化しているzip slip 脆弱性のような別の名前で知られているかもしれません!

ミッションへのリンク 

リスクを軽減する方法は?

この脆弱性は何年も前から知られていたにもかかわらず、Pythonのメンテナは、抽出機能が想定通りに動作していると考えています。この場合、"バグではなく、機能だ "と言う人もいるかもしれません。残念ながら、開発者は未知のソースからtarやzipファイルを展開することを常に避けることはできません。安全な開発手法の一部として、パストラバーサル脆弱性を防ぐために信頼できない入力をサニタイズすることは、開発者次第です。

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

Pythonの課題を無料でお試しいただけます。

コーディングガイドラインを無料で入手したい場合は、Secure Code Coachをチェックして、セキュアコーディングの実践に役立ててください。

リソースを表示
リソースを表示

最近、セキュリティ研究者チームがPythonのTardatei抽出関数に15年間存在していた欠陥を発見したと発表した。この脆弱性は2007年に初めて発見され、CVE-2007-4559として登録された。公式Pythonドキュメントには注意書きが追加されたが、欠陥自体は修正されなかった。

もっと知りたいですか?

もっと詳しく

Secure Code Warrior 、ソフトウェア開発サイクル全体を通じてコードの安全性を確保し、サイバーセキュリティを最優先とする文化を構築するため、貴社をSecure Code Warrior 。アプリセキュリティ管理者、開発者、CISO、あるいはセキュリティに関わるあらゆる立場の方々に対し、当社が貴社のビジネスにおける不安全なコードに関連するリスクの低減を支援します。

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

Laura Verheyde ist Softwareentwicklerin bei Secure Code Warrior und konzentriert sich auf die Erforschung von Sicherheitslücken und die Erstellung von Inhalten für Missions und Coding Labs.

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

最近、セキュリティ研究者のチームが、Pythonのtarファイル抽出機能における15年前のバグを発見したと発表しました。この脆弱性は2007年に初めて公開され、CVE-2007-4559として追跡されました。Pythonの公式ドキュメントに注意書きが追加されましたが、バグそのものは未パッチのままでした。

この脆弱性は、何千ものソフトウェアプロジェクトに影響を与える可能性がありますが、多くの人がこの状況や対処法についてよく知らないままです。そのため、このたび Secure Code Warriorこの脆弱性がどのような影響を及ぼすかを実際に体験し、この根強いバグのメカニズムを理解することで、あなたのアプリケーションをより良く保護することができます。

今すぐシミュレーションミッションを体験してください。

脆弱性:tarファイル抽出時のパストラバーサル

パスまたはディレクトリのトラバーサルは、未分析のユーザー入力がファイルパスの構築に使用された場合に発生し、攻撃者がファイルへのアクセスや上書き、さらには任意のコードを実行することを可能にします。 

この脆弱性は、Pythonのtarfileモジュールに存在します。tar(テープアーカイブ)ファイルは、アーカイブと呼ばれる1つのファイルです。これは、複数のファイルをそのメタデータとともにパッケージ化したもので、通常、.tar.gzまたは.tgzという拡張子を持っていることで認識されます。アーカイブ内の各メンバーはTarInfoオブジェクトで表すことができ、ファイル名、変更時間、所有者などのメタデータを含んでいます。

リスクは、アーカイブが再び取り出される可能性があることに起因する。

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

Pythonのスニペット のスニペットです。


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

Pythonのスニペット のスニペットです。

ここで問題となるのは、ファイル名のサニタイズが行われていないことです。攻撃者は、ドット・スラッシュ(../)のようなパス・トラバーサル文字を含むようにファイル名を変更し、ファイルが意図したディレクトリの外にトラバースして、任意のファイルを上書きすることができます。これは最終的にリモートでのコード実行につながり、悪用される可能性があります。 

この脆弱性は、特定する方法を知っていれば、他のシナリオでも出現します。Python の tar ファイルの取り扱いに加えて、zip ファイルの抽出にも脆弱性が存在します。これは、Python 以外の言語でも顕在化しているzip slip 脆弱性のような別の名前で知られているかもしれません!

ミッションへのリンク 

リスクを軽減する方法は?

この脆弱性は何年も前から知られていたにもかかわらず、Pythonのメンテナは、抽出機能が想定通りに動作していると考えています。この場合、"バグではなく、機能だ "と言う人もいるかもしれません。残念ながら、開発者は未知のソースからtarやzipファイルを展開することを常に避けることはできません。安全な開発手法の一部として、パストラバーサル脆弱性を防ぐために信頼できない入力をサニタイズすることは、開発者次第です。

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

Pythonの課題を無料でお試しいただけます。

コーディングガイドラインを無料で入手したい場合は、Secure Code Coachをチェックして、セキュアコーディングの実践に役立ててください。

リソースを表示
リソースを表示

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

当社製品および/またはセキュアコーディングに関連する情報について、お客様にご案内させていただくことをお許しください。お客様の個人情報は常に細心の注意をもって取り扱い、マーケティング目的で他社に販売することは一切ありません。

提出
SCW アイコン
SCWエラーアイコン
フォームを送信するには、「アナリティクス」クッキーを有効にしてください。完了後、いつでも無効に戻せます。

最近、セキュリティ研究者のチームが、Pythonのtarファイル抽出機能における15年前のバグを発見したと発表しました。この脆弱性は2007年に初めて公開され、CVE-2007-4559として追跡されました。Pythonの公式ドキュメントに注意書きが追加されましたが、バグそのものは未パッチのままでした。

この脆弱性は、何千ものソフトウェアプロジェクトに影響を与える可能性がありますが、多くの人がこの状況や対処法についてよく知らないままです。そのため、このたび Secure Code Warriorこの脆弱性がどのような影響を及ぼすかを実際に体験し、この根強いバグのメカニズムを理解することで、あなたのアプリケーションをより良く保護することができます。

今すぐシミュレーションミッションを体験してください。

脆弱性:tarファイル抽出時のパストラバーサル

パスまたはディレクトリのトラバーサルは、未分析のユーザー入力がファイルパスの構築に使用された場合に発生し、攻撃者がファイルへのアクセスや上書き、さらには任意のコードを実行することを可能にします。 

この脆弱性は、Pythonのtarfileモジュールに存在します。tar(テープアーカイブ)ファイルは、アーカイブと呼ばれる1つのファイルです。これは、複数のファイルをそのメタデータとともにパッケージ化したもので、通常、.tar.gzまたは.tgzという拡張子を持っていることで認識されます。アーカイブ内の各メンバーはTarInfoオブジェクトで表すことができ、ファイル名、変更時間、所有者などのメタデータを含んでいます。

リスクは、アーカイブが再び取り出される可能性があることに起因する。

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

Pythonのスニペット のスニペットです。


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

Pythonのスニペット のスニペットです。

ここで問題となるのは、ファイル名のサニタイズが行われていないことです。攻撃者は、ドット・スラッシュ(../)のようなパス・トラバーサル文字を含むようにファイル名を変更し、ファイルが意図したディレクトリの外にトラバースして、任意のファイルを上書きすることができます。これは最終的にリモートでのコード実行につながり、悪用される可能性があります。 

この脆弱性は、特定する方法を知っていれば、他のシナリオでも出現します。Python の tar ファイルの取り扱いに加えて、zip ファイルの抽出にも脆弱性が存在します。これは、Python 以外の言語でも顕在化しているzip slip 脆弱性のような別の名前で知られているかもしれません!

ミッションへのリンク 

リスクを軽減する方法は?

この脆弱性は何年も前から知られていたにもかかわらず、Pythonのメンテナは、抽出機能が想定通りに動作していると考えています。この場合、"バグではなく、機能だ "と言う人もいるかもしれません。残念ながら、開発者は未知のソースからtarやzipファイルを展開することを常に避けることはできません。安全な開発手法の一部として、パストラバーサル脆弱性を防ぐために信頼できない入力をサニタイズすることは、開発者次第です。

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

Pythonの課題を無料でお試しいただけます。

コーディングガイドラインを無料で入手したい場合は、Secure Code Coachをチェックして、セキュアコーディングの実践に役立ててください。

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

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

Secure Code Warrior 、ソフトウェア開発サイクル全体を通じてコードの安全性を確保し、サイバーセキュリティを最優先とする文化を構築するため、貴社をSecure Code Warrior 。アプリセキュリティ管理者、開発者、CISO、あるいはセキュリティに関わるあらゆる立場の方々に対し、当社が貴社のビジネスにおける不安全なコードに関連するリスクの低減を支援します。

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

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

Laura Verheyde ist Softwareentwicklerin bei Secure Code Warrior und konzentriert sich auf die Erforschung von Sicherheitslücken und die Erstellung von Inhalten für Missions und Coding Labs.

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

最近、セキュリティ研究者のチームが、Pythonのtarファイル抽出機能における15年前のバグを発見したと発表しました。この脆弱性は2007年に初めて公開され、CVE-2007-4559として追跡されました。Pythonの公式ドキュメントに注意書きが追加されましたが、バグそのものは未パッチのままでした。

この脆弱性は、何千ものソフトウェアプロジェクトに影響を与える可能性がありますが、多くの人がこの状況や対処法についてよく知らないままです。そのため、このたび Secure Code Warriorこの脆弱性がどのような影響を及ぼすかを実際に体験し、この根強いバグのメカニズムを理解することで、あなたのアプリケーションをより良く保護することができます。

今すぐシミュレーションミッションを体験してください。

脆弱性:tarファイル抽出時のパストラバーサル

パスまたはディレクトリのトラバーサルは、未分析のユーザー入力がファイルパスの構築に使用された場合に発生し、攻撃者がファイルへのアクセスや上書き、さらには任意のコードを実行することを可能にします。 

この脆弱性は、Pythonのtarfileモジュールに存在します。tar(テープアーカイブ)ファイルは、アーカイブと呼ばれる1つのファイルです。これは、複数のファイルをそのメタデータとともにパッケージ化したもので、通常、.tar.gzまたは.tgzという拡張子を持っていることで認識されます。アーカイブ内の各メンバーはTarInfoオブジェクトで表すことができ、ファイル名、変更時間、所有者などのメタデータを含んでいます。

リスクは、アーカイブが再び取り出される可能性があることに起因する。

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

Pythonのスニペット のスニペットです。


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

Pythonのスニペット のスニペットです。

ここで問題となるのは、ファイル名のサニタイズが行われていないことです。攻撃者は、ドット・スラッシュ(../)のようなパス・トラバーサル文字を含むようにファイル名を変更し、ファイルが意図したディレクトリの外にトラバースして、任意のファイルを上書きすることができます。これは最終的にリモートでのコード実行につながり、悪用される可能性があります。 

この脆弱性は、特定する方法を知っていれば、他のシナリオでも出現します。Python の tar ファイルの取り扱いに加えて、zip ファイルの抽出にも脆弱性が存在します。これは、Python 以外の言語でも顕在化しているzip slip 脆弱性のような別の名前で知られているかもしれません!

ミッションへのリンク 

リスクを軽減する方法は?

この脆弱性は何年も前から知られていたにもかかわらず、Pythonのメンテナは、抽出機能が想定通りに動作していると考えています。この場合、"バグではなく、機能だ "と言う人もいるかもしれません。残念ながら、開発者は未知のソースからtarやzipファイルを展開することを常に避けることはできません。安全な開発手法の一部として、パストラバーサル脆弱性を防ぐために信頼できない入力をサニタイズすることは、開発者次第です。

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

Pythonの課題を無料でお試しいただけます。

コーディングガイドラインを無料で入手したい場合は、Secure Code Coachをチェックして、セキュアコーディングの実践に役立ててください。

目次

PDFをダウンロード
リソースを表示
もっと知りたいですか?

もっと詳しく

Secure Code Warrior 、ソフトウェア開発サイクル全体を通じてコードの安全性を確保し、サイバーセキュリティを最優先とする文化を構築するため、貴社をSecure Code Warrior 。アプリセキュリティ管理者、開発者、CISO、あるいはセキュリティに関わるあらゆる立場の方々に対し、当社が貴社のビジネスにおける不安全なコードに関連するリスクの低減を支援します。

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

入門リソース

さらに多くの投稿
リソースハブ

入門リソース

さらに多くの投稿