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 Software | Affected Versions | Patched Version |
|---|---|---|
| npm/next | >=13.0.0 <15.2.2 | 15.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 Term | Definition |
|---|---|
| CSWSH | Cross-site WebSocket Hijacking, where a malicious site hijacks a WebSocket. |
| App Router | Next.js feature for routing, affected by this vulnerability. |
| allowedDevOrigins | Next.js config option to limit allowed WebSocket origins in dev mode. |
クレジット:この脆弱性は、sapphi-red と Radman Siddiki により適切に開示され、Next.js コミュニティへ向けたタイムリーな修正が達成された。
速やかなアップグレードと、開発環境のセキュア・コンフィグにより、将来的における同様のリスクを最小限に抑えることが可能となる。
Next.js に発見された CSWSH 脆弱性が、開発者にとって深刻な懸念であることを伝えています。影響はローカル開発環境に限定されますが、ソースコードの漏洩リスクは無視できません。適切なアップデートとセキュアな設定が強く求められます。よろしければ、Next.js で検索も、ご参照ください。
You must be logged in to post a comment.