脅威動向 / THREAT INTELLIGENCE / CLOUD
露出したVite開発サーバーを狙う大規模スキャン — F5が2026年8月に3万2千件超を観測、AWS・Azureの認証情報の窃取を狙う
F5の研究チームF5 Labsは2026年9月11日、インターネットに露出したViteの開発サーバーからクラウドの認証情報や構成ファイルを盗み出そうとする大規模なスキャン活動を観測したとする分析を公表した。2026年8月に807件のセッション(約3万2千件のイベント)を記録し、直前3か月間の合計1,732件から急増した。活動の中心は、Vite開発サーバーの`server.fs.deny`をクエリパラメータで回避できる脆弱性CVE-2026-39364(CVSS 7.5)で、攻撃者は`.env`やAWSの認証情報、Terraformのstateファイル、Azureの認証情報を網羅的に試していた。
要点
- F5の研究チームF5 Labsは2026年9月11日、インターネットに露出したViteの開発サーバーを狙う自動スキャン活動の分析を公表した。**2026年8月に807件のセッション(約3万2千件のイベント)**を記録し、直前3か月間の合計1,732件から急増した。
- 活動の中心はCVE-2026-39364(CVSS 7.5)である。Vite開発サーバーの
server.fs.denyをクエリパラメータで回避し、認証なしで任意のファイルを取得できる。修正版は7.3.2と8.0.5で、影響を受けるのは7.3.2より前の版と8.0.5より前の版である。 - 攻撃者は**
.env、AWSの認証情報(/root/.aws/credentialsなど)、Terraformのstateファイル、Azureの認証情報**を網羅的に試した。取得に成功すれば、クラウドの管理者権限につながる認証情報が漏えいするおそれがある。 - F5は、Viteを7.3.2または8.0.5以降へ更新すること、開発サーバーを外部インターフェースに束縛しないこと、2026年8月に未修正のサーバーが外部から到達可能だった場合は認証情報をローテーションすることを挙げている。
F5の研究チームF5 Labsは2026年9月11日、インターネットに露出した開発ツールを狙う自動化された偵察活動について、2026年8月の観測結果を公表した。同チームは**ハニーネット(攻撃をおびき寄せる観測網)**のセンサーで、露出したViteの開発サーバーからクラウドの認証情報や構成ファイルを盗み出そうとするスキャンを継続的に観測している。
最も重要な点は、攻撃の量が短期間で大きく増えたことである。F5 Labsは、Vite関連のファイル読み取りの試行が、それ以前の3か月間の合計1,732件から、2026年8月だけで3万2千件超へ増えたと報告している。同チームは、新しく公開された回避手法が自動化された認証情報窃取の運用に素早く組み込まれる傾向を示す例だと位置づけている。
何が起きたか — 1か月で3万2千件超のスキャン
F5 Labsが観測した活動の規模は次のとおりである。
- セッション単位の攻撃 — 807件
- イベント数(生の記録) — 約32,000件(集計期間は1か月)
- 攻撃の種類別 — 情報漏えい(Information Leakage)32,010件、予測可能なリソース位置(Predictable Resource Location)1,729件、パストラバーサル1,586件
攻撃元のIPアドレスは、Google Cloud Platform(GCP)のアドレス範囲(34.x系と35.x系)に集中していた。F5 Labsは、レンタルされたクラウド基盤上で運用されていると評価し、観測された攻撃元の国別内訳を次のように示している。
| 攻撃元の国・地域 | 観測イベント数 |
|---|---|
| 米国 | 17,297 |
| ベルギー | 4,407 |
| オランダ | 4,011 |
| シンガポール | 2,842 |
| 台湾 | 1,994 |
| 日本 | 1,353 |
| ルーマニア | 90 |
| アンドラ | 12 |
個別の攻撃元IPでは、34[.]14[.]15[.]105、34[.]16[.]200[.]129、34[.]11[.]196[.]206が、CVE-2026-39364と古いViteの回避手法の両方で同程度の量を生成していた。同じクラスターの一部(103件)は、Next.jsのミドルウェア回避(CVE-2025-29927)も試しており、F5 Labsは複数のフレームワークを同時に試すスキャナだと分析している。
悪用される脆弱性 CVE-2026-39364
Viteは、Webアプリケーションの開発で広く使われる開発サーバー兼ビルドツールである。開発中のファイルをブラウザから読み込めるよう、ホストのファイルシステムを配信する@fsという内部ルートを持つ。このルートは**server.fs.denyという拒否リストの設定**で、.envや証明書、非公開のソースコードなどを保護している。
CVE-2026-39364は、この拒否リストをクエリパラメータの操作で回避できる脆弱性である。
- 種別 — 未認証のファイル読み取りおよびアクセス制御リストのバイパス
- CVSSスコア — 7.5(High)
- CWE — CWE-200(機密情報の非認可アクターへの露出)
- 影響を受けるバージョン — Vite 7.1.0以降の7.3.2より前の版、および8.0.5より前の版
- 認証 — 不要
- 公表日 — 2026年4月7日
?raw、?import&raw、?import&url&inlineといったパラメータを付けてリクエストすると、サーバーが拒否リストのチェックを適用しないまま対象ファイルをHTTP 200で返してしまう。攻撃の流れは次の3段階である。
- 未認証のスキャナが、機密ファイルのパスと回避用のクエリパラメータを付けて
/@fs/エンドポイントへHTTP GETリクエストを送る。 - サーバーはパスを正規化する際にクエリ文字列を除去または誤解釈し、
server.fs.denyのチェックを実行しない。 - サーバーが対象ファイルを平文でレスポンス本文に返す。
設定ディレクトリが狙われた場合、攻撃者はAPIキー、データベースのパスワード、クラウドの管理者権限につながる認証情報をそのまま取得できる。
F5 Labsは、この活動が従来のViteのアクセス制御上の欠陥と同時に観測されたことも報告している。
- CVE-2025-30208(CVSS 5.3) — クエリ文字列の末尾区切りを使った
@fsの回避。6.2.3、6.1.2、6.0.12、5.4.15、4.5.10で修正済み。 - CVE-2025-31125(CVSS 5.3) —
?inline&importや?raw?importによる内容の露出。CISAのKEV(悪用が確認された脆弱性)カタログに掲載されている。 - CVE-2024-45811(CVSS 4.8) —
?import&rawによるファイル取得。
F5 Labsは、こうした脆弱性が悪用されやすいのは、クエリ文字列を工夫するだけで済むためであり、外部から到達できるサーバーがあれば攻撃は容易だと指摘している。
なお、Viteは既定ではlocalhostにのみバインドされる。露出が生じるのは、開発者が**--hostオプションやserver.hostの設定で外部に公開した場合**や、Dockerのポート割り当てを誤って設定した場合である。
攻撃者が狙ったファイル
F5 Labsが観測したスキャンは、単一のファイルを試すのではなく、用途別に整理された語句リストを順番に試すものだった。狙われたファイルは次のように分類できる。
- 環境設定ファイル —
.env、.env.local、.env.production、.env.development、.env.staging - AWSの認証情報 —
/root/.aws/credentials、/home/ec2-user/.aws/credentials、/home/ubuntu/.aws/credentials、/home/node/.aws/credentials、/home/www-data/.aws/credentials、/home/admin/.aws/credentials、/home/debian/.aws/credentials、/var/www/.aws/credentials、/usr/src/app/.aws/credentials、/app/.aws/credentials - AWSの設定とバックアップ —
.aws/config、.aws/credentials.backup、.aws/credentials.bak、.aws/sso/cache/、rootkey.csv、aws-exports.js、amplifyconfiguration.json - IaC(Infrastructure as Code)の状態ファイル —
terraform.tfstate、terraform.tfvars、.terraform/terraform.tfstate、serverless.yml、.serverless/serverless-state.json - Azureのプロファイル —
.azure/credentials、.azure/accessTokens.json - システムのメモリと環境の記述子 —
/etc/passwd、/proc/self/environ、/proc/1/environ、/proc/self/cwd/.env
F5 Labsは、/proc/self/cwd/.envを狙っている点に注目している。これは、アプリケーションの絶対パスを推測しなくても、稼働中のプロセスが使っている.envを読めるためで、攻撃者がデプロイ構成を理解していることを示すという。
リクエストの構文にも特徴がある。攻撃者は末尾の区切り文字を使った回避とパストラバーサルを組み合わせ、次のようなパスを試していた。
GET /@fs/.env?raw??
GET /@fs/root/.env?raw??
GET /@fs/../.env?raw??
GET /@fs/..%252f..%252f..%252f..%252froot/.env?raw??
GET /@fs/..%252f..%252f..%252f..%252fproc/self/environ?raw??
F5 Labsは、%252fのような二重エンコードについて、中間に置かれたリバースプロキシやWAFの正規化処理を回避する意図だと説明している。
通信の痕跡と偽装
スキャンは、自動化スクリプトに典型的なHTTP/1.0とConnection: closeを使っていた。注目すべきはUser-Agentの偽装である。攻撃者は次のような主要なクローラーやAIクローラーの名前を装っていた。
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)Mozilla/5.0 (compatible; ClaudeBot/1.0; [email protected])Mozilla/5.0 (compatible; GPTBot/1.4; +https://openai.com/gptbot)Mozilla/5.0 (compatible; PerplexityBot/1.0; +https://perplexity.ai/perplexitybot)Mozilla/5.0 (compatible; OAI-SearchBot/1.3; +https://openai.com/searchbot)Mozilla/5.0 (compatible; Amazonbot/0.1; +https://developer.amazon.com/support/amazonbot)
さらに、攻撃者は**偽のX-Forwarded-ForとX-Real-IP(34[.]94[.]237[.]62、104[.]28[.]219[.]193など)**を付けて、IPアドレスによるアクセス制御を回避し、ログの解析を難しくしようとしていた。
MITRE ATT&CKへの対応
F5 Labsは、観測した活動を次のように整理している。
| 戦術 | 手法 | 根拠 |
|---|---|---|
| 偵察(Reconnaissance) | アクティブスキャン: 脆弱性スキャン(T1595.002) | 露出したポートのVite @fsルートを探索 |
| 初期アクセス(Initial Access) | 公開アプリケーションの悪用(T1190) | クエリ文字列の回避を使ってローカルファイルを取得 |
| 認証情報アクセス(Credential Access) | 保護されていない認証情報: ファイル内の認証情報(T1552.001) | .aws/credentials、.env、terraform.tfstateを標的に |
| 収集(Collection) | ローカルシステムからのデータ(T1005) | システムの秘密情報と/procの情報を回収 |
| 探索(Discovery) | ファイルとディレクトリの探索(T1083) | ユーザーのホームディレクトリ配下を語句リストで列挙 |
F5が示した推奨事項
F5 Labsは、Node.jsとViteを使うアプリケーションを運用する開発チームとセキュリティチームに対し、次の対応を挙げている。
- Viteを更新する — 7.3.2、8.0.5、または4.5.x、5.4.x、6.x系の最新の修正版へ更新する。
- ネットワークインターフェースを制限する — 開発サーバーを外部インターフェースにバインドしない。Docker Composeの設定、KubernetesのIngressルール、クラウドのセキュリティグループを点検し、開発用ポート(5173番など)がインターネットへ直接公開されないようにする。
- WAFで悪用パターンを遮断する —
/@fs/を含むリクエストを拒否するルールを設定する。F5 Labsは自社のWAF製品にVite関連の悪用を遮断する署名があることを例として挙げている。 - クローラーの判定にUser-Agentを使わない — 逆引きDNSで発信元を検証してから、クローラー向けのアクセス許可を適用する。
- 露出していた場合はシークレットをローテーションする — 2026年8月に未修正のVite開発サーバーが外部ネットワークから到達可能だった場合は、
.envの値、AWSの認証情報、Azureのアクセストークン、Terraformのstateファイルを漏えいした可能性があるものとして扱い、関連する鍵を直ちに交換する。
日本に関係する点
この分析は日本を標的とした攻撃を直接扱ったものではないが、日本の開発チームにも関係する要素がある。F5 Labsの集計では、攻撃元として日本からも1,353件が記録されている。攻撃元IPはクラウド事業者の範囲に集中しているため、日本から記録された分には、国内のクラウド基盤を踏み台にした通信が含まれている可能性がある。
一方で、Viteは日本国内のWeb開発でも広く使われるツールであり、開発サーバーを検証環境やステージング環境で外部に公開する運用が行われていると、設定ファイル経由でクラウドの認証情報を奪われるおそれがある。まず確認したいのは次の3点である。
- 利用中のViteのバージョン(7.3.2または8.0.5以降か。4.5.x、5.4.x、6.x系は最新の修正版か)
- 開発サーバーが外部インターフェースに公開されていないか(Docker Compose、Kubernetes、クラウドのセキュリティグループ)
- 過去に公開状態があった場合、
.envやAWS・Azure・Terraformの認証情報を交換したか
出典
- F5 Labs「Cloud Takeover: Mass Scanning for Exposed Vite Endpoints (CVE-2026-39364)」2026年9月11日 https://www.f5.com/labs/articles/cloud-takeover-mass-scanning-for-exposed-vite-endpoints-cve-2026-39364
この記事は、公開情報と編集部の調査・知見をもとに構成しています。内容は公開時点の情報に基づく解説であり、個別の環境への診断・対応を保証するものではありません。重要な判断では、記事内の出典や各提供元の最新情報もご確認ください。