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

Pythonのtarファイルモジュールにおけるパス探索エラーを理解する

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

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

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

今すぐ模擬ミッションを試してみてください。

脆弱性:tarファイル抽出時の経路追跡

パストラッキングまたはディレクトリトラッキングは、消毒されていないユーザー入力を使用してファイルパスを構築する際に発生します。これにより攻撃者はファイルへのアクセスや上書きが可能となり、さらには任意のコードを実行することさえ可能になります。

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

リスクは、ファイルが再抽出される可能性に起因する。

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

Pythonの断片 Tarfile.py


このパスが作成されると、 tar.extractファイル または archivo tar.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 。AppSec管理者、開発者、CISO、セキュリティ関連担当者など、あらゆる立場の方々に対し、不安全なコードに関連するリスクを軽減するお手伝いをいたします。

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

Laura Verheyde はSecure Code Warrior のソフトウェア開発者で、脆弱性のリサーチとMissions および Coding labs のコンテンツ作成に注力している。

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

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

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

今すぐ模擬ミッションを試してみてください。

脆弱性:tarファイル抽出時の経路追跡

パストラッキングまたはディレクトリトラッキングは、消毒されていないユーザー入力を使用してファイルパスを構築する際に発生します。これにより攻撃者はファイルへのアクセスや上書きが可能となり、さらには任意のコードを実行することさえ可能になります。

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

リスクは、ファイルが再抽出される可能性に起因する。

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

Pythonの断片 Tarfile.py


このパスが作成されると、 tar.extractファイル または archivo tar.extractall 関数を使用して抽出を行います:

Pythonの断片 Tarfile.py

ここでの問題は、ファイル名の消毒処理が不十分であることです。 攻撃者はファイル名を変更し、../(ダブルドットスラッシュ)などのパスを遡る文字列を含めることが可能です。これにより、ファイルが意図されたディレクトリから移動し、任意のファイルを上書きする可能性があります。最終的には、リモートコード実行につながる恐れがあり、悪用される危険性があります。

脆弱性は他のシナリオでも現れます。見つけ方を知っていればの話ですが。Pythonによるtarファイルの処理に加え、zipファイルの抽出にも脆弱性が存在します。これはzip slip脆弱性など別の名称で知られているかもしれません。Python以外の言語でも発生しているのです!

ミッションへのリンク 

リスクをどのように軽減できますか?

この脆弱性は長年知られていますが、Pythonのメンテナは抽出機能が想定通りに動作していると見なしています。この場合、「これは機能であってバグではない」と主張する者もいるでしょう。 残念ながら、開発者は未知のソースからのtarやzipファイルの抽出を常に回避できるわけではありません。安全な開発プラクティスの一環として、信頼できない情報を消毒し、脆弱性がルートから逸脱するのを防ぐのは開発者自身の責任です。

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

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

無料のコーディングガイドラインをさらに入手したい場合は、安全なコーディングの実践を把握するのに役立つ「セキュアコードトレーナー」をご覧ください。

リソースを参照
リソースを参照

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

当社製品や安全な暗号化に関する情報をお送りする許可を頂ければ幸いです。お客様の個人情報は常に最大限の注意を払って取り扱い、マーケティング目的で他社に販売することは決してありません。

送信
SCW成功アイコン
SCWエラーアイコン
フォームを送信するには、「分析」クッキーを有効にしてください。完了後は、お気軽に再度無効にしてください。

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

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

今すぐ模擬ミッションを試してみてください。

脆弱性:tarファイル抽出時の経路追跡

パストラッキングまたはディレクトリトラッキングは、消毒されていないユーザー入力を使用してファイルパスを構築する際に発生します。これにより攻撃者はファイルへのアクセスや上書きが可能となり、さらには任意のコードを実行することさえ可能になります。

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

リスクは、ファイルが再抽出される可能性に起因する。

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

Pythonの断片 Tarfile.py


このパスが作成されると、 tar.extractファイル または archivo tar.extractall 関数を使用して抽出を行います:

Pythonの断片 Tarfile.py

ここでの問題は、ファイル名の消毒処理が不十分であることです。 攻撃者はファイル名を変更し、../(ダブルドットスラッシュ)などのパスを遡る文字列を含めることが可能です。これにより、ファイルが意図されたディレクトリから移動し、任意のファイルを上書きする可能性があります。最終的には、リモートコード実行につながる恐れがあり、悪用される危険性があります。

脆弱性は他のシナリオでも現れます。見つけ方を知っていればの話ですが。Pythonによるtarファイルの処理に加え、zipファイルの抽出にも脆弱性が存在します。これはzip slip脆弱性など別の名称で知られているかもしれません。Python以外の言語でも発生しているのです!

ミッションへのリンク 

リスクをどのように軽減できますか?

この脆弱性は長年知られていますが、Pythonのメンテナは抽出機能が想定通りに動作していると見なしています。この場合、「これは機能であってバグではない」と主張する者もいるでしょう。 残念ながら、開発者は未知のソースからのtarやzipファイルの抽出を常に回避できるわけではありません。安全な開発プラクティスの一環として、信頼できない情報を消毒し、脆弱性がルートから逸脱するのを防ぐのは開発者自身の責任です。

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

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

無料のコーディングガイドラインをさらに入手したい場合は、安全なコーディングの実践を把握するのに役立つ「セキュアコードトレーナー」をご覧ください。

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

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

Secure Code Warrior ソフトウェア開発ライフサイクル全体を通じてコードを保護し、サイバーセキュリティを最優先事項とする文化を構築するために、貴組織をSecure Code Warrior 。AppSec管理者、開発者、CISO、セキュリティ関連担当者など、あらゆる立場の方々に対し、不安全なコードに関連するリスクを軽減するお手伝いをいたします。

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

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

Laura Verheyde はSecure Code Warrior のソフトウェア開発者で、脆弱性のリサーチとMissions および Coding labs のコンテンツ作成に注力している。

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

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

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

今すぐ模擬ミッションを試してみてください。

脆弱性:tarファイル抽出時の経路追跡

パストラッキングまたはディレクトリトラッキングは、消毒されていないユーザー入力を使用してファイルパスを構築する際に発生します。これにより攻撃者はファイルへのアクセスや上書きが可能となり、さらには任意のコードを実行することさえ可能になります。

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

リスクは、ファイルが再抽出される可能性に起因する。

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

Pythonの断片 Tarfile.py


このパスが作成されると、 tar.extractファイル または archivo tar.extractall 関数を使用して抽出を行います:

Pythonの断片 Tarfile.py

ここでの問題は、ファイル名の消毒処理が不十分であることです。 攻撃者はファイル名を変更し、../(ダブルドットスラッシュ)などのパスを遡る文字列を含めることが可能です。これにより、ファイルが意図されたディレクトリから移動し、任意のファイルを上書きする可能性があります。最終的には、リモートコード実行につながる恐れがあり、悪用される危険性があります。

脆弱性は他のシナリオでも現れます。見つけ方を知っていればの話ですが。Pythonによるtarファイルの処理に加え、zipファイルの抽出にも脆弱性が存在します。これはzip slip脆弱性など別の名称で知られているかもしれません。Python以外の言語でも発生しているのです!

ミッションへのリンク 

リスクをどのように軽減できますか?

この脆弱性は長年知られていますが、Pythonのメンテナは抽出機能が想定通りに動作していると見なしています。この場合、「これは機能であってバグではない」と主張する者もいるでしょう。 残念ながら、開発者は未知のソースからのtarやzipファイルの抽出を常に回避できるわけではありません。安全な開発プラクティスの一環として、信頼できない情報を消毒し、脆弱性がルートから逸脱するのを防ぐのは開発者自身の責任です。

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

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

無料のコーディングガイドラインをさらに入手したい場合は、安全なコーディングの実践を把握するのに役立つ「セキュアコードトレーナー」をご覧ください。

目次

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

もっと詳しく

Secure Code Warrior ソフトウェア開発ライフサイクル全体を通じてコードを保護し、サイバーセキュリティを最優先事項とする文化を構築するために、貴組織をSecure Code Warrior 。AppSec管理者、開発者、CISO、セキュリティ関連担当者など、あらゆる立場の方々に対し、不安全なコードに関連するリスクを軽減するお手伝いをいたします。

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

始めるためのリソース

その他の投稿
リソースセンター

始めるためのリソース

その他の投稿