Vite 6.4.4の脆弱性の確認方法、開発サーバーから.envを読み取られるおそれと6.4.5への更新(CVE-2026-118662)

公開 2026-11-01公表 2026-10-21更新 2026-11-01資料確認 2026-11-01JavaScript / TypeScriptの脆弱性 126件のまとめ
対象製品Vite
識別番号CVE-2026-118662
影響範囲6.4.4のみ・開発サーバーをネットワークに公開している場合
修正情報6.4.5(6系)

フロントエンドの開発ツールViteの6.4.4で、開発サーバーが拒否するはずの.envなどを返してしまう脆弱性CVE-2026-118662が、2026年10月21日(日本時間)にViteから公表され、同じ日に6.4.5で直りました。6.4.4は10月6日に別の脆弱性の修正として出た版で、その告知に応じて上げた環境が対象になりました。急ぐかどうかは、開発サーバーをネットワークに公開しているかで決まります。

2026-11-01更新:一次情報と照合し、深刻度(CVSS 4.0 6.9、Viteの評価)、問題を起こすクエリ、6.4.3以前の扱い、回避策の記載がないこと、6.4.5への更新手順を追記しました。GitHub Advisory Databaseの収録日を日本時間(10月30日)に直しました。

2026-11-01更新:記事の型を解説に改め、10月6日の6.4.4で対象になった経緯、初期設定で条件がそろう点、Astro 5など間接の依存、系列ごとの推奨する版、確認の手順を書き足しました。

この記事の要点
  • 対象はVite 6.4.4だけで、修正版は6.4.5です。10月6日から21日のあいだに6.4.4へ上げた、またはロックファイルを作り直した環境が当てはまります。
  • 条件の分かれ目は、開発サーバーを--hostやserver.hostでネットワークに公開しているかです。.envと証明書は初期設定で拒否の対象なので、公開していれば残りの条件はそろいやすくなります。
  • Astro 5のように、上位のツールが6系のViteを引き込むことがあります。npm ls viteで間接の依存まで確かめます。

01Vite 6.4.4の脆弱性で起きること

Viteの開発サーバーは、server.fs.denyに一致するファイルを返さないようにしています。公式アドバイザリによると、6.4.4では要求に?raw、?import&raw、?import&url&inlineなどのクエリを付けると、この設定で拒否した.envや*.crtなどが正常な応答(HTTP 200)で返ります。[1]

.envには鍵やパスワードを置くことが多く、条件がそろうと認証なしで中身を読まれるおそれがあります。深刻度は、Viteの評価(CVEの採番機関のGitHubも同じ値)でCVSS 4.0の6.9(警告)です。NVDは独自の評価をまだ付けていません。GitHub Advisory Databaseへの収録は10月30日(日本時間)で、提供元の公表より後です。[1][3][12]

クエリを付けた要求で、拒否したはずの.envが返る

攻撃の入口クエリを付けた要求?raw、?import&raw、?import&url&inlineなどを付けて送る
ネットワークに公開した開発サーバーへ

Viteの開発サーバー

Vite 6.4.4クエリを付けた要求で、server.fs.denyの拒否が効かない
server.fs.deny初期値で.env、.env.*、*.{crt,pem}、**/.git/**を拒否する
HTTP 200で返る
.envや*.crtの中身置いてある鍵やパスワードを、認証なしで読まれるおそれ

出典 Vite「GHSA-8g5g-mxqh-grgj」(2026-10-21)、Vite「Server Options(v6.4.5)」(2026-11-01確認)

02Viteの開発サーバーが対象になる条件

公式アドバイザリは、次の3つの条件がすべてそろうアプリだけが影響を受けるとしています。表の初期値は、Vite公式の設定文書の記載です。[1][2]

公式が示す条件初期値確かめる所
開発サーバーをネットワークに公開しているserver.hostは'localhost'(公開しない)起動スクリプトの--host、設定のserver.host
機密のファイルがserver.fs.allowの中にあるワークスペースのルート(無ければプロジェクトのルート).envや証明書の置き場所
そのファイルがserver.fs.denyのパターンに一致する.env、.env.*、*.{crt,pem}、**/.git/**独自に足した拒否のパターン

初期値のままなら、プロジェクトのルートにある.envは2つ目と3つ目の条件に当てはまります。分かれ目は1つ目の公開の有無です(公式文書の初期値から見た当社の整理)。コンテナの中の開発サーバーに外から接続する構成では、--hostを付けて公開していることがあります。アドバイザリの条件は開発サーバーについてのもので、vite previewやビルドした成果物の記載はありません。[1][2]

03Viteのこの脆弱性の悪用の状況

米CISAの「悪用が確認された脆弱性の一覧(KEV)」には、11月1日の確認時点(10月30日版)で載っていません。今後30日に悪用される見込みの推定(EPSS)は0.3%です(10月31日時点)。[7][13]

アドバイザリには問題を起こすクエリが書かれていて、再現に必要な情報は公開されています。開発サーバーを公開した場合に?raw?importなどで拒否を回避できた、よく似たViteの過去の脆弱性CVE-2025-31125は、2026年1月22日からKEVに載っています。[1][7]

10月6日の6.4.4で生じた問題を、21日の6.4.5で直した

2026年1月22日

よく似た過去の脆弱性がKEVに載る?raw?importなどで拒否を回避できたCVE-2025-31125

4月6日

同じ種類の問題を7系・8系で修正GHSA-v2wj-q39q-566r。7.3.2・8.0.5で直り、6系の記載はない

10月6日

別の脆弱性2件の修正として6.4.4を公開組み合わせて必要な変更(#22160)を取り込まなかった

10月21日

Viteが公表し、6.4.5で修正変更はこの修正1件
6.9CVSS 4.0(Vite)

10月30日

GitHub Advisory Databaseに収録提供元の公表より後の収録

11月1日

KEVには載っていない10月30日版の一覧で確認
0.3%EPSS(10月31日)

出典 Vite「GHSA-8g5g-mxqh-grgj」(2026-10-21)、米CISA「Known Exploited Vulnerabilities Catalog」(2026-10-30版)、GitHub Advisory Database「GHSA-8g5g-mxqh-grgj」(2026-10-30収録)、npm「vite」(2026-11-01確認)

04Viteの系列ごとの対象と推奨する版

推奨する版は、Viteの公式アドバイザリと、npmに公開済みの版から出しました(11月1日確認)。上げる前に、Viteの変更履歴で変更点を確かめてください。[1][5][6]

系列この件の対象推奨する版補足
6系6.4.4だけ6.4.56系の最新。変更はこの修正1件で、必要なNode.jsの版も6.4.4と同じ
7系記載なし7.3.7同じ種類の問題は7.3.2で修正済み。10月6日の脆弱性は7.3.7で修正
8系記載なし8.3.3以上(8.2系は8.2.4、8.1系は8.1.6)同じ種類の問題は8.0.5で修正済み。10月6日の脆弱性はこの版で修正

Viteの方針では、6系は「2つ前のメジャー版」にあたり、最新のマイナー版(6.4)だけがセキュリティの修正を受けます。6.4.5の後に6系の新しい版は出ていません(11月1日確認)。[6][11]

この件の対象は6系の6.4.4だけで、6.4.5へ上げる

6系
この件の対象6.4.4だけ
推奨する版6.4.5
同じ種類の問題6.4.5で修正
10月6日の脆弱性6.4.3以前が対象で、6.4.4で修正
7系
この件の対象記載なし
推奨する版7.3.7
同じ種類の問題7.3.2で修正済み
10月6日の脆弱性7.3.7で修正
8系
この件の対象記載なし
推奨する版8.3.3以上8.2系は8.2.4、8.1系は8.1.6
同じ種類の問題8.0.5で修正済み
10月6日の脆弱性8.3.3・8.2.4・8.1.6で修正
だから 6.4.3以前に戻さず、6.4.5へ進む。

出典 Vite「GHSA-8g5g-mxqh-grgj」(2026-10-21)、Vite「GHSA-rq7h-c2jc-7f22」(2026-10-06)、Vite「GHSA-v2wj-q39q-566r」(2026-04-06)、npm「vite」(2026-11-01確認)

05Viteの版と公開の有無を確かめて、6.4.5へ上げる手順

  1. 使っているViteの版を、間接の依存まで含めて確かめます。pnpmはpnpm why vite、Yarnはyarn why viteで同じことを確かめられます。6.4.4が1か所でも出れば対象です。

    ターミナル
    npm ls vite --all
  2. 開発サーバーをネットワークに公開していないかを、起動スクリプトと設定ファイルで確かめます。

    ターミナル
    grep -n -- "--host" package.json
    grep -n "host" vite.config.*
  3. Viteを直接入れている場合は、6.4.5以上に上げます。

    ターミナル
    npm install -D vite@^6.4.5
  4. Astroなど上位のツールの依存で6.4.4が入っている場合は、package.jsonのoverridesで版を指定し、npm installし直します。Viteを直接の依存にも書いている場合は、値を"$vite"にします。[15]pnpmはpnpm.overrides、Yarnはresolutionsに同じ指定を書きます。

    package.json
    "overrides": {
      "vite": "^6.4.5"
    }
  5. 開発サーバーを起動し直し、動いているViteの版を確かめます。

    ターミナル
    npx vite --version
    npm ls vite --all
  6. 自分の開発サーバーで、拒否したファイルが返らないことを確かめます。プロジェクトのルートに.envがある状態で、応答が200以外(拒否)になれば直っています。

    ターミナル
    curl -s -o /dev/null -w "%{http_code}\n" "http://localhost:5173/.env?raw"

06すぐに6.4.5へ上げられないとき

公式のアドバイザリに回避策の記載はありません。条件から見ると、開発サーバーをネットワークに公開しない(--hostやserver.hostを外し、localhostだけで待ち受ける)環境は影響の条件から外れます。これは当社の整理で、提供元が示した回避策ではありません。[1][2]

公開していた期間に.envへ置いていた鍵は、読まれた可能性を前提に替えるかを判断します(当社の整理)。また、publicディレクトリのファイルは拒否の設定にかかわらずそのまま配信されるので、機密のファイルを置いていないかも確かめます。[4]

0710月6日の更新で6.4.4にした環境が対象になった理由

Viteは10月6日、開発サーバーの別の脆弱性(GHSA-rq7h-c2jc-7f22、GHSA-9jrq-w75r-8gcw)を公表し、6系の修正版として6.4.4を出しました。公式の説明では、6.4.4はその修正のために変更(#20410)を取り込みましたが、組み合わせて必要な変更(#22160)を取り込みませんでした。このため、4月に7系・8系で直った同じ種類の問題(GHSA-v2wj-q39q-566r)が、6系で起きるようになりました。[1][8][9][14]

10月6日の告知に応じて6.4.4へ上げた環境ほど対象になり、6.4.3以前に留まった環境はこの件の対象外です。ただし6.4.3以前は10月6日の2件の対象なので、戻すのではなく6.4.5へ進みます。6.4.4が6系の最新だったのは、npmに出た日本時間の10月6日14時49分から、6.4.5が出た21日14時35分までです。この間にnpm installやロックファイルの作り直しで6系の範囲を解決した環境に入りえます。[6]

08Astro 5などが引き込む6系のVite

Viteを直接入れていなくても、上位のツールの依存で入ります。たとえばAstro 5系の最終版5.18.2は、Viteを^6.4.1の範囲で求めます。Astroの版は変えていなくても、ロックファイルを作った時期によってViteは6.4.4になります。判断には、上位のツールの版ではなく、npm ls viteに出るViteの版を使います。[10]

脆弱性の公表・更新一覧で、JavaScript / TypeScriptの関連情報を調べることもできます。

緊急の場合AI攻撃リスク即点検サービス公開情報と、契約後すぐに用意できるアクセスの記録から先に調べ、被害や狙われやすい構成がないかを早く確かめます。

よくある質問

10月6日の告知で6.4.4に上げました。6.4.3に戻せばよいですか?

戻すと、10月6日に公表された2件の脆弱性の対象に戻ります。6系では6.4.5に上げると両方が直ります。[1][8]

server.fs.denyに.envを足していなくても対象ですか?

対象になりえます。初期値で.envと.env.*が拒否の対象に入っているので、何も足していなくても3つ目の条件に当てはまります。[2]

本番に置いたビルドの成果物も対象ですか?

アドバイザリの条件は開発サーバーについてのもので、ビルドした成果物やvite previewの記載はありません。ただしpublicディレクトリのファイルはビルドの成果物にもそのまま入るので、機密のファイルを置かないようにします。[1][4]

Vite 7・8を使っています。同じ問題はありますか?

この件のアドバイザリは「for v6」で、対象は6.4.4だけです。同じ種類の問題は4月にGHSA-v2wj-q39q-566rとして公表され、7.3.2・8.0.5で直っています。[1][9]

出典・参考資料

  1. Vite公式:GHSA-8g5g-mxqh-grgj(server.fs.deny bypassed with queries for v6)2026-10-21(日本時間) / 対象6.4.4、修正6.4.5、3つの条件、問題を起こすクエリ、原因、CVSS 4.0 6.9(Vite)、回避策の記載がないこと
  2. Vite公式:Server Options(v6.4.5の文書)2026-11-01確認 / server.hostの初期値、server.fs.allowの初期値、server.fs.denyの初期値
  3. GitHub Advisory Database:GHSA-8g5g-mxqh-grgj(CVE-2026-118662)2026-10-30収録(日本時間) / CVE番号、データベースへの収録日
  4. Vite公式:Shared Options(publicDir)2026-11-01確認 / publicディレクトリのファイルがそのまま配信されること
  5. Vite公式:6.4.5の変更履歴2026-10-21 / 6.4.5の変更点(クエリを外した後にもserver.fsを確かめる、の1件)
  6. npm:vite(版ごとの公開日時)2026-11-01確認 / 6.4.4(10月6日)と6.4.5(10月21日)の公開日時、6.4.5の後に6系の版が無いこと、7.3.7・8.1.6・8.2.4・8.3.3の公開、必要なNode.jsの版
  7. 米CISA:Known Exploited Vulnerabilities Catalog2026-10-30版 / CVE-2026-118662が載っていないこと、CVE-2025-31125(Vite)の追加日2026-01-22
  8. Vite公式:GHSA-rq7h-c2jc-7f222026-10-06 / 10月6日の脆弱性、6系は6.4.3以前が対象で6.4.4で修正、7.3.7・8.1.6・8.2.4・8.3.3
  9. Vite公式:GHSA-v2wj-q39q-566r(server.fs.deny bypassed with queries)2026-04-06 / 同じ種類の問題が7.3.2・8.0.5で直ったこと、6系の記載がないこと
  10. npm:astro 5.18.22026-05-26 / Astro 5系の最終版がviteを^6.4.1で求めること
  11. Vite公式:Releases(Supported Versions)2026-11-01確認 / 2つ前のメジャー版は最新のマイナー版だけがセキュリティの修正を受けること
  12. NVD:CVE-2026-1186622026-10-29登録(日本時間) / GitHubのCVSS 4.0 6.9、NVD独自の評価が未付与(Awaiting Analysis)
  13. FIRST:EPSS(CVE-2026-118662)2026-10-31 / EPSSの値
  14. Vite公式:GHSA-9jrq-w75r-8gcw2026-10-06 / 10月6日の脆弱性、6系は6.4.3以前が対象で6.4.4で修正
  15. npm Docs:package.json(overrides)2026-11-01確認 / 間接の依存の版を指定する方法、直接の依存と同じ名前を指定するときの$の参照
  16. 修正のプルリクエスト:github.com/vitejs/vite/pull/22160GitHub Advisoryの参考リンク / 修正の内容・経緯
  17. 修正のプルリクエスト:github.com/vitejs/vite/pull/23855GitHub Advisoryの参考リンク / 修正の内容・経緯
  18. 修正のコミット:github.com/vitejs/vite/commit/91e40d7bf9777057bbd31c3eb036a54c9465697eGitHub Advisoryの参考リンク / 修正の内容・経緯
  19. リリースノート:github.com/vitejs/vite/releases/tag/v6.4.5GitHub Advisoryの参考リンク / 修正の内容・経緯

あわせて読みたい記事

JavaScript / TypeScript公表 2026-10-01

better-authの脆弱性、OAuthのstateをMagic Linkとして使われ他人としてサインインされるおそれ(CVE-2026-114607、修正は1.7.7)

認証ライブラリbetter-authの脆弱性CVE-2026-114607は、Magic LinkとOAuthを併用する構成で、OAuthのstateをMagic Linkのトークンに流用され、他人としてサインインされるおそれがあります。対象かを設定で見分ける方法、1.7.7への更新と段取りを説明します。

PHP公表 2026-10-26

PHPのWindows版のBrotliの脆弱性、8.5.12-1などへの入れ替えとcURL・Guzzleの確かめ方(CVE-2026-111497)

PHPのWindows版に同梱のBrotliの脆弱性CVE-2026-111497は、米CISAが悪用を確認しています。10月21日の版も対象のままである理由、GuzzleやWordPressで自動展開が有効になる条件、8.5.12-1などへの入れ替えと確かめ方を説明します。

Python公表 2026-10-22

Brotliの脆弱性の確認方法、PythonとNode.jsで対象かを確かめて直す(CVE-2026-111497、コード実行のおそれ)

圧縮形式Brotliの展開処理の脆弱性CVE-2026-111497(HTTP2Shell)は、米CISAが悪用を確認しています。Pythonのbrotli・brotlicffi、Node.jsの同梱版などで、自分の版と構成が対象かを確かめる方法と修正版を、言語ごとに説明します。