Vite 6.4.4の脆弱性の確認方法、開発サーバーから.envを読み取られるおそれと6.4.5への更新(CVE-2026-118662)
CVE-2026-118662フロントエンドの開発ツール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が返る
Viteの開発サーバー
出典 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日
4月6日
10月6日
10月21日
10月30日
11月1日
出典 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.5 | 6系の最新。変更はこの修正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へ上げる
出典 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へ上げる手順
使っているViteの版を、間接の依存まで含めて確かめます。pnpmは
pnpm why vite、Yarnはyarn why viteで同じことを確かめられます。6.4.4が1か所でも出れば対象です。ターミナルnpm ls vite --all開発サーバーをネットワークに公開していないかを、起動スクリプトと設定ファイルで確かめます。
ターミナルgrep -n -- "--host" package.json grep -n "host" vite.config.*Viteを直接入れている場合は、6.4.5以上に上げます。
ターミナルnpm install -D vite@^6.4.5Astroなど上位のツールの依存で6.4.4が入っている場合は、package.jsonのoverridesで版を指定し、
npm installし直します。Viteを直接の依存にも書いている場合は、値を"$vite"にします。[15]pnpmはpnpm.overrides、Yarnはresolutionsに同じ指定を書きます。package.json"overrides": { "vite": "^6.4.5" }開発サーバーを起動し直し、動いているViteの版を確かめます。
ターミナルnpx vite --version npm ls vite --all自分の開発サーバーで、拒否したファイルが返らないことを確かめます。プロジェクトのルートに.envがある状態で、応答が200以外(拒否)になれば直っています。
ターミナルcurl -s -o /dev/null -w "%{http_code}\n" "http://localhost:5173/.env?raw"
06すぐに6.4.5へ上げられないとき
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]

よくある質問
server.fs.denyに.envを足していなくても対象ですか?
対象になりえます。初期値で.envと.env.*が拒否の対象に入っているので、何も足していなくても3つ目の条件に当てはまります。[2]
出典・参考資料
- 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)、回避策の記載がないこと
- Vite公式:Server Options(v6.4.5の文書)2026-11-01確認 / server.hostの初期値、server.fs.allowの初期値、server.fs.denyの初期値
- GitHub Advisory Database:GHSA-8g5g-mxqh-grgj(CVE-2026-118662)2026-10-30収録(日本時間) / CVE番号、データベースへの収録日
- Vite公式:Shared Options(publicDir)2026-11-01確認 / publicディレクトリのファイルがそのまま配信されること
- Vite公式:6.4.5の変更履歴2026-10-21 / 6.4.5の変更点(クエリを外した後にもserver.fsを確かめる、の1件)
- 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の版
- 米CISA:Known Exploited Vulnerabilities Catalog2026-10-30版 / CVE-2026-118662が載っていないこと、CVE-2025-31125(Vite)の追加日2026-01-22
- 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
- Vite公式:GHSA-v2wj-q39q-566r(server.fs.deny bypassed with queries)2026-04-06 / 同じ種類の問題が7.3.2・8.0.5で直ったこと、6系の記載がないこと
- npm:astro 5.18.22026-05-26 / Astro 5系の最終版がviteを^6.4.1で求めること
- Vite公式:Releases(Supported Versions)2026-11-01確認 / 2つ前のメジャー版は最新のマイナー版だけがセキュリティの修正を受けること
- NVD:CVE-2026-1186622026-10-29登録(日本時間) / GitHubのCVSS 4.0 6.9、NVD独自の評価が未付与(Awaiting Analysis)
- FIRST:EPSS(CVE-2026-118662)2026-10-31 / EPSSの値
- Vite公式:GHSA-9jrq-w75r-8gcw2026-10-06 / 10月6日の脆弱性、6系は6.4.3以前が対象で6.4.4で修正
- npm Docs:package.json(overrides)2026-11-01確認 / 間接の依存の版を指定する方法、直接の依存と同じ名前を指定するときの$の参照
- 修正のプルリクエスト:github.com/vitejs/vite/pull/22160GitHub Advisoryの参考リンク / 修正の内容・経緯
- 修正のプルリクエスト:github.com/vitejs/vite/pull/23855GitHub Advisoryの参考リンク / 修正の内容・経緯
- 修正のコミット:github.com/vitejs/vite/commit/91e40d7bf9777057bbd31c3eb036a54c9465697eGitHub Advisoryの参考リンク / 修正の内容・経緯
- リリースノート:github.com/vitejs/vite/releases/tag/v6.4.5GitHub Advisoryの参考リンク / 修正の内容・経緯
あわせて読みたい記事
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の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などへの入れ替えと確かめ方を説明します。
Brotliの脆弱性の確認方法、PythonとNode.jsで対象かを確かめて直す(CVE-2026-111497、コード実行のおそれ)
圧縮形式Brotliの展開処理の脆弱性CVE-2026-111497(HTTP2Shell)は、米CISAが悪用を確認しています。Pythonのbrotli・brotlicffi、Node.jsの同梱版などで、自分の版と構成が対象かを確かめる方法と修正版を、言語ごとに説明します。