
Next.js 2026年7月セキュリティリリース - 16.2.11/15.5.21で塞ぐ9件の脆弱性(SSRF・DoS・middlewareバイパス)
Webセキュリティ実装の定番教科書。
攻撃と防御を手を動かして学ぶ。
App RouterやServer Actionsの基礎固めに。
当サイトは Amazon.co.jp を宣伝しリンクすることで紹介料を得る手段を提供する、Amazonアソシエイト・プログラムの参加者です。価格・在庫はリンク先の最新情報をご確認ください。
先週のNext.js 月次セキュリティリリースへの移行の予告どおり、2026年7月20日に月次セキュリティリリースプログラムの初回実リリースが公開されました。今回は HIGH 4件・MEDIUM 5件の計9件を修正しています。予告の段階で「7月20日予定・high4件/medium5件の見込み」と告知されていた内容が、そのままリリースされた形です。
対応はシンプルで、まず対象バージョンへ上げることに尽きます。SSRF や Open Redirect、middleware/proxy のバイパス、Server Actions を悪用した DoS など、放置すると認証回避やサービス停止につながる項目が含まれます。本記事では、9件の発火条件と自分のアプリが該当するかの見分け方、そして多層防御の観点での実務対応を整理します。
まず何をすべきか: 対象バージョンへ上げる
修正は Active LTS と Maintenance LTS の両系列でパッチ版として提供されています。使っている系列に合わせて次のコマンドでアップグレードしてください。
npm install next@16.2.11 # 16.2 系(Active LTS)
npm install next@15.5.21 # 15.5 系(Maintenance LTS)16.3 系を追いかけている場合、これらの修正は 16.3.0-canary.92 と 16.3.0-preview.7 に含まれており、16.3.0 が stable に到達した時点でも取り込まれます。
npm install next@16.3.0-canary.92 # canary
npm install next@16.3.0-preview.7 # previewWARNING
canary/preview はプレリリースです。本番運用は原則 Active LTS(16.2.11) または Maintenance LTS(15.5.21) の安定版を使い、16.3 系の先行取り込みは検証環境にとどめるのが無難です。バージョン系列の考え方はNext.js のバージョン履歴と系列の読み方も参照してください。
いま使っているバージョンは npm ls next で確認できます。パッチ版に満たない場合は上げる、という判断がそのままできます。SemVer のパッチ更新の意味合いについてはpackage.json のバージョン指定と SemVerが参考になります。
9件の全体像
今回修正された脆弱性の一覧です。CVE番号は公式アドバイザリが cve.org のレコードにリンクしている番号を転記しています。重大度は公式が HIGH/MEDIUM の2区分で示しているものです。CVSS の個別スコアはアドバイザリ本文に明記が無いため、必要な場合は各 CVE レコード側を参照してください(本記事では推測値を書きません)。
| CVE | 重大度 | 影響領域 | 種別 |
|---|---|---|---|
| CVE-2026-64641 | HIGH | App Router + Server Actions | DoS(CPU枯渇) |
| CVE-2026-64642 | HIGH | App Router + Turbopack + 単一locale | middleware/proxy バイパス |
| CVE-2026-64645 | HIGH | rewrites / redirects | SSRF / Open Redirect |
| CVE-2026-64649 | HIGH | カスタムサーバの Server Action | SSRF |
| CVE-2026-64644 | MEDIUM | Image Optimization API | DoS(CPU枯渇) |
| CVE-2026-64646 | MEDIUM | Edge runtime の Server Action | DoS(メモリ消費) |
| CVE-2026-64643 | MEDIUM | App Router のエンドポイントID | 情報漏洩 |
| CVE-2026-64648 | MEDIUM | body付きサーバサイド fetch | キャッシュ混同 |
| CVE-2026-64647 | MEDIUM | body付き fetch(不正UTF-8) | キャッシュ混同 |
以下、HIGH 4件を1件ずつ、MEDIUM 5件をまとめて解説します。
HIGH の4件
CVE-2026-64641: Server Actions を狙った DoS
App Router を使い、Server Action を1つ以上持つアプリが対象です。細工されたリクエストによって過剰なCPU使用が発生し、そのCPU使用が同一プロセス内の後続リクエストの処理をブロックするため、サービス全体が応答不能に陥ります。
見分け方はシンプルで、use server を含む Server Action を1つでも定義していれば該当し得ます。App Router のアプリでフォーム送信やミューテーションを Server Actions で実装している構成では、まず該当すると考えて対応してください。Server Functions を悪用した DoS は過去にも報告があり、Next.js/React Server Functions の DoSも背景として参考になります。
CVE-2026-64642: middleware/proxy のバイパス
App Router をTurbopack でビルドし、かつ config.i18n.locales が単一エントリのアプリで発生する middleware/proxy バイパスです。この条件に当てはまると、middleware や proxy が行っている認証・セキュリティチェックが回避されるおそれがあります。
該当条件は「Turbopack ビルド」と「config.i18n.locales の要素が1つだけ」の重なりです。単一言語サイトで i18n 設定にロケールを1つだけ書いているケースは意外と多いので、next.config の該当箇所を確認してください。
WARNING
この脆弱性は「middleware を唯一の防御にしない」という設計原則の重要性を示します。middleware/proxy 層でのみ認証・認可を行っていると、その層がバイパスされた瞬間に全体が無防備になります。ページ/Route Handler/Server Action など、実際にデータへアクセスする箇所でも認可を再検証する多層防御が前提です。
CVE-2026-64645: rewrites / redirects の SSRF・Open Redirect
rewrites() または redirects() のルールで、外部 destination のホスト名をリクエスト由来の入力から組み立てていると、ルールに書いたホスト名サフィックスに関係なく任意のホストへ向けられます。rewrites では SSRF、redirects では Open Redirect が成立します。
見分け方は、next.config の rewrites/redirects で destination の URL やホスト名部分に、リクエストのパスパラメータ・クエリ・ヘッダ由来の値を差し込んでいないかを確認することです。destination を動的に組み立てている箇所があれば要注意です。SSRF/Open Redirect の一般的な仕組みはCORS の仕組みと落とし穴やCSP 設定ガイドとあわせて理解しておくと、緩和策の判断がしやすくなります。
CVE-2026-64649: カスタムサーバの Server Action で SSRF
カスタムサーバ上の Server Action がリクエストを転送・リダイレクトする際、攻撃者が Host 関連ヘッダを制御できると、外向きリクエストを悪意あるホストへ送れます(SSRF)。
該当条件は「カスタムサーバ構成であること」と「Server Action が外向きの転送/リダイレクトを行うこと」、そして「Host 関連ヘッダを攻撃者が制御できること」の重なりです。リバースプロキシの背後で Host や X-Forwarded-Host を無検証で通している構成は、この条件を満たしやすい点に注意してください。
MEDIUM の5件
MEDIUM 5件も、条件次第では実害につながります。要点を簡潔にまとめます。
- CVE-2026-64644(Image最適化のDoS): デフォルト image loader で自ホストし、Image Optimization API がリモート画像の最適化を行う設定(デフォルト無効)の場合、悪意ある画像により
/_next/imageエンドポイントで CPU が枯渇します。リモート画像最適化を有効化しているかを確認してください。 - CVE-2026-64646(Edge の Server Action で DoS): Edge runtime の Server Action で、細工リクエストによりメモリ消費が発生します。App Router で Server Action を1つ以上持つ場合に影響します。ペイロード上限が無いことに起因します。
- CVE-2026-64643(エンドポイントID漏洩): App Router で Server Actions(
use server) やuse cacheのエンドポイントIDがグローバルに漏れます。単体で即侵害には至りませんが、偵察や攻撃チェーンの一部に悪用され得ます。 - CVE-2026-64648(fetch キャッシュ混同): body 付きサーバサイド
fetchで、同一URL・異なる body の別リクエストのキャッシュ済みレスポンス body が返ることがあります。該当するのはfetch(new Request(init), aDifferentInit)の形のみです。 - CVE-2026-64647(fetch キャッシュ混同・不正UTF-8): 上と同種のキャッシュ混同で、リクエスト body に不正な UTF-8 バイト列を含む場合に発生します。異なる文字列が同じキャッシュキーを共有してしまうケースです。
キャッシュ混同の2件は、キャッシュキーの取り扱いに起因します。Next.js のキャッシュ設計そのものはNext.js 16 の Cache Components と PPR、CDN 層のキャッシュ制御はCache-Control と s-maxage の実務も参照してください。
実務での対応
パッチ適用が最優先ですが、それだけで終わらせないための観点を挙げます。
まずバージョン確認と自動追従です。npm ls next で現在バージョンを確認し、Renovate や Dependabot を導入して依存の更新PRが自動で上がる状態にしておくと、次回以降の月次リリースにも追従しやすくなります。月次プログラムは事前告知があるため、更新の心づもりを事前に立てられる点が利点です。
次に多層防御です。今回の middleware バイパス(64642)が示すように、WAF やプロキシ、middleware といった「入口の1層」に頼り切る設計は危険です。middleware を唯一の防御にせず、実際にデータへアクセスするページ・Route Handler・Server Action の各所で認可を再検証してください。
SSRF 系(64645/64649)への一般的な緩和としては、宛先ホストの許可リストを持ち、リクエスト由来の入力から destination を組み立てないことが基本です。どうしても動的な宛先が必要なら、許可リスト照合を通したうえで、内部ネットワークやメタデータエンドポイントへの到達を遮断します。DoS 系(64641/64644/64646)については、パッチ適用に加えてレートリミットのアルゴリズムを併用しておくと、単一プロセスへの負荷集中を緩和できます。
NOTE
過去の重大事例(React2Shell の実際の攻撃ケース や React の RCE(CVE-2025-55182))が示すとおり、フレームワーク層の脆弱性は影響範囲が広くなりがちです。パッチ適用の速さそのものが、実効的な防御になります。
月次プログラムとしての意味
今回のリリースは、予告から実リリースまでの運用が実際に機能したことを示す初回事例です。事前に「時期・件数・最大想定深刻度」が共有され、その内容どおりにパッチが出る、という流れが確認できました。緊急のアドホックパッチを置き換えるものではなく補完する位置づけである点も変わりません。
背景には、LLM/AI 支援による脆弱性発見の増加があります。発見のペースが上がるほど、突発的な緊急対応に追われるより、計画的にまとめて修正・告知する運用のほうが利用者・メンテナ双方にとって扱いやすくなります。利用側としては、月次のタイミングを見込んで検証と適用のリズムを作っておくのが、今後の実務では有効です。
なお、脆弱性の報告は Vercel's Open Source Bug Bounty(HackerOne の vercel-open-source)で受け付けられており、セキュリティに関する問い合わせは security@vercel.com が窓口です。
まとめ
- 2026年7月20日、月次セキュリティリリースプログラムの初回実リリースが公開され、HIGH 4件・MEDIUM 5件の計9件を修正。
- 対応は
next@16.2.11(Active LTS) またはnext@15.5.21(Maintenance LTS) へのアップグレードが最優先。16.3 系は canary/preview に取り込み済み。 - HIGH は SSRF/Open Redirect(64645)、middleware バイパス(64642)、Server Actions の DoS(64641)、カスタムサーバの SSRF(64649)。自分の構成が発火条件に当てはまるかを
next.configと Server Action の有無から確認する。 - パッチ適用に加え、middleware を唯一の防御にしない多層防御、SSRF 宛先の許可リスト、レートリミットなどを併用する。


