
Pythonのtarfileモジュールにおけるパストラバーサルエラーの理解
最近、あるセキュリティ研究者グループが、Pythonのtarファイル展開機能に15年間存在していた欠陥を発見したと発表した。この脆弱性は2007年に初めて報告され、CVE-2007-4559として追跡されている。Pythonの公式ドキュメントには注記が追加されたが、欠陥自体は修正されていない。
この脆弱性は数千ものソフトウェアプロジェクトに影響を及ぼす可能性がありますが、多くの人はその状況や対処方法に精通していません。だからこそ、セキュリティコードウォリアーズでは、この脆弱性を自らシミュレートして悪用する機会を提供し、その影響を直接目撃し、この持続的な欠陥のメカニズムを体感していただくことで、アプリケーションをより効果的に保護できるよう支援します!
今すぐミッションをシミュレートしてみよう。
脆弱性:tarファイル抽出時のパストラバーサル
未検証のユーザー入力を使用してファイルパスを構築する場合、パストラバーサルまたはディレクトリトラバーサルが発生し、攻撃者がアクセス権を取得し、ファイルを上書きし、さらには任意のコードを実行することを可能にします。
この脆弱性はPythonのtarfileモジュールに存在します。tar(テープアーカイブ)ファイルは単一のファイル(アーカイブ)であり、複数のファイルとそのメタデータをまとめて格納します。通常、.tar.gzまたは .tgz拡張子で識別されます。アーカイブ内の各メンバーは、ファイル名、最終更新日時、所有権などのメタデータを含むTarInfoオブジェクトで表現できます。
リスクは、ファイルを再度抽出できることに起因する。
抽出時には、各メンバーに対して書き込み先パスを指定する必要があります。この位置は、基本パスとファイル名を連結することで作成されます:

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

問題点はファイル名の検証が不十分であることです。攻撃者はパストラバーサル文字(例:../)を含むようにファイル名を変更でき、これによりファイルが本来あるべきディレクトリから移動し、任意のファイルを上書きします。これは最終的にリモートコード実行につながる可能性があり、攻撃の機会はすでに熟しています。
この脆弱性を特定する方法を知っているなら、他のシナリオでも同様の脆弱性が存在する可能性があります。Pythonのtarファイル処理以外にも、zipファイルの展開処理にもこの脆弱性は存在します。別の名称で知られている可能性もあります——例えば「圧縮ファイル脆弱性」として、Python以外の言語でも既に確認されています!
リスクをどのように低減するか?
この脆弱性は長年知られていたにもかかわらず、Pythonのメンテナンス担当者は抽出機能が意図した動作をしていると考えていました。この状況では「これは機能であってバグではない」と主張する者もいるかもしれません。残念ながら、開発者は未知のソースからのtarやzipファイルの抽出を常に回避できるわけではありません。安全な開発プラクティスの一環として、パストラバーサル脆弱性を防ぐため、信頼できない入力のクリーンアップを行う責任があります。
Python を使用して安全なコードを書き、リスクを軽減する方法についてさらに詳しく知りたいですか?
当社の無料Pythonチャレンジをお試しください。
無料のプログラミングガイドをもっと入手したい場合は、安全なコーディング慣行を習得するのに役立つ「安全コードコーチ」をご覧ください。


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

Secure Code Warriorは、ソフトウェア開発ライフサイクル全体を通じてコードを保護し、サイバーセキュリティを最優先とする文化を醸成するお手伝いをします。AppSecマネージャー、開発者、最高情報セキュリティ責任者(CISO)、あるいはセキュリティに関わるあらゆる方々の組織において、不安全なコードに関連するリスクの低減を支援します。
デモを予約するLaura Verheyde はSecure Code Warrior のソフトウェア開発者で、脆弱性のリサーチとMissions および Coding labs のコンテンツ作成に注力している。


最近、あるセキュリティ研究者グループが、Pythonのtarファイル展開機能に15年間存在していた欠陥を発見したと発表した。この脆弱性は2007年に初めて報告され、CVE-2007-4559として追跡されている。Pythonの公式ドキュメントには注記が追加されたが、欠陥自体は修正されていない。
この脆弱性は数千ものソフトウェアプロジェクトに影響を及ぼす可能性がありますが、多くの人はその状況や対処方法に精通していません。だからこそ、セキュリティコードウォリアーズでは、この脆弱性を自らシミュレートして悪用する機会を提供し、その影響を直接目撃し、この持続的な欠陥のメカニズムを体感していただくことで、アプリケーションをより効果的に保護できるよう支援します!
今すぐミッションをシミュレートしてみよう。
脆弱性:tarファイル抽出時のパストラバーサル
未検証のユーザー入力を使用してファイルパスを構築する場合、パストラバーサルまたはディレクトリトラバーサルが発生し、攻撃者がアクセス権を取得し、ファイルを上書きし、さらには任意のコードを実行することを可能にします。
この脆弱性はPythonのtarfileモジュールに存在します。tar(テープアーカイブ)ファイルは単一のファイル(アーカイブ)であり、複数のファイルとそのメタデータをまとめて格納します。通常、.tar.gzまたは .tgz拡張子で識別されます。アーカイブ内の各メンバーは、ファイル名、最終更新日時、所有権などのメタデータを含むTarInfoオブジェクトで表現できます。
リスクは、ファイルを再度抽出できることに起因する。
抽出時には、各メンバーに対して書き込み先パスを指定する必要があります。この位置は、基本パスとファイル名を連結することで作成されます:

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

問題点はファイル名の検証が不十分であることです。攻撃者はパストラバーサル文字(例:../)を含むようにファイル名を変更でき、これによりファイルが本来あるべきディレクトリから移動し、任意のファイルを上書きします。これは最終的にリモートコード実行につながる可能性があり、攻撃の機会はすでに熟しています。
この脆弱性を特定する方法を知っているなら、他のシナリオでも同様の脆弱性が存在する可能性があります。Pythonのtarファイル処理以外にも、zipファイルの展開処理にもこの脆弱性は存在します。別の名称で知られている可能性もあります——例えば「圧縮ファイル脆弱性」として、Python以外の言語でも既に確認されています!
リスクをどのように低減するか?
この脆弱性は長年知られていたにもかかわらず、Pythonのメンテナンス担当者は抽出機能が意図した動作をしていると考えていました。この状況では「これは機能であってバグではない」と主張する者もいるかもしれません。残念ながら、開発者は未知のソースからのtarやzipファイルの抽出を常に回避できるわけではありません。安全な開発プラクティスの一環として、パストラバーサル脆弱性を防ぐため、信頼できない入力のクリーンアップを行う責任があります。
Python を使用して安全なコードを書き、リスクを軽減する方法についてさらに詳しく知りたいですか?
当社の無料Pythonチャレンジをお試しください。
無料のプログラミングガイドをもっと入手したい場合は、安全なコーディング慣行を習得するのに役立つ「安全コードコーチ」をご覧ください。

最近、あるセキュリティ研究者グループが、Pythonのtarファイル展開機能に15年間存在していた欠陥を発見したと発表した。この脆弱性は2007年に初めて報告され、CVE-2007-4559として追跡されている。Pythonの公式ドキュメントには注記が追加されたが、欠陥自体は修正されていない。
この脆弱性は数千ものソフトウェアプロジェクトに影響を及ぼす可能性がありますが、多くの人はその状況や対処方法に精通していません。だからこそ、セキュリティコードウォリアーズでは、この脆弱性を自らシミュレートして悪用する機会を提供し、その影響を直接目撃し、この持続的な欠陥のメカニズムを体感していただくことで、アプリケーションをより効果的に保護できるよう支援します!
今すぐミッションをシミュレートしてみよう。
脆弱性:tarファイル抽出時のパストラバーサル
未検証のユーザー入力を使用してファイルパスを構築する場合、パストラバーサルまたはディレクトリトラバーサルが発生し、攻撃者がアクセス権を取得し、ファイルを上書きし、さらには任意のコードを実行することを可能にします。
この脆弱性はPythonのtarfileモジュールに存在します。tar(テープアーカイブ)ファイルは単一のファイル(アーカイブ)であり、複数のファイルとそのメタデータをまとめて格納します。通常、.tar.gzまたは .tgz拡張子で識別されます。アーカイブ内の各メンバーは、ファイル名、最終更新日時、所有権などのメタデータを含むTarInfoオブジェクトで表現できます。
リスクは、ファイルを再度抽出できることに起因する。
抽出時には、各メンバーに対して書き込み先パスを指定する必要があります。この位置は、基本パスとファイル名を連結することで作成されます:

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

問題点はファイル名の検証が不十分であることです。攻撃者はパストラバーサル文字(例:../)を含むようにファイル名を変更でき、これによりファイルが本来あるべきディレクトリから移動し、任意のファイルを上書きします。これは最終的にリモートコード実行につながる可能性があり、攻撃の機会はすでに熟しています。
この脆弱性を特定する方法を知っているなら、他のシナリオでも同様の脆弱性が存在する可能性があります。Pythonのtarファイル処理以外にも、zipファイルの展開処理にもこの脆弱性は存在します。別の名称で知られている可能性もあります——例えば「圧縮ファイル脆弱性」として、Python以外の言語でも既に確認されています!
リスクをどのように低減するか?
この脆弱性は長年知られていたにもかかわらず、Pythonのメンテナンス担当者は抽出機能が意図した動作をしていると考えていました。この状況では「これは機能であってバグではない」と主張する者もいるかもしれません。残念ながら、開発者は未知のソースからのtarやzipファイルの抽出を常に回避できるわけではありません。安全な開発プラクティスの一環として、パストラバーサル脆弱性を防ぐため、信頼できない入力のクリーンアップを行う責任があります。
Python を使用して安全なコードを書き、リスクを軽減する方法についてさらに詳しく知りたいですか?
当社の無料Pythonチャレンジをお試しください。
無料のプログラミングガイドをもっと入手したい場合は、安全なコーディング慣行を習得するのに役立つ「安全コードコーチ」をご覧ください。

以下のリンクをクリックして、このリソースのPDFをダウンロードしてください。
Secure Code Warriorは、ソフトウェア開発ライフサイクル全体を通じてコードを保護し、サイバーセキュリティを最優先とする文化を醸成するお手伝いをします。AppSecマネージャー、開発者、最高情報セキュリティ責任者(CISO)、あるいはセキュリティに関わるあらゆる方々の組織において、不安全なコードに関連するリスクの低減を支援します。
レポートを確認するデモを予約するLaura Verheyde はSecure Code Warrior のソフトウェア開発者で、脆弱性のリサーチとMissions および Coding labs のコンテンツ作成に注力している。
最近、あるセキュリティ研究者グループが、Pythonのtarファイル展開機能に15年間存在していた欠陥を発見したと発表した。この脆弱性は2007年に初めて報告され、CVE-2007-4559として追跡されている。Pythonの公式ドキュメントには注記が追加されたが、欠陥自体は修正されていない。
この脆弱性は数千ものソフトウェアプロジェクトに影響を及ぼす可能性がありますが、多くの人はその状況や対処方法に精通していません。だからこそ、セキュリティコードウォリアーズでは、この脆弱性を自らシミュレートして悪用する機会を提供し、その影響を直接目撃し、この持続的な欠陥のメカニズムを体感していただくことで、アプリケーションをより効果的に保護できるよう支援します!
今すぐミッションをシミュレートしてみよう。
脆弱性:tarファイル抽出時のパストラバーサル
未検証のユーザー入力を使用してファイルパスを構築する場合、パストラバーサルまたはディレクトリトラバーサルが発生し、攻撃者がアクセス権を取得し、ファイルを上書きし、さらには任意のコードを実行することを可能にします。
この脆弱性はPythonのtarfileモジュールに存在します。tar(テープアーカイブ)ファイルは単一のファイル(アーカイブ)であり、複数のファイルとそのメタデータをまとめて格納します。通常、.tar.gzまたは .tgz拡張子で識別されます。アーカイブ内の各メンバーは、ファイル名、最終更新日時、所有権などのメタデータを含むTarInfoオブジェクトで表現できます。
リスクは、ファイルを再度抽出できることに起因する。
抽出時には、各メンバーに対して書き込み先パスを指定する必要があります。この位置は、基本パスとファイル名を連結することで作成されます:

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

問題点はファイル名の検証が不十分であることです。攻撃者はパストラバーサル文字(例:../)を含むようにファイル名を変更でき、これによりファイルが本来あるべきディレクトリから移動し、任意のファイルを上書きします。これは最終的にリモートコード実行につながる可能性があり、攻撃の機会はすでに熟しています。
この脆弱性を特定する方法を知っているなら、他のシナリオでも同様の脆弱性が存在する可能性があります。Pythonのtarファイル処理以外にも、zipファイルの展開処理にもこの脆弱性は存在します。別の名称で知られている可能性もあります——例えば「圧縮ファイル脆弱性」として、Python以外の言語でも既に確認されています!
リスクをどのように低減するか?
この脆弱性は長年知られていたにもかかわらず、Pythonのメンテナンス担当者は抽出機能が意図した動作をしていると考えていました。この状況では「これは機能であってバグではない」と主張する者もいるかもしれません。残念ながら、開発者は未知のソースからのtarやzipファイルの抽出を常に回避できるわけではありません。安全な開発プラクティスの一環として、パストラバーサル脆弱性を防ぐため、信頼できない入力のクリーンアップを行う責任があります。
Python を使用して安全なコードを書き、リスクを軽減する方法についてさらに詳しく知りたいですか?
当社の無料Pythonチャレンジをお試しください。
無料のプログラミングガイドをもっと入手したい場合は、安全なコーディング慣行を習得するのに役立つ「安全コードコーチ」をご覧ください。




%20(1).avif)
.avif)
