Security
12 min read
3244 views

Path Traversal 2.0: コンテナの脱出と /etc/passwd の読み取り in 2025 📁

IT
InstaTunnel Team
Published by our engineering team
Path Traversal 2.0: コンテナの脱出と /etc/passwd の読み取り in 2025 📁

はじめに

2025年、従来のウェブ脆弱性である Path Traversal(ディレクトリトラバーサルとも呼ばれる)は大きく進化しています。現代の攻撃対象にはコンテナ環境、アーカイブ展開パス、クラウドネイティブのワークフローも含まれます。かつては「../../etc/passwd」のウェブアプリのトリックだけだったものが、コンテナの脱出やコンテナイメージ内の任意ファイル書き込み、特権設定ファイルの上書きへと拡大しています。この記事では、Path Traversal 2.0がなぜ重要か、攻撃者がどのようにしてコンテナから脱出し /etc/passwd などのファイルを読み取ったり上書きしたりしているのか、そして今あなたが取るべき防御策について解説します。


Path Traversal とは何か?

基本的に、パストラバーサル攻撃は攻撃者がファイルパスのロジック(../、絶対パス、エンコードされたバリアント)を操作し、アプリケーションが本来アクセスすべきでないディレクトリや「ルート」外のファイルにアクセスさせるものです。ウェブアプリの場合、/etc/passwdやソースコード、設定ファイルの読み取りにつながることがあります。(owasp.org)

古典的な例

URLパラメータに ?file=report.pdf があり、それが open("/var/www/files/"+filename) に渡されるとします。filenameをサニタイズし忘れると、攻撃者は ../../../../etc/passwd を指定し、サーバーにシステムのパスワードファイルを返させることが可能です。(invicti.com) OWASPページの有名な例:

GET /vulnerable.php?file=../../../../etc/passwd

これにより root:x:0:0: のような passwd エントリが露出します。(owasp.org)

なぜ今も重要か

古典的なクラス(OWASPにより言及され、何十年も前から知られている)にもかかわらず、パストラバーサルは依然として重要です。理由は:

  • 多くのアプリケーションがファイルパスパラメータやエクスポートを厳格に検証せずに許可しているため。(yeswehack.com)
  • 攻撃者はこれを他のバグ(例:SSRF、アーカイブ展開の脆弱性)と組み合わせてインパクトを拡大しているため。(yeswehack.com)
  • コンテナ、マイクロサービス、クラウドネイティブへの移行により、新たなコンテキスト(アーカイブの展開、コンテナの脱出)が生まれ、トラバーサルのロジックに欠陥が生じやすくなっているため。

なぜ「2.0」か?コンテナ&クラウドへの進化

2025年、パストラバーサルの脆弱性は単なるウェブディレクトリの範囲を超え、次のような新しい状況が見られます:

コンテナ&アーカイブ展開の脆弱性

  • 最近の脆弱性、CVE‑2025‑62156はArgo Workflows(コンテナネイティブのワークフローエンジン)に影響します。問題は、アーティファクト展開(untar/zip)中にアーカイブ内のエントリがトラバーサルパス(または絶対パス)を含む場合、展開ディレクトリを超えて /etc/passwd/etc/hosts/etc/crontab などに書き込みが可能になる点です。(OffSeq Threat Radar)
  • コンテナの脱出攻撃は、層状のファイルシステムモデルとトラバーサルロジックやアーカイブ展開を組み合わせて行われることが多いです。例として、2025年6月の研究論文「gh0stEdit」では、攻撃者がDockerイメージの層を検知されずに改ざんできる方法を示しています。(arXiv)

/etc/passwdが焦点となる理由

  • Unix系システムの/etc/passwdはユーザアカウントとメタデータをリストします。読むだけではハッシュ化されたパスワードは得られませんが(多くは/etc/shadowにあります)、ユーザ名、UID/GID、シェル、ホームディレクトリなどの情報が得られ、さらなる攻撃や特権昇格に役立ちます。(invicti.com)
  • コンテナ環境では、/etc/passwdを書き換えることで、ユーザを注入したり、コンテナ内の特権を昇格させたりできます。これによりサンドボックスの脱出やホストへのピボットが可能になる場合があります。

マイクロサービス、API、内部ファイル共有

2025年の最新アプリケーションは、内部APIやマイクロサービス、ファイル取得エンドポイントを公開しています。攻撃者はこれらのエンドポイントをトラバーサル攻撃のターゲットにし、特にJSON入力や内部リクエストを受け入れる場合にフィルタを回避しやすいです。2025年5月に公開されたガイドでは、APIの調査やフィルタ回避による内部読み取りの連鎖方法を解説しています。(yeswehack.com)


攻撃ベクトル:2025年のPath Traversal 2.0の仕組み

攻撃者が2025年の進化したパストラバーサル脅威をどう利用するかを解説します:

1. ウェブアプリ経由の基本的なファイル読み取り

  • ファイル名やパスパラメータを受け付けるエンドポイントを見つける(例:filepathdocimgdownload)。(System Weakness)
  • 簡単なペイロードを試す:../../../../etc/passwd..\..\..\..\etc\passwd%2e%2e/%2e%2e/%2e%2fetc/passwd/etc/passwdなど。(owasp.org)
  • 成功すれば/etc/passwdを読み取り、ユーザ情報を露出させ、その後の認証情報やローカルファイルの開示、コードの読み取りを計画します。

2. アーカイブ展開 / Zip Slip(コンテナ内)

  • 対象コンポーネントがコンテナやホスト内でアーカイブ(zip、tar、tar.gz)を展開または解凍し、そのエントリのパスを検証しない場合。
  • 悪意のあるアーカイブには、../../../../etc/passwdや絶対パスの/etc/passwdを含むファイルエントリがある。
  • 展開時に、dest + header.Nameclean()後に使用し、ディレクトリのエスケープを検証しないため、ファイルがコンテナのシステムパス(またはホストパス)に配置される。CVE-2025-62156では、Argo Workflowsのexecutor.go内のfilepath.Join(dest, filepath.Clean(header.Name))にこの問題がありました。(OffSeq Threat Radar)
  • 結果:攻撃者は/etc/passwdを書き換えたり上書きしたりでき、コンテナ内のユーザアカウントを制御可能にします。そこから、コンテナの脱出や特権昇格、横展開が可能です。

3. マイクロサービス内のサイドチャネルトラバーサル

  • 内部ネットワークからのみアクセス可能なマイクロサービスが、{ "path": "reports/2025.csv" } のようなJSONボディを受け取る。
  • 攻撃者はSSRFやプロキシを利用してそのマイクロサービスにリクエストを送り、../../../../etc/passwdなどのペイロードを送信。
  • 内部サービスはフィルタが弱いことを利用し、2025年5月のガイドに示された方法で調査します。(yeswehack.com)

4. コンテナイメージ層の悪用と脱出

  • 直接的に../etc/passwdを狙うわけではありませんが、攻撃者はコンテナの層やファイルシステムの脆弱性を利用し、悪意のあるファイルをイメージ層に注入します(例:「gh0stEdit」論文参照)。(arXiv)
  • トラバーサルや脆弱な展開パスとコンテナの特権誤設定を組み合わせると、ホスト脱出やルート権限取得につながることがあります。

実例と最新のCVE(2025年)

以下は、Path Traversal 2.0の実際の脆弱性例です:

  • CVE-2025-62156(Argo Workflows)— 高重大度。Zip Slipパスのトラバーサルにより、コンテナ内で/etc/passwdなどのファイルを任意に作成・上書き可能。(OffSeq Threat Radar)
  • CVE-2025-41242(Spring Framework)— 中程度の重大度。静的リソースを提供する非準拠のServletコンテナ上でのパストラバーサル脆弱性。(Home)
  • CVE-2025-30208(Vite開発サーバー)— @fsパスエイリアスを利用した任意ファイル読み取り。(OffSec)

これらは、2025年でもパストラバーサルが依然として広く進化していることを示しています。


/etc/passwdの読み取りが依然として重要な理由

「なるほど、/etc/passwdを読むだけで何か?」と思うかもしれませんが、これは攻撃者にとって重要なターゲットです。特にコンテナやホスト環境では:

  • ユーザ列挙:ユーザ名、UID、シェル、ホームディレクトリをリストし、特権アカウント(UID 0=root)や特別なアカウントを特定できます。
  • 特権昇格/etc/passwdを読めたら、/etc/shadowに書き込みやユーザ追加を行い、昇格を狙えます。
  • 永続性と脱出:コンテナ内で/etc/passwdを書き換えると、rootユーザを作成でき、コンテナの隔離を突破してホストに脱出できる可能性があります。
  • 次の攻撃の足掛かり/etc/passwdの情報は、内部ネットワークやサービスアカウントの特定、ピボット攻撃に役立ちます。

特に、/etc/passwdを書き換えることで、コンテナの脱出や特権昇格が可能になるため、非常に危険です。


脅威の範囲を調査:コンテナ、クラウド、ワークフロー

なぜコンテナやクラウド環境がリスクを高めるのか見てみましょう:

コンテナ化は爆発範囲を拡大

コンテナはプロセスを隔離しますが、多くの展開ではroot権限で動作させたり、マウント権限を持たせたり、ホストの名前空間を共有したりしています。攻撃者がパストラバーサル(例:/etc/passwdへの書き込みやrootユーザの読み込み)を利用して脱出した場合、そのコンテナ内でroot権限を得ることができ、その後ホストや他のコンテナに横展開できる可能性があります(特にマルチテナント環境)。

アーカイブ/Zip展開は「潜在的」な攻撃ベクトル

多くのマイクロサービスやワークフローは、アップロードされたアーティファクトやzipログ、バックアップ、コンテナ層を受け入れます。展開コードがエントリのパスを検証しなければ、攻撃者は悪意のあるアーカイブを作成し、意図しない場所にファイルを書き込みます。例として、Argo Workflowsの脆弱性は、悪意のあるアーカイブが展開先を抜け出し、/etc/passwdに書き込みます。(OffSeq Threat Radar)

信頼境界はクラウドネイティブスタックで変化

現代のシステムは、多層構造に依存しています:CI/CDパイプライン、アーティファクトストア、コンテナレジストリ、クラウドオブジェクトストア、オーケストレーションエンジン。攻撃者はこれらの脆弱なコンポーネントを狙い、悪意のあるアーカイブを供給し、パイプラインを経由して本番環境に展開します。展開のどの段階でもパストラバーサルのバグがあれば、脱出の大きな入口となります。 また、「Characterizing Trust Boundary Vulnerabilities in TEE Containers」(2025年8月)によると、Confidential Computing用に設計された一部のコンテナは、隔離を適切に強制できておらず、脱出やトラバーサルのリスクを高めています。(arXiv)


現代システムにおけるPath Traversalの検出と悪用

以下は、レッドチームやペンテスター向けの実践的なステップです:

検出チェックリスト

  • ファイルパス/名前/ダウンロード/表示/エクスポート/アーカイブパラメータを受け付けるエンドポイントを特定(例:filepathtemplatedocreport)。(System Weakness)
  • 既知の安全なファイルでリクエストを送り、レスポンス(ステータスコード、サイズ、内容)を観察。
  • ペイロード例: ../../../../etc/passwd ..\..\..\..\etc\passwd %2e%2e/%2e%2e/%2e%2fetc/passwd /etc/passwd

OWASPの指針に従い、エンコードやnullバイト(%00)、ダブルエンコードに注意。(owasp.org) * アーカイブ展開の場合:../../../../etc/passwdや絶対パス/etc/passwdを含むアーカイブをアップロードまたは展開させ、その後ファイルがコンテナのファイルシステムに現れるか、サービスの応答が変わるかを確認。 * コンテナやCI/CDの文脈では、コンテナ作成ログやファイル書き込み、ファイルシステムのエスケープを監視。ホスト側から/etc/passwdや他のシステムファイルが変更されたかも確認します。

悪用と影響評価

  • /etc/passwd読むことができたら、その内容を取得し、特権アカウント(UID 0、root)を探す。
  • 書き込み/上書きできる場合:rootユーザを挿入したり、シェルを/bin/bashに変更したりして、シェルを起動したり昇格を試みる。
  • コンテナ内でroot権限を得たら、mountcat /proc/1/ns/mntdocker execを試す、またはホストのマウントや権限を調査し、脱出の可能性を探る。
  • 環境をマッピング:/proc/self/environ/proc/mounts/proc/net/tcpなどを確認(パストラバーサルの後続攻撃の一環)。(invicti.com)

バイパステクニック

  • エンコーディングを利用:%2e%2e/..%2f、ダブルエンコード、nullバイト%00(環境に応じて)。(owasp.org)
  • セパレータの変更:Windowsの..\とUnixの../
  • トラバーサル深度を増やす:アプリケーションが一定深度でパターンをブロックしている場合、6〜12レベルまで深くする。(System Weakness)
  • SSRFや誤設定されたプロキシと連携:内部エンドポイントにトラバーサルペイロードを送信。(yeswehack.com)

2025年の対策とベストプラクティス

Path Traversal 2.0攻撃に対抗するには、多層的な防御が必要です:

入力検証とパスサニタイズ

  • ユーザ制御の入力を直接ファイルパスに使わない。許可されたファイル名やディレクトリ名のホワイトリストを推奨。(invicti.com)
  • ファイルパスにはrealpath()や同等の関数を使い、絶対パスに解決した後、意図したベースディレクトリ内かどうかを検証。(yeswehack.com)
  • ../..\、エンコードパターンのブラックリストだけに頼らない(回避されやすいため)。(invicti.com)

セキュアなアーカイブ展開ロジック

  • zipやtarの展開時に、各エントリのターゲットパスが展開先ディレクトリ内に収まるか検証。例:dest + clean(entry.name)を単純に結合しない。CVE-2025-62156の例。(OffSeq Threat Radar)
  • 「ノートラバーサル」を強制する展開ライブラリを使うか、resolved_path.startsWith(dest_dir)のようなカスタム検証を実装。
  • 最小権限のコンテナで展開を行い、読み取り専用ルートファイルシステムや不要なコンテナ能力を削減。

コンテナ・ホストのランタイム保護

  • 可能な限り非rootユーザでコンテナを実行。
  • 書き込み不要なコンテナには読み取り専用ルートファイルシステムを適用。
  • KubernetesのPodSecurityPolicies(または同等の仕組み)を使い、ボリュームマウントやホスト名前空間、特権昇格、hostPathマウントを制限。
  • 予期しないファイル変更(例:/etc/passwd/etc/shadow/etc/hosts、バイナリ、権限変更)を監視。高性能なVMインスペクションによるファイル監視も進展中。(arXiv)
  • オーケストレーションやワークフローエンジンを最新に保つ。例:Argo Workflowsをバージョン3.6.12や3.7.3にアップグレードし、CVE-2025-62156を修正。

セキュアなCI/CDパイプラインとアーティファクト管理

  • アップロードされたアーティファクトはスキャンとサニタイズを行い、自動展開前に検証。
  • 信頼できる出所のアーティファクトストアと展開サービスに限定。公開アップロードは避ける。
  • サプライチェーンのセキュリティを徹底:コンテナイメージの署名、イミュータブルレジストリ、層のスキャンによる改ざん検知(例:「gh0stEdit」脅威)。(arXiv)

監視・ロギング・インシデント対応

  • ファイル操作(作成・書き込み)を監視。特にシステムディレクトリ内の変更。
  • ランタイムセキュリティツール(Runtime Application Self-Protection、Host Intrusion Detection Systems)を導入し、不審な動作(例:/etc/passwdへの書き込みや予期しないシェルの読み込み)を検知。
  • Path Traversalの脆弱性に対し、DAST/SASTを定期的に実施。(invicti.com)

SEOに配慮したまとめ:重要ポイント

  • Path Traversal 2.0は、古い../../etc/passwdだけではなく、コンテナの脱出アーカイブ展開のバグワークフローエンジンクラウドネイティブのマイクロサービスに進化しています。
  • /etc/passwdの読み取りや上書きは、依然として高インパクトの攻撃ベクトル:列挙、特権昇格、コンテナ脱出。
  • 最新のCVE(例:CVE-2025-62156)は、この進化を示しています。
  • 検出には、アーカイブ展開エンドポイントや内部API、コンテナのファイルシステムの調査といった最新技術が必要です。
  • 対策は、「入力検証」「安全な展開」「コンテナの隔離」「アーティファクトパイプラインの強化」「ランタイム監視」の全方位的アプローチが求められます。
  • 2025年のクラウドネイティブ時代において、Path Traversalはもはや「ウェブのバグ」だけではなく、プラットフォーム全体の脅威となっています。

最後に

ウェブサービスを構築する開発者、コンテナインフラを管理するDevOpsエンジニア、現代のパイプラインを監査するセキュリティ専門家の皆さん、Path Traversalの脅威は進化しています。重要なのは、ファイルアクセスの境界を*信頼の境界*として扱うことです。ユーザ制御の入力や未検査のアーカイブがファイルパスを決定できる場合、リスクにさらされているのです。単なる/etc/passwdの読み取りも、全体のコンテナ脱出の第一歩になり得ます。

警戒を怠らず、意識を高め、展開ロジックやコンテナの権限、内部APIを監査しましょう。2025年には、Path Traversal 2.0は現実の脅威となり、そのリスクはかつてないほど高まっています。


SEO用メモ(※SEOキーワード) キーワード:*path traversal 2025*、*コンテナ脱出トラバーサル/etc/passwd container*、*Zip Slip脆弱性*、*CVE 2025 パストラバーサル*、*ディレクトリトラバーサル API*。 見出しはH2を使用し、箇条書きとリンクを適宜配置して、最新のCVEや学術研究へのリンクを信頼性のために挿入してください。


免責事項:本記事は教育目的のみです。脆弱性テストを行う前に必ず許可を得てください。

Continue from this article into the most relevant product guides and workflows.

Related Topics

#path traversal, directory traversal, dot-dot slash attack, ../ attack, directory climbing, back-tracking vulnerability, canonicalization attack, file path manipulation, arbitrary file read vulnerability, directory escape, file system traversal attack, CWE-22, CWE-23, path normalization vulnerability, unauthorized file access, unsanitized file name injection, file inclusion path traversal, web app path traversal, API file download vulnerability, internal API path traversal, unvalidated file parameter, JSON path parameter vulnerability, microservice file read flaw, SSRF plus traversal, web API file read, insecure file serving endpoint, file preview endpoint traversal, encoded path traversal bypass, null-byte traversal attack, container escape vulnerability, container path traversal, container image layer attack, container breakout path traversal, container filesystem traversal, hostPath volume traversal, archive extraction path traversal, ZipSlip container, archive unpack traversal container, CI/CD artifact traversal, supply-chain path traversal, workflow engine path traversal, cloud-native path traversal, Kubernetes path traversal, container runtime traversal, container image path escape, /etc/passwd read, /etc/shadow read, privileged file access containers, system file overwrite path traversal, write /etc/passwd via traversal, config file exposure via traversal, credentials file read path traversal, service account file read, secret token file read traversal, home directory traversal, root directory traversal attack, double URL encoding traversal, UTF-8 encoding traversal, Unicode traversal bypass, UNC path traversal, Windows path traversal ..\ attack, ..%2f traversal, null byte %00 bypass traversal, path canonicalization bypass, alternative separators traversal, zip archive traversal exploit, tar extraction traversal, archive path traversal exploit, layered filesystem traversal container, path sanitization best practices, realpath validation, canonical path check, input validation file paths, allow-list file names, least privileged container filesystem, non-root container user, read-only root filesystem containers, secure archive unpacking, container isolation file system, runtime monitoring file modifications, WAF directory traversal rule, automated vulnerability scanning path traversal, secure coding path traversal guidelines, path traversal 2025, modern path traversal attacks, container escape reading /etc/passwd, archive extraction vulnerability container, ZipSlip 2025, path traversal in cloud-native stacks, directory traversal in Kubernetes workloads, internal microservice file traversal, reading /etc/passwd inside container path traversal, path traversal CVE 2025, file system escape containers path traversal, insecure unpacking container path traversal, exploit path traversal archive container, prevention path traversal container environment

Keep building with InstaTunnel

Read the docs for implementation details or compare plans before you ship.

Share this article

More InstaTunnel Insights

Discover more tutorials, tips, and updates to help you build better with localhost tunneling.

Browse All Articles