
コンテナ化されたラボ環境で、Viteの開発サーバーにおけるパストラバーサル脆弱性CVE-2025-31486をシミュレート・悪用し、ハンズオンセキュリティトレーニングのためのステップバイステップの指示を提供します。
Vite の開発サーバーにおけるパス横断脆弱性(CVE-2025-31486)をシミュレートし、実際に悪用するための実践的なコンテナ化ラボ環境です。
このラボは、モダンなウェブ開発ビルドツールである Vite の旧バージョンに見られる深刻なパス横断脆弱性を実演します。この脆弱性により、攻撃者は Vite 開発サーバーのセキュリティ制約を回避し、ローカルファイルシステム上の任意のファイルを読み取ることが可能になります。
問題の核心は、Vite のアセットプラグインが URL を処理する方法にあります。?.svg や ?.wasm?init のようなサフィックスを付けた特殊な URL を細工することで、攻撃者はサーバーに重要なセキュリティチェック(具体的には server.fs.deny 関数)をスキップさせ、/etc/passwd のような機密ファイルへのアクセスを取得できます。
--host フラグを使用してサーバーがネットワークに公開されていること。build.assetsInlineLimit(デフォルトは 4KB)よりも小さいファイルに対して最も効果的に機能します。Vite がこれらのファイルを Base64 文字列としてレスポンスにインライン化するためです。このリポジトリには、脆弱な Vite サーバーを安全に実行し、自分でエクスプロイトを実行するために必要なものがすべて含まれています。シミュレーションは次の 2 つの方法で実行できます。
数秒でフルクラウドの開発環境を入手できます。ローカルでのセットアップは不要です。
Codespace を起動する: この README 上部の「Open in GitHub Codespaces」ボタンをクリックします。
セットアップを待つ: GitHub がクラウド環境を準備します。これには約 1 分かかる場合があります。準備が完了すると、エディターの下部にターミナルが表示されます。
脆弱なサーバーを起動する: ターミナルで以下の単一コマンドを実行します。
docker compose up
脆弱な Vite 開発サーバーが実行され、アクセス可能であることを示す出力が表示されます。
エクスプロイトを実行する:
+ アイコンをクリック)。自分のマシンでラボを実行する場合は、以下の手順に従ってください。
前提条件:
手順:
リポジトリをクローンする:
git clone https://github.com/hackmelocal/CVE-2025-31486-Simulation.git
cd CVE-2025-31486-Simulation
脆弱なサーバーを起動する: ターミナルで以下の単一コマンドを実行します。
docker compose up
このコマンドは、Docker イメージを(まだビルドされていない場合)ビルドし、脆弱な Vite サーバーを起動します。
エクスプロイトを実行する: