先に要点
- 2026年5月に Vercel が公開した Next.js セキュリティリリース は、認可バイパス / SSRF / XSS / DoS / キャッシュポイズニング を含む 13件の脆弱性 を一括修正した、近年でも特に大規模な緊急アップデート。
- 推奨アップグレード先は Next.js 16.2.6 または Next.js 15.5.18。「 Next.js 13.x / 14.x」 はそのままだと安全パッチを受けられない ため、「15.5.18 か 16.2.6 へ上げる」 のが事実上の唯一の対応。
- 「react-server-dom-*」 系も 19.0.6 / 19.1.7 / 19.2.6 へ揃って上がる。RSC 利用者は要確認。
- Vercel は今回 WAF レベルの保護では対応できない、パッチングが唯一の完全な対策と明言。「CDN や WAF を入れてるから後回しで OK」 が成立しない設計レベルの問題が含まれている。
`Next.js から 「Security advisory」 のメールが大量に来て焦った」 「13件って多すぎて何から見ればいいの?」 「App Router 使ってるけど、自分は影響あり?」 ── 2026年5月の Next.js セキュリティリリースは、「大量の advisory が一度に出た事件」 として、フロントエンド界隈で大きな話題になりました。
ざっくり言うと、これは 認可・SSRF・XSS・DoS・キャッシュポイズニング という Web セキュリティの代表的な攻撃面に複数の穴があった ことを、Vercel が 調整リリース として一気に公開したものです。 「どれか1個だけ」 のニュースではなく、「同時に直さないと意味がない」 種類の修正が並んでいるのが、今回の重さの正体です。
この記事では、現時点(2026年5月15日)で公開されている Vercel の changelog をベースに、13件の脆弱性の中身・推奨バージョン・移行手順・運用上の注意 を整理します。 具体的な CVE 番号や CVSS スコアは順次更新されるので、最終確認は必ず 公式 changelog と各 GitHub Security Advisory を見てください。
修正された 13 件 — 分類で押さえる
「脆弱性名だけ羅列されても頭に入らない」 ので、まず 5つのカテゴリ で整理します。
| カテゴリ | 件数 | 主な内容 | 影響面 |
|---|---|---|---|
| 認可バイパス / プロキシ回避 | 5 | App Router プリフェッチ・Pages Router i18n・動的ルートパラメータの隙間で認可を抜けるパターン | 本番アプリの権限境界 |
| DoS | 3 | RSC DoS(CVE-2026-23870)、キャッシュコンポーネントでの接続枯渇、画像最適化 API 経由 | サービス停止リスク |
| SSRF | 1 | WebSocket アップグレードリクエスト処理の脆弱性 | 内部ネットワークへの不正アクセス |
| キャッシュポイズニング | 2 | RSC レスポンスのキャッシュポイズニング、RSC キャッシュバスティング衝突 | 他ユーザーに汚染データ表示 |
| XSS | 2 | CSP nonce 使用時 XSS、「beforeInteractive」 スクリプトでの XSS | セッション乗っ取り・改ざん |
「13件の advisory」 と聞くと身構えますが、5つの攻撃面に対する複数の修正 と理解すれば見通しは立ちます。
カテゴリ別に何が起きうるか
各カテゴリでどんな攻撃が現実に起きうるかを整理します。
1. 認可バイパス / プロキシ回避(5件)
「本来ログインユーザーや特定権限でしか見られない / 操作できないリソース」 が、URL の組み立て方や Pages Router の i18n 設定の隙間 を突くことで認可なしにアクセスできてしまう、というカテゴリです。
App Router セグメントプリフェッチ経由(高)
Next.js が裏で投げる プリフェッチ用リクエスト が、本来の Middleware / 認可チェックを通らずにレスポンスを返してしまうケース。「認証ガードした管理画面」 が、リンクホバーだけで内容を漏らす可能性がある。
プリフェッチバイパス追加修正(高)
過去のセキュリティ修正が 不完全 だった部分への追加対応。「前回ちゃんとアップデートしたから安心」 が成立しない、というのが今回の特に難しいところ。
Pages Router i18n + プロキシ(高)
「デフォルトロケールパス」 の解釈の差で、「/ja/admin」 は守られているが 「/admin」 ではプロキシ / Middleware を通らずに到達してしまう、というパターン。
動的ルートパラメータインジェクション(高)
「 [id] のような動的セグメント」 に細工した値を渡して、認可ロジックを欺くタイプ。「ID チェックを Middleware に任せきり」 のアプリで顕著。
このカテゴリは 本番アプリの権限境界を壊す 直接的な影響があり、「AdSense や決済を扱うサイト」 ほど被害が大きくなります。
2. DoS(3件)
「 サービスを止める / 重くする」 攻撃面で、1 リクエストで複数の関数を起動させる」 `重い処理を呼ばせて関数を枯渇させる 系の修正です。
RSC DoS(CVE-2026-23870、高)
React Server Components 経由で 「特定のリクエストを送ると関数が暴走 / メモリ枯渇」 を起こせる。「App Router 採用済み + 本番」 のアプリ全部が対象になる重要修正。
キャッシュコンポーネント接続枯渇(高)
「 キャッシュコンポーネント機能を使うと、特定パターンのリクエストで接続が枯渇 → サービス停止」 という構造。「new キャッシュ機能を試したばかり」 のチームほど踏みやすい。
画像最適化 API 経由 DoS(中)
「/_next/image」 への巨大画像や悪意あるパラメータで、関数実行時間とメモリを食わせる。Vercel の請求暴発 の典型原因でもある。
なぜ脅威か
「 攻撃者は1台のサーバから自由にリクエストを撃てる」 ので、「攻撃者の手元のコスト = 数百〜数千円、防御側のコスト = 関数実行 + 帯域で数十万円」 のような 非対称さ が成立してしまう。
「DoS は古い話」 と思われがちですが、サーバレス課金 + AI ストリーミング 時代では、これが 経済的破壊 として実害になりやすいので注意が必要です。
3. SSRF(1件)
「 WebSocket アップグレードリクエスト処理時の SSRF(高)」 が修正されました。
SSRF とは
「 サーバ自身に内部ネットワーク向けのリクエストを送らせる」 攻撃。クラウド環境のメタデータエンドポイント(169.254.169.254) 等を踏ませると、「Vercel 上の関数がクラウド側の認証トークンを取得 → 攻撃者に返す」 が成立し得る。
なぜ重大か
「 クラウドの一時認証情報」 を盗まれると、「そこから DB 接続文字列や S3 アクセス」 まで芋づる式に取られる。「npm のサプライチェーン攻撃 と組み合わさると一気に深刻」。
「内部ネットワークに直結する穴」 はクラウド時代でいちばん怖い種類の脆弱性で、SSRF だけで 「Patch 必須」 と言える重みがあります。
4. キャッシュポイズニング(2件)
「他人のキャッシュに、攻撃者が望む内容を流し込む」 タイプの修正です。
RSC レスポンスのキャッシュ汚染(中)
「RSC」 のレスポンスは独自のキー設計で CDN にキャッシュされている。攻撃者が 「キーを共有するように仕向ける」 と、「A 用に作られた個人情報入り RSC が、B にも返る」 という事故が起こる。
RSC キャッシュバスティング衝突(低)
キャッシュキーの計算が衝突しやすいパターンを使うと、「同じキャッシュ箱に複数のレスポンスが入って取り違える」 ことができてしまう。低スコアだが、「200 でエラーを返す API」 のような実装と組み合わさると影響が拡大。
他の Middleware 修正と関連
「 Middleware リダイレクトのキャッシュポイズニング(低)」 も、認可バイパスのカテゴリと同じ系統。「リダイレクト先のレスポンスが共有キャッシュに残る」 と、「認可なしユーザーが、認可済みユーザー向けのリダイレクトを引き当てる」 が起きうる。
他者への影響が大きい
「 キャッシュ汚染」 の怖さは、攻撃者だけでなく一般ユーザーまで影響を受ける ところ。「誰かが個人情報を見られた」 という事故報告の原因として頻出する。
「認可は通しているのに、キャッシュ層で情報が漏れる」 は、「認可だけ守れば安全」 という直感を裏切る種類の問題です。
5. XSS(2件)
「CSP nonce 使用時の XSS(中)」 と 「beforeInteractive スクリプトの XSS(中)」 が修正されました。
CSP nonce 使用時 XSS
「 Content Security Policy で nonce を使ってる」 と XSS から守られる想定だが、Next.js 側の nonce 配り方の隙間 でバイパスされるパターン。「CSP を入れているから安全」 と過信していたサイトほど痛い。
beforeInteractive スクリプト XSS
「 next/script の beforeInteractive 戦略」 で読み込むスクリプトに、信頼できない入力が混ざるとそのまま実行される。「URL クエリから一部を Script タグの src に渡す」 ような書き方をしているコードが要注意。
XSS が成立すると何が起きるか
セッション Cookie の窃取、なりすまし送信、暗号資産ウォレットの拡張機能を介した取引承認…等。「お問い合わせフォームから JS が刺さる」 だけで、「管理者の権限を奪う」 まで行ける重さ。
対策の組み合わせ
「CSP の見直し」 「next/script の戦略変更」 「ユーザー入力の徹底エスケープ」 など、フレームワーク側のパッチに加えてアプリ側のレビューも必要。パッチを当てて終わり、ではない のがこのカテゴリ。
「CSP / Next.js のスクリプト戦略」 はセキュリティの最後の盾になっていることが多いので、「それごとバイパスされる」 は精神的にも痛みのある修正です。
推奨アップグレード先
公式が示している推奨バージョンを表で並べます。
| パッケージ | 影響範囲 | アップグレード先 |
|---|---|---|
| Next.js 13.x / 14.x | 全バージョン | 15.5.18 または 16.2.6 |
| Next.js 15.x | ≤ 15.5.17 | 15.5.18 |
| Next.js 16.x | ≤ 16.2.5 | 16.2.6 |
| react-server-dom-* 19.0.x | ≤ 19.0.5 | 19.0.6 |
| react-server-dom-* 19.1.x | ≤ 19.1.6 | 19.1.7 |
| react-server-dom-* 19.2.x | ≤ 19.2.5 | 19.2.6 |
「13.x / 14.x はもう個別パッチが配られていない」 という点が重要で、古いままで放置すると、今回の問題に永遠にパッチが当たらない 状態になります。
緊急アップグレードの段取り
「いきなり本番に上げて壊す」 を避けるための現実的な手順を整理します。
「段階を分けてゆっくり」 ではなく、段取りは丁寧に組むが反映は早く という方針が、こうした緊急パッチでは大事です。
なぜ 「WAF / CDN だけでは不足」 なのか
Vercel が今回明示している パッチングが唯一の完全な対策 という言葉の理由を整理しておきます。
攻撃面がアプリ内部
「 認可バイパス」 「RSC のキャッシュキー計算」 など、Next.js 内部の処理ロジック に依存する穴。「外部からのリクエストをフィルタする WAF」 では、「正規にしか見えないリクエスト」 を弾けない。
プリフェッチは内部から飛ぶ
「 認可バイパスのうちプリフェッチ系」 は、「正規ブラウザの Next.js JS が裏で発行する」 内部リクエスト。CDN / WAF にとっては 「普通の正規ユーザー」 にしか見えない。
パッチ済みの再現性
「 1度パッチを当てれば全リクエストで安全」 なのに対し、「WAF 設定」 は 環境差や設定ミスでザル化 しやすい。「同じ攻撃に対して同じ強度で守れる保証」 はパッチング側が圧倒的に高い。
「まず CDN / WAF で間に合わせ → あとで Next.js を上げる」 を選びたくなる気持ちは分かりますが、今回はそのルートが 意味のある守りにならない のが重要なポイントです。
教訓 — 「Next.js を上げる文化」 を組織に作る
毎月のように来る Next.js のセキュリティ修正に対応し続けるための、組織レベルの仕組みを整理しておきます。
①バージョンを 「pinned」 で固定する
「 ^15.5.x」 のような緩いレンジではなく、15.5.18 のように 「pinned」。「勝手にメジャー / マイナーが上がる」 状態を避け、「意図して上げる」 だけにする。
② Dependabot / Renovate でアラート
「 新しいセキュリティパッチが出たら自動で PR」 が来る仕組み。「気付かない」 を構造的に防ぐ。
③ アップグレード用 PR テンプレ
「 Next.js / React のアップグレード手順を社内 Wiki に保存」。「誰が PR を出しても同じ確認項目をたどれる」 状態に。
「このサイズの修正は今後も繰り返し来る」 前提で、「いつでも上げられるチーム」 を作っておくのが、長期的には一番安いコストです。
AI 時代の前提として
v0 / Vercel を起点に AI でアプリを作る人が増えれば増えるほど、雛形の Next.js のバージョンが古いまま放置される パターンも増えます。
AI 生成テンプレの危険性
AI が 「Next.js 13 / 14 のサンプル」 を出してきても、現状は本番運用に向かない。「AI 出力 = 古い Next.js」 を疑うクセが必要。
Mini Shai-Hulud との連動
npm 経由の Mini Shai-Hulud も、「脆弱な Next.js + 漏れた API キー」 の組み合わせで被害が拡大する。「Next.js のパッチ」 と 「依存の signing 検証」 はセットで投資する価値がある。
RSC を採用する責任
「 App Router + RSC」 を使うアプリは、「RSC キャッシュ / Server Action / Middleware」 周辺の最新セキュリティ動向を追う責任」 がワンセットになる。「楽な機能ほど深い影響範囲を持つ」 のはどのフレームワークでも同じ。
小さなチームほど自動化
「 個人 / 小チームで Next.js を本番運用するなら、Dependabot は最小コストで最大価値」。「気付ける PR が自動で来る」 仕組みを最初に積むのが、AI 時代の 「1人で運用する SaaS」 の必須インフラ。
「AI で爆速に作る」 と 「セキュリティを継続的に当てる」 は、両立しないと意味がないペアです。
Next.js 2026年5月セキュリティリリースに関するよくある質問
Q. 自分は Pages Router しか使っていません。13.x のままで大丈夫ですか?
A. 大丈夫ではありません。「i18n + プロキシ」 の認可バイパスや 「WebSocket SSRF」 など、Pages Router でも影響を受ける項目が含まれます。13.x への単独パッチは提供されないため、15.5.18 または 16.2.6 へのアップグレード が事実上の対応です。
Q. 13 / 14 から 15 / 16 への移行は大変ですか?
A. ケースバイケースだが、思っているより小さい ことが多いです。多くのチームでは 「App Router への部分移行は別タスクにして、ライブラリだけ上げる」 で済みます。「getServerSideProps が残るアプリ」 は、Pages Router の機能としては当面サポートされるので、「まずバージョンだけ上げる」 を先に済ませるのが安全です。
Q. WAF や Cloudflare のルールで一旦防げないですか?
A. 一部は緩和できるが、完全な対策にはなりません。特に 「プリフェッチ経由の認可バイパス」 「RSC のキャッシュキー衝突」 系は、外形的に正規リクエストと区別がつかないため、フレームワーク側のパッチでしか塞げません。「WAF で時間を稼ぐ間にパッチを当てる」 は OK ですが、「WAF があるからパッチしない」 はダメです。
Q. CVE と CVSS スコアの一覧はどこで見られますか?
A. GitHub の Next.js リポジトリの Security Advisory と、vercel.com/changelog の該当ページがそれぞれの一次情報です。記事中の CVE-2026-23870(RSC DoS)以外は、Vercel changelog から各 advisory へのリンクが張られています。
Q. アップグレード後に挙動が変わったらどうしますか?
A. 認可バイパス修正でリダイレクト挙動 / Middleware 挙動が変わる のが今回特に多いポイントです。「Preview Deployment」 で先に動かし、「301 / 302 / 401 / 403」 の挙動を意図したものか比較するのが現実的です。「Vercel の Spend Management」 を上限設定しておくと、DoS 系の事故にも保険がかかります。
Q. RSC を使っていません。「react-server-dom-*」 もアップグレードすべきですか?
A. Next.js 15 / 16 を使うなら、依存として入っているので合わせて上げるのが原則です。「使っていない機能のために古いバージョンを残す」 は将来の他の脆弱性のリスクが残るだけなので、「整合するバージョンに合わせる」 が無難です。
Q. 同様のセキュリティリリースは今後も来ますか?
A. ほぼ確実に来ます。Next.js は機能追加が速いフレームワークで、「攻撃面」 も同時に増えています。「Dependabot / Renovate を入れて、月1で公式 changelog を見る」 という運用を組織に作っておくのが、長期的に一番安い対応です。
参考リンク
- Vercel: Next.js May 2026 security release(changelog)
- Next.js: 公式ブログ
- Next.js: endoflife.date(対応バージョン一覧)
- The Hacker News: Mini Shai-Hulud Worm Compromises TanStack, Mistral AI & More
- Vercel: Vercel Pricing(Spend Management 含む)
- Releasebot: Next.js Updates Tracker