Next.js Dev Server の脆弱性 CVE-2025-48068 が FIX:WebSocket サーバにおけるオリジン検証の欠如

Next.js Dev Server Vulnerability Leads to Developer Data Exposure

2025/05/30 gbhackers — 人気の Next.js フレームワークに発見された 脆弱性 CVE-2025-48068 が、開発者の間で懸念を引き起こしている。この脆弱性が影響を及ぼす範囲は、App Router が有効化されている Next.js のバージョン 13.0.0 〜 15.2.1 であり、Cross-site WebSocket Hijacking (CSWSH) を介して開発サーバを悪用する攻撃者に対して、機密性の高いアプリケーション・ソースコードを公開する可能性が生じる。

すでに、この問題はバージョン 15.2.2 で修正されている。ただし、開発者コミュニティにとっては、その技術的な影響と緩和策を理解することが重要となっている。

CSWSH が Next.js を標的とする仕組み

この脆弱性は、Next.js 開発環境の WebSocket サーバにおけるオリジン検証の欠如に起因する。

npm run dev/next dev などによる開発サーバの実行時において、プロジェクトが App Router 機能を使用している場合に、悪意の Web サイトが localhost への WebSocket 接続を確立し、コンポーネントのソースコードにアクセスする可能性が生じる。

この攻撃は Cross-site WebSocket Hijacking (CSWSH) と呼ばれ、サーバが明示的にオリジン・ヘッダーを確認しない限り、任意の Web サイトのブラウザから WebSocket 接続を開始できる機能を悪用するものだ。

テクニカル・サンプル
javascript// Vulnerable WebSocket server (simplified)
const ws = new WebSocket('ws://localhost:3000/_next/webpack-hmr');
// No origin verification in the dev server

Next.js 開発サーバの実行中に、開発者が悪意のサイトにアクセスすると、攻撃者のスクリプトがローカル・サーバに接続され、内部ソースコード (特に App Router を使用しているプロジェクト) の抽出へと至る (バージョン 13.4 未満では、experimental.appDir = true が必要)。

影響の範囲と緩和策

この脆弱性が影響を及ぼす範囲は、ローカルの開発環境に限定されており、Vercel でホストされてる本番環境には影響しない。

しかし、そのリスクは重大である。攻撃が成功すると、独自のコードや機密ロジックに対する、権限のない第三者によるアクセスを許す可能性が生じる。

脆弱性の範囲:

Affected SoftwareAffected VersionsPatched Version
npm/next>=13.0.0 <15.2.215.2.2

推奨されるアクション:

アップグレード:Next.js をバージョン 15.2.2 以降にアップデートする。それにより、開発用 WebSocket サーバ上に、厳格なオリジン・チェックが導入される。

回避策:

  • ローカル開発サーバーの実行中は、信頼できない Web サイトの閲覧を避ける。
  • ローカルのファイア・ウォールまたはプロキシ・ルールを用いて、localhost への権限のない WebSocket アクセスをブロックする。
  • next.config.js の allowedDevOrigins コンフィグを利用して、開発中に接続できるオリジンを指定する。

コンフィグレーション例:

javascript// next.config.js
module.exports = {
  allowedDevOrigins: ['local-origin.dev', '*.local-origin.dev'],
};

この設定により、WebSocket 接続は信頼できるオリジンに制限され、開発の柔軟性を維持しながらリスクを軽減できる。

得られた教訓と今後の安全策

CVE-2025-48068 が慣用するインシデントが浮き彫りにするのは、開発ツールにおけるセキュアなデフォルト・コンフィグと厳格なオリジン・チェックの重要性である。

この脆弱性は CVE-2018-14732 を彷彿とさせるが、その影響範囲はローカル環境と試験運用中の App Router 機能に限定されている。

開発者に対して強く推奨されるのは、最新のパッチ適用済みバージョンの採用と、開発プラクティスの見直しである。特に、アクティブな開発セッション中の信頼できない Web コンテンツとのインタラクション関する、開発プラクティスの見直しが必要である。

概要表:

Technical TermDefinition
CSWSHCross-site WebSocket Hijacking, where a malicious site hijacks a WebSocket.
App RouterNext.js feature for routing, affected by this vulnerability.
allowedDevOriginsNext.js config option to limit allowed WebSocket origins in dev mode.

クレジット:この脆弱性は、sapphi-red と Radman Siddiki により適切に開示され、Next.js コミュニティへ向けたタイムリーな修正が達成された。

速やかなアップグレードと、開発環境のセキュア・コンフィグにより、将来的における同様のリスクを最小限に抑えることが可能となる。

Next.js に発見された CSWSH 脆弱性が、開発者にとって深刻な懸念であることを伝えています。影響はローカル開発環境に限定されますが、ソースコードの漏洩リスクは無視できません。適切なアップデートとセキュアな設定が強く求められます。よろしければ、Next.js で検索も、ご参照ください。