結論:Vite を 7.3.2 または 8.0.5 以上に今すぐ更新してください
2026年4月6日、フロントエンドビルドツール Vite に CVSS v4 8.2(High)のファイル漏洩脆弱性 CVE-2026-39364 が公開された。
この脆弱性を悪用されると、開発サーバー経由で .env ファイル(APIキー・DB認証情報)、.pem / .crt(秘密鍵・証明書)、.git(ソースコード履歴) が第三者に読み取られる可能性がある。修正版(Vite 7.3.2 / 8.0.5)への即時アップデートが唯一の確実な対策だ。
CVE-2026-39364 の概要
| 項目 | 内容 |
|---|---|
| CVE番号 | CVE-2026-39364 |
| CVSSスコア | 8.2(High) ※ CVSS v4 |
| 脆弱性の種類 | ファイルアクセス制御のバイパス(server.fs.deny の回避) |
| 攻撃条件 | 開発サーバーがネットワークに公開 + ファイルが許可ディレクトリ内 + deny パターンに該当 |
| 影響を受けるバージョン | Vite 7.1.0〜7.3.1 / 8.0.0〜8.0.4 |
| 修正済みバージョン | Vite 7.3.2 / 8.0.5 |
| 公開日 | 2026年4月6日 |
| 漏洩し得るファイル | .env、.pem、.crt、.git 等 |
攻撃の仕組み:クエリパラメータで deny 設定を回避
Vite の開発サーバーには `server.fs.deny` という設定がある。これは `.env` や `.pem` など機密性の高いファイルへのアクセスを拒否するためのセキュリティ機能だ。
しかし CVE-2026-39364 では、リクエストURLに 特定のクエリパラメータ を付与することで、この deny チェックを完全にバイパスできることが判明した。
具体的には、以下のようなクエリパラメータが悪用される。
- `?raw` — ファイルを生テキストとして取得
- `?import&raw` — インポートモードで生テキスト取得
- `?import&url&inline` — インライン URL として取得
これにより、攻撃者は開発サーバーに対して以下のようなリクエストを送るだけで、本来保護されているはずのファイルを読み取れる。
重要: この攻撃が成立するには以下の 3つの条件すべて が揃う必要がある。
- Vite の開発サーバーがネットワークに公開されている(`--host` オプションや `server.host: '0.0.0.0'` の設定)
- 対象ファイルが Vite の許可ディレクトリ(allowed directories)内に存在する
- 対象ファイルが `server.fs.deny` パターンに該当する(.env、.pem 等)
「ローカルホストでしか開発サーバーを動かしていない」という環境であればリスクは限定的だが、リモート開発環境、Docker コンテナ、クラウド IDE、チーム共有の開発サーバーでは条件1を満たしているケースが多い。
自社の開発環境にセキュリティリスクが潜んでいませんか?
GXOの脆弱性診断で、見落としがちなリスクを可視化します。
※ 営業電話はしません | オンライン対応可 | 相談だけでもOK
影響範囲:どの環境が危険か
| バージョン系統 | 影響を受けるバージョン | 修正済みバージョン |
|---|---|---|
| Vite 7.x | 7.1.0〜7.3.1 | 7.3.2 |
| Vite 8.x | 8.0.0〜8.0.4 | 8.0.5 |
.env ファイルが漏洩した場合の被害は深刻だ。
- データベース認証情報(DB_HOST、DB_PASSWORD)の窃取
- 外部サービスのAPIキー(Stripe、AWS、SendGrid 等)の不正利用
- 秘密鍵・証明書(.pem、.crt)による通信の傍受・なりすまし
- .git ディレクトリからのソースコード・コミット履歴の流出
今すぐ実行すべき対策3ステップ
ステップ1:Vite のバージョンを確認・更新する(所要時間:約2分)
更新後、バージョンが 7.3.2 以上 または 8.0.5 以上 になっていることを確認する。
ステップ2:開発サーバーのネットワーク公開設定を見直す
`vite.config.ts`(または `vite.config.js`)で以下を確認する。
業務上ネットワーク公開が必要な場合は、VPN やファイアウォールでアクセス元を制限する。
ステップ3:.env ファイルに記載された認証情報をローテーションする
脆弱なバージョンで開発サーバーをネットワーク公開していた場合、すでに.envファイルが読み取られている可能性を考慮する必要がある。
- .env に記載されている全てのAPIキー・パスワードを新しいものに変更する
- 外部サービス(AWS、Stripe、データベース等)のアクセスログに不審な操作がないか確認する
- .pem / .crt ファイルが漏洩した可能性がある場合は、証明書の失効と再発行を行う
まとめ
| 項目 | ポイント |
|---|---|
| 脆弱性 | CVE-2026-39364(CVSS v4 8.2、High) |
| 影響 | クエリパラメータで .env / .pem / .git 等の機密ファイルが読み取られる |
| 影響範囲 | Vite 7.1.0〜7.3.1 / 8.0.0〜8.0.4 |
| 対策 | Vite 7.3.2 または 8.0.5 への即時アップデート |
| 追加対策 | 開発サーバーのネットワーク公開制限 + 認証情報のローテーション |
自社の開発環境にセキュリティリスクが潜んでいませんか?
GXOの脆弱性診断で、見落としがちなリスクを可視化します。
※ 営業電話はしません | オンライン対応可 | 相談だけでもOK
よくある質問(FAQ)
Q1. ローカルホスト(localhost)でしか開発サーバーを起動していない場合も影響を受けますか?
`server.host` を明示的に `'0.0.0.0'` や外部IPに設定していない限り、Vite のデフォルト設定ではローカルホストのみでリッスンします。この場合、外部からの攻撃は到達しないためリスクは限定的です。ただし、Docker コンテナ内で起動している場合やポートフォワーディングを設定している場合は外部からアクセス可能になっている可能性があるため、確認を推奨します。
Q2. 本番環境の Vite ビルド成果物にも影響がありますか?
いいえ。CVE-2026-39364 は Vite の開発サーバー(`vite dev`)にのみ存在する脆弱性です。`vite build` で生成した本番用の静的ファイルやバンドルには影響しません。ただし、ステージング環境で `vite dev` を稼働させているケースがあれば、そちらは影響を受けます。
Q3. CI/CD パイプラインで Vite を使っている場合はどうすればよいですか?
CI/CD でのビルド処理(`vite build`)は開発サーバーを起動しないため、直接の影響はありません。ただし、`package.json` / `package-lock.json` に脆弱なバージョンが残っていると `npm audit` で警告が出続けます。依存関係を最新版に更新してロックファイルをコミットすることを推奨します。
参考資料
- GitHub Advisory Database「GHSA-v2wj-q39q-566r: Vite server.fs.deny bypass via query parameters」(2026年4月6日)
- NIST National Vulnerability Database「CVE-2026-39364」
- Vite GitHub リポジトリ Release Notes