Viteの脆弱性GHSA-p4f5-76q4-ffq7|開発サーバーでコード実行、確認方法と修正版

公開 2026-11-11公表 2026-11-10資料確認 2026-11-11JavaScript / TypeScriptの脆弱性 313件のまとめ
起きること開発に使う端末やサーバーで不正な処理を動かされ、ファイルを読まれるおそれ
使われている所Vite・Vite+でWebアプリを開発する環境
対象製品Vite
識別番号GHSA-p4f5-76q4-ffq7
影響範囲Vite 4.0.0〜6.4.5、7.0.0〜7.3.7、8.0.0〜8.1.6、8.2.0〜8.2.4、8.3.0〜8.3.6。Vite+ 1.5.0以下。開発サーバーのネットワーク公開が条件
修正情報Vite 6.4.6・7.3.8・8.1.7・8.3.7、Vite+ 1.5.1。8.2.5は告知に記載があるがnpmで配布を確認できず
次にやること①開発用サーバーの公開範囲を確認 ②修正済みのバージョンへ更新して再起動

Viteは11月10日、ネットワークへ公開した開発サーバーで任意のコードを実行される脆弱性GHSA-p4f5-76q4-ffq7を公表しました。開発サーバーの公開範囲と依存関係を確認し、使っている系列に対応する修正バージョンへ更新します。Vite+も対象です。[1]

この記事の要点
  • 対象は--hostやserver.hostでネットワークへ公開した開発サーバーです。
  • Vite 6.4.6・7.3.8・8.1.7・8.3.7とVite+ 1.5.1の配布を確認しました。
  • Vite 8.2.5はnpmで取得できませんでした。8.2系では互換性を確認して8.3.7への更新を検討します。
  • Vite 8はRolldownの依存関係も確認し、更新後に開発サーバーを再起動します。

01開発サーバーでコード実行やファイル漏えいが起きる問題

ViteのGHSA-p4f5-76q4-ffq7は、開発サーバーへ送られたHTTPリクエストから、サーバー上で任意のコードを実行できる脆弱性です。Viteが内部で生成する仮想モジュールへ、URL由来の値を適切に処理せず埋め込むことが原因です。許可範囲の外にあるファイルを読み取られる問題も含みます。[1]

Vite提供元の評価はCVSS 4.0で9.1(緊急)です。影響を判断するときは、インストールしたバージョンに加え、開発サーバーを誰が接続できる状態で起動しているかを確かめます。[1]

02ネットワークへ公開した開発サーバーが対象

提供元は、--hostまたはserver.hostでViteの開発サーバーを明示的にネットワークへ公開しているアプリを対象に挙げています。[1]

  • package.jsonの起動スクリプトとvite.config.*で、ホスト指定を確認します。
  • コンテナのポート公開、開発用の共有環境、リバースプロキシを含め、信頼できない利用者が開発サーバーへ到達できないか確認します。
  • Viteを間接的に使うフレームワークやVite+も、実際に起動する依存関係を確認します。

静的にビルドしたファイルだけを配信する構成は、告知にある開発サーバーへのリクエストという成立条件に当たりません。[1]

03ファイル読み取りのPoCが公開済み

提供元の告知には、許可範囲外のファイルを読み取るPoCが掲載されています。コード実行へつながる仕組みも説明されていますが、確認した告知には実際の攻撃を観測したとの記載はありません。[1]

04対象バージョンと配布を確認できた更新先

提供元が示す対象範囲と修正バージョンは次のとおりです。[1]

影響を受ける範囲告知の修正バージョン今回の更新先
Vite 4.0.0〜6.4.56.4.66.4.6への移行を検討
Vite 7.0.0〜7.3.77.3.87.3.8
Vite 8.0.0〜8.1.68.1.78.1.7
Vite 8.2.0〜8.2.48.2.5配布を確認できた8.3.7へ
Vite 8.3.0〜8.3.68.3.78.3.7
Vite+ 1.5.0以下1.5.11.5.1

npmで6.4.6・7.3.8・8.1.7・8.3.7とVite+ 1.5.1の配布を確認しました。8.2.5はGitHubにリリースがありますが、確認時のnpmのバージョン一覧に存在せず、個別の取得も404でした。8.2系では、互換性を確認して8.3.7へ上げます。[2][3][4][5]

Vite 4・5系から6.4.6への移行ではメジャーバージョンが変わります。プラグインとフレームワークの対応も確認します。この表は今回の脆弱性への更新先です。更新前に採用するバージョンのリリースノートと、ほかのセキュリティ告知も確認してください。

05依存関係を確認し、更新後に開発サーバーを再起動する

  1. 実際に使うバージョンを確認します。プロジェクトのディレクトリでnpm ls vite vite-plus rolldown --allを実行します。package.jsonだけでなくpackage-lock.jsonも確認し、フレームワークが持つ別のViteが残っていないか調べます。
  2. 使っている系列に合わせて更新します。Viteを開発依存に直接登録している8.3系の例はnpm install --save-dev vite@8.3.7です。7系・6系は表の更新先を使い、間接依存なら親のフレームワークの更新方法に従います。pnpm・Yarnを使うプロジェクトでは、その管理ツールで依存関係とlockファイルを更新します。
  3. 修正が反映されたことを確認します。再度npm ls vite vite-plus rolldown --allを実行し、lockファイルの差分とテスト・ビルドを確認します。実行中の開発サーバーを停止して起動し直し、共有環境や開発用コンテナも更新した依存関係で作り直します。

Vite 7.3.8・8.1.7・8.3.7のNode.js要件は^20.19.0 || >=22.12.0です。Vite+ 1.5.1は^22.18.0 || ^24.11.0 || >=26.0.0なので、Viteと同じ要件として扱わず、実行環境も確認します。[4][6][7][8]

脆弱性の公表・更新一覧 2026年10月版の表紙
資料(無料)脆弱性の公表・更新一覧 2026年10月版60日間の公表・更新と、悪用が確認された脆弱性を分析し、どこから直すかの考え方と確認の手順をまとめた資料です。

06更新まで開発サーバーの公開を止める

提供元の告知には、更新とは別の回避策の記載はありません。影響条件は開発サーバーのネットワーク公開です。[1]

更新までの間は、外部へ公開している開発サーバーを停止し、ポート公開や中継経路を閉じます。開発を続ける必要がある場合も、利用者を限定した環境で、アクセス制限が実際に効いていることを確認します。ファイルの許可範囲を絞る設定だけに依存せず、サーバーへの到達自体を制限します。

07Vite 8ではRolldownも更新されたことを確認する

Vite 8の問題のあるコードはRolldownのバイナリ内にあります。提供元は、Vite 8.1.7ではRolldown 1.1.7、Vite 8.2.5・8.3.7ではRolldown 1.2.17の修正を使うと説明しています。実際に配布されたVite 8.3.7はRolldown ~1.2.18を依存関係に指定しています。[1][3][6]

overridesやresolutionsでRolldownを古いバージョンへ固定している場合は、その指定も確認します。Viteの番号だけを変えて古いバイナリを残さないよう、依存関係とlockファイル、開発用コンテナの中身を合わせて更新します。

よくある質問

本番の静的サイトも対象ですか?

告知が対象とするのは、ネットワークへ公開したViteの開発サーバーです。ビルド済みの静的ファイルだけを配信している場合は、その成立条件に当たりません。本番環境で開発サーバーを動かしていないか確認してください。

Vite 8.2.5に更新すればよいですか?

提供元は修正バージョンとして8.2.5を挙げていますが、確認時のnpmには存在しませんでした。配布を確認できた8.3.7を更新先として、フレームワークやプラグインの互換性を確認してください。

Viteの番号だけを確認すれば十分ですか?

Vite 8ではRolldownのバイナリに修正があります。依存関係の固定指定、lockファイル、コンテナ内のパッケージを確認し、更新した構成で開発サーバーを起動し直します。

出典・参考資料

  1. Vite提供元:GHSA-p4f5-76q4-ffq72026-11-10(日本時間) / 成立条件、影響範囲、修正バージョン、CVSS 4.0 9.1、PoC、Rolldownの修正
  2. npm:Viteの配布メタデータ2026-11-11確認 / 6.4.6・7.3.8・8.1.7・8.3.7の配布と8.2.5が一覧に存在しないこと
  3. Vite提供元:v8.3.7リリース2026-11-09(日本時間) / Rolldown 1.2.18への更新
  4. npm:vite-plus 1.5.12026-11-11確認 / Vite+の配布とNode.jsの要件
  5. Vite提供元:v8.2.5リリース2026-11-09(日本時間) / GitHub上の8.2.5リリースの存在
  6. npm:vite 8.3.72026-11-11確認 / Node.jsの要件とRolldown ~1.2.18への依存
  7. npm:vite 8.1.72026-11-11確認 / 配布、Node.jsの要件、Rolldown ~1.1.7への依存
  8. npm:vite 7.3.82026-11-11確認 / 配布とNode.jsの要件

あわせて読みたい記事

JavaScript / TypeScript公開 2026-11-01

Viteの脆弱性CVE-2026-118662|.envを読まれる6.4.4の確認方法と6.4.5への更新

Vite 6.4.4の脆弱性CVE-2026-118662は、ネットワークに公開した開発サーバーで、拒否したはずの.envなどを返すおそれがあります。10月6日の更新で6.4.4にした環境が対象になった理由、初期設定で条件がそろう点、Astro 5など間接の依存の確かめ方、6.4.5への上げ方を説明します。

JavaScript / TypeScript公開 2026-11-02

Next.jsの脆弱性3件(2026年10月)|対象バージョンと確認方法、16.4.1・15.5.28への更新

Next.jsで日本時間10月15日に公表された脆弱性3件(GHSA-673q-mjm6-r5xr、CVE-2026-96889ほか)は、use cache・SVGの画像最適化・Server Actionsでコード実行やサービス停止のおそれがあります。系列ごとの対象と修正版、15系でsharpが古いまま残る場合の確かめ方、ホスティングごとの違いを説明します。