Next.js の脆弱性レポート(CVE-2026-44580)
調査日: 2026-05-09 ステータス: Published (GitHub Advisory: Reviewed 2026-05-06)
概要
Next.js の beforeInteractive スクリプトにおいて、シリアライズされたスクリプトコンテンツが安全にエスケープされずに HTML ドキュメントに埋め込まれる脆弱性が存在する。信頼されていないコンテンツが beforeInteractive スクリプトに渡された場合、任意の JavaScript が実行される XSS(クロスサイトスクリプティング)が発生する。
基本情報
| 項目 | 内容 |
|---|---|
| CVE ID | CVE-2026-44580 |
| GHSA ID | GHSA-gx5p-jg67-6x7h |
| CVSS v3.1 スコア | 6.1 (Moderate) |
| CVSS ベクター | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N |
| CWE | 情報なし |
| 公開日 | 2026-05-06 |
| 最終更新日 | 2026-05-06 |
影響を受けるソフトウェア
Next.js (npm)
- ベンダー: Vercel
- 影響バージョン:
>= 13.0.0, < 15.5.16/>= 16.0.0, < 16.2.5 - 修正バージョン: 15.5.16 / 16.2.5
脆弱性の詳細
Next.js では next/script コンポーネントの strategy="beforeInteractive" を使用して、ページの対話的になる前にスクリプトを読み込むことができる。このスクリプトのコンテンツはサーバーサイドでシリアライズされ、HTML ドキュメントに直接埋め込まれるが、シリアライズ時に適切な HTML エスケープが行われていなかった。攻撃者が beforeInteractive スクリプトのコンテンツに信頼されていないデータ(例: ユーザー入力、外部 API レスポンス等)を注入できる場合、</script> タグの挿入等により任意の JavaScript コードを実行させることが可能であった。スコープ変更(S:C)により、同一ページ上の他のオリジンのコンテンツにも影響が波及する。修正ではシリアライズされたコンテンツの HTML エスケープが適用された。
対策・推奨事項
- Next.js を 15.5.16 以降または 16.2.5 以降にアップグレードする
beforeInteractiveスクリプトのシリアライズ時に HTML エスケープが適用される修正が含まれている- アップグレードが即座にできない場合、
beforeInteractiveスクリプトに信頼されていないデータを渡さないようアプリケーションコードを確認する - 一般的な XSS 対策として、CSP(Content Security Policy)ヘッダーの設定を推奨
フロントエンド影響分析
Next.js はフロントエンドフレームワークであり、このセクションは必須。
| 構成 | 影響度 | 対処要否 | 備考 |
|---|---|---|---|
| SPA(クライアントサイドのみ) | 🟡 中 | 要確認 | XSS はブラウザサイドの問題であり、信頼されていないデータが beforeInteractive スクリプトに渡された場合にブラウザ上で実行される |
| SSR(サーバーサイドレンダリング) | 🔴 高 | 要対処 | サーバーがエスケープされていないコンテンツをレンダリングし、すべてのクライアントで実行される |
判定の考え方
- ブラウザのセキュリティ境界: この脆弱性は最終的にブラウザ上で JavaScript が実行される XSS であるため、ブラウザのセキュリティ境界内で攻撃が成立する。スコープ変更(S:C)により、攻撃はレンダリング元のオリジンを超えて影響を及ぼす可能性がある。CSP はこの攻撃の緩和に有効であるが、
beforeInteractiveスクリプトはインラインスクリプトとして埋め込まれるため、unsafe-inline を許可している場合は防御されない。 - 実行環境: SSR 構成ではサーバーがエスケープされていないスクリプトコンテンツを含む HTML をレンダリングするため、すべてのクライアントが影響を受ける。SPA 構成でも
beforeInteractiveスクリプトを使用している場合は影響の可能性があるが、静的エクスポートではサーバーサイドでの動的なデータ注入が限定的であるため影響度は中程度となる。 - 攻撃ベクター: ネットワーク経由(AV:N)で認証不要(PR:N)だが、ユーザーの操作(UI:R)が必要(被害者が攻撃者の誘導するページにアクセスする必要がある)。機密性と整合性への影響は限定的(C:L/I:L)だが、スコープ変更により影響範囲は広い。
- ランタイム vs ビルドタイム: この脆弱性はランタイムにおけるサーバーサイドレンダリングの問題であり、ビルドタイムには直接影響しない。ただし、静的サイト生成(SSG)でビルド時に信頼されていないデータを
beforeInteractiveスクリプトに埋め込む場合は、ビルド時に生成されたHTMLにも脆弱なコードが含まれる可能性がある。
参考リンク
情報ソース
| ソース | 取得状況 |
|---|---|
| NVD (NIST) | ❌ 取得不可 |
| GitHub Advisory | ✅ 取得済み |
| Web検索 | ✅ 取得済み |