SJ blog
frontend
A

信頼度ランク

S 公式ソース確認済み
A 成功実績多数・失敗例少数
B 賛否両論
C 動作未確認・セキュリティリスク高
Z 個人所感

Next.js / React 2026年5月の集中パッチ13件——CVE-2026-23870 RSC低帯域DoSとMiddlewareバイパスの仕組みと対策

Next.js 15.5.18・16.2.6とReact 19.x.6が2026年5月6日に13件のセキュリティアドバイザリを一括パッチ。React Server ComponentsのDoS、Middlewareバイパス、SSRF、CSP XSSを解説。

一言結論

Next.js 15.5.18・16.2.6がReact Server Componentsの低帯域DoS(CVE-2026-23870)を含む13件を修正した。攻撃は少量の特殊HTTPリクエストでサーバーCPUを枯渇させるため、パッチ適用が完全な緩和策の唯一の手段だ。旧マイナーバージョンへの個別パッチはない——今すぐアップグレードが必要。

何が起きたか

2026年5月6〜7日、VercelとReactチームが 13件のセキュリティアドバイザリを一括開示 した。

影響範囲はNext.jsの全主要バージョン(13.x〜16.x)とReact 19のServer Componentsパッケージに及ぶ。修正済みバージョンは以下の通り:

対象修正バージョン
Next.js15.5.18、16.2.6
React(react-server-dom-webpack)19.0.6、19.1.7、19.2.6
React(react-server-dom-turbopack)19.0.6、19.1.7、19.2.6
React(react-server-dom-parcel)19.0.6、19.1.7、19.2.6

重要:以前のマイナーバージョン(例: 15.5.17以前)への個別パッチは提供されない。 修正を受けるには指定マイナーへのアップグレードが必須。


主要脆弱性の詳細

CVE-2026-23870 — React Server Componentsへの低帯域DoS

最も広く影響する脆弱性だ。

React「Flight」プロトコルのデシリアライゼーションロジックに構造・型制約の検証が不十分なため、特殊に細工されたHTTPリクエストを App RouterのServer Function エンドポイントに送信するだけで、サーバーCPUを過剰消費させられる。

攻撃の特徴:
- 通常のDDoS(大量パケット)とは異なる「低帯域アプリ層DoS」
- 少数のリクエストで不釣り合いなCPU負荷を引き起こせる
- App Router(React Server Components)を使う全Next.jsが対象
- Pages Routerのみのプロジェクトは影響外
影響:  Next.js 13.x〜16.x(App Routerを有効にしている全プロジェクト)
       React 19.0.x〜19.2.x の react-server-dom-* パッケージ
修正:  Next.js 15.5.18、16.2.6 / React 各マイナー最新 (.6/.7/.6)

Middleware / Proxy バイパス — 3つの独立した経路

① segment-prefetch経由(App Router)

App Routerのプリフェッチルートに細工したリクエストを送ることで、Middlewareの認証・認可チェックを飛ばしてコンテンツに到達できる。

② 動的ルートパラメータインジェクション

ルートパラメータを特殊な値にすることで、Middlewareのパスマッチングを誤動作させる。

③ i18n設定環境(Pages Router)

i18n(国際化)を有効にした Pages Router 環境で、ロケールプレフィックスを使ったリクエストでMiddlewareをバイパスできる。

// 典型的な被害シナリオ
// middleware.ts で認証を実装している場合
export function middleware(request: NextRequest) {
  const token = request.cookies.get("token");
  if (!token) {
    return NextResponse.redirect(new URL("/login", request.url));
  }
  // ← この認証チェックが特定の経路でスキップされる
}

これらの脆弱性は、Middlewareに認証・認可ロジックを依存しているプロジェクトで特に危険 だ。

SSRF — WebSocketアップグレード経由

WebSocketへのプロトコルアップグレードリクエストを悪用することで、サーバーが攻撃者指定の内部URLにリクエストを転送させられるSSRF(Server-Side Request Forgery)が成立する。

悪用条件: WebSocketを使うNext.jsアプリ
影響:     AWSメタデータエンドポイント(169.254.169.254)等への
          内部ネットワークアクセスが可能になるケースがある

CSP Nonce XSS — 2パターン

  1. App RouterのCSPノンス: 信頼されていない入力がCSPノンスとして使われた際のXSS
  2. beforeInteractiveスクリプト: next/scriptbeforeInteractive ストラテジーに信頼されていない入力が渡された際のXSS

その他の修正項目

Image Optimization APIへのDoS(接続枯渇)、Cache Componentsを使ったDoS、さらに複数のキャッシュポイズニング経路が修正されている。


今すぐすること

Step 1: バージョン確認

# package.jsonで現在のNext.jsバージョンを確認
cat package.json | grep '"next"'

# または
npx next --version

Step 2: アップグレード

# Next.js 15系を使っている場合
npm install next@15.5.18

# Next.js 16系を使っている場合
npm install next@16.2.6

# App Router使用時はReact Server DOMパッケージも更新
# (使用マイナーに合わせて .6/.7/.6 のいずれかを選ぶ)
npm install react@latest react-dom@latest

Step 3: Middlewareの依存を再確認

Middlewareに認証・認可を依存させている箇所を洗い出し、アップグレード後に動作確認する。

// ✅ 推奨: Middlewareはアクセス制御の「第一層」として使い、
//    バックエンドAPIでも必ず再検証する
export function middleware(request: NextRequest) {
  const token = request.cookies.get("token");
  if (!token) {
    return NextResponse.redirect(new URL("/login", request.url));
  }
  // バックエンドAPIでも認証を再検証すること
}

Middlewareのみに認証を依存する設計は根本的に危険 ——今回の修正でバイパスが塞がれても、Middleware単独で認証を完結させる設計は将来の脆弱性に対して脆弱なままだ。バックエンドAPIでも必ず検証を再実施すること。


落とし穴・注意点

  • CDN・WAFの緩和は不完全: CloudflareがReact/Next.js向けの緩和シグネチャを公開しているが、パッチ適用のみが完全な修正だ。WAFは保険として使うこと
  • App RouterとPages Routerで影響が異なる: CVE-2026-23870はApp Routerのみ対象。Pages Routerのみのプロジェクトは影響しない(ただしi18n Middlewareバイパスは別)
  • 旧マイナーはパッチなし: 15.4.x や 16.1.x のまま留まることはできない。指定マイナーへのアップグレードが唯一の緩和策だ

まとめ・参考リンク

今回の13件はNext.js史上最大規模の一括パッチだ。特にApp Routerを使うプロダクションアプリは早急なアップグレードが必要で、Middlewareに認証を依存しているプロジェクトは修正後も設計を再検討する価値がある。

参考リンク:

注意事項: CVSSスコアは本記事執筆時点で全アドバイザリ分が公式サイトに掲載されていないため個別記載を省略した。各アドバイザリの詳細はNext.js GitHubセキュリティアドバイザリページを参照のこと。