本文へスキップ
>_ITDITDセキュリティ対策プラットフォーム

セキュリティ対策

Next.jsとReactは脆弱性が多いのか — CVEの実データで見る「危ないのはどこか」

「Next.jsやReactは脆弱性が多いのか」をNVDの実データで確認しました。Next.jsは56件(2026年だけで28件)、Reactは6件。そしてReactの近年の5件はすべてReact Server Components=サーバー側です。Next.jsのCVEもMiddleware・キャッシュ・画像最適化・Server Actionsに集中しており、CWEの上位はSSRF・デシリアライズ・認可迂回。つまり危ないのは『フロントの書き方』ではなくフレームワークが引き受けたサーバー機能である、という話を、設計と運用の指針まで落として解説します。

公開日 2026-08-22 更新日 2026-08-22 最終確認 2026-08-22 13分で読める

対象:Next.js(App Router / Pages Router 問わず)でサービスを運用している人、これから採用を判断する人。「フレームワークの脆弱性が多いらしい」という漠然とした不安を、実データと、その中身に置き換えます。

実データ(NVD・2026年8月22日時点)

56
Next.js に紐づくCVE(累計)
28
うち2026年公開分(年内で前年の2倍)
6
React に紐づくCVE(累計)
5/5
Reactの近年のCVEがRSC(サーバー側)である割合
Next.jsReact
累計56件6件
年別2020:1 / 2021:3 / 2022:3 / 2023:1 / 2024:6 / 2025:14 / 2026:282018:1 / 2025:4 / 2026:1
深刻度CRITICAL 2・HIGH 21・MEDIUM 29・LOW 4CRITICAL 1・HIGH 3・MEDIUM 2
最悪の1件CVE-2025-29927(ミドルウェアでの認可を迂回・CVSS 9.1)CVE-2025-55182(React Server Components の事前認証不要RCE・CVSS 10.0)

件数の読み方に注意

件数が多い=危険な技術、ではありません。採用が広がるほど研究者の目も集まり、報告件数は構造的に増えます。逆に件数が少ない技術は「安全」かもしれないし「誰も見ていない」だけかもしれません。件数は入口の指標にすぎず、判断材料になるのは『どこに、どの種類が出ているか』です。なお本記事の件数は NVD をCPE(vercel:next.js / facebook:react)で照会した実数で、CPEが付与されていないものは含まれません。

どこに出ているのか

2025〜2026年に公開された Next.js のCVEを、記述に現れる機能名で分類するとこうなります。

出ている場所中身の例
キャッシュキャッシュの取り違え・汚染(別の利用者の応答が返る類)
Middleware / ルーティング認可の迂回。ミドルウェアで守っているつもりの経路が通ってしまう
画像最適化外部URLの取り込みに伴う SSRF とリソース枯渇
Server Actions / RSC信頼できない入力のデシリアライズ、リクエストによる過負荷
rewrites / redirects転送先の解釈のズレを突かれる

CWEの上位も裏付けになります——CWE-770(リソースの無制限確保)、CWE-918(SSRF)、CWE-502(デシリアライズ)、CWE-400(リソース枯渇)、CWE-444(リクエスト解釈の不一致)、CWE-288/285(認可の迂回・不備)これは典型的なサーバー/プロキシの脆弱性の並びです。

ブラウザ側(Reactのコンポーネント描画)

NVD上のReact本体のCVEは2018年の1件のみ

サーバー側①:React Server Components

近年のReactのCVE 5件はすべてここ(最悪は事前認証不要のRCE)

サーバー側②:Next.js の Middleware / キャッシュ / 画像最適化 / rewrites

認可迂回・SSRF・キャッシュ汚染・リソース枯渇

“React/Next.js の脆弱性”と呼ばれているものは、ほぼすべて図の下半分=サーバー側で起きている。

繰り返し出ている形=「ミドルウェアでの認可」

同じ形が何度も出ている点は、単発のCVEより重要です。

  1. 2025年3月 — CVE-2025-29927(CVSS 9.1)

    特定のヘッダを含むリクエストで、ミドルウェアで行っている認可チェックを迂回できた。修正は 12.3.5 / 13.5.9 / 14.2.25 / 15.2.3。
  2. 2026年5月 — CVE-2026-44574(CVSS 8.1)

    細工したクエリパラメータで動的ルートの値だけをずらし、URLの見た目を変えずに保護対象を表示させられた。修正は 15.5.16 / 16.2.5。
  3. 2026年7月 — CVE-2026-64642(CVSS 8.2)

    App Router × Turbopack × config.i18n.locales が単一という構成で、ミドルウェア/プロキシによる認証を迂回できた。修正は 16.2.11。

ここから引き出せる設計判断

1年半で「ミドルウェアの認可が通り抜けられる」形の重大CVEが3回出ています。実装の個別バグではなく、“経路の手前で判定する”という構造そのものが、経路の解釈がズレた瞬間に破れるということです。だから当サイトの立場は明快で——ミドルウェアの認可は「入口の足切り」までにして、本当の認可判定はデータに触れる直前(ページ/Route Handler/データ層)にもう一度置く。二度書く手間より、迂回された日の被害のほうが圧倒的に高くつきます。

ホスティング形態で変わるものもある

見落とされがちですが、同じCVEでも自己ホストかマネージドかで影響が変わることがあります。たとえば CVE-2026-44578(CVSS 8.6)は、セルフホストで組み込みのNode.jsサーバーを使っている場合にWebSocketのアップグレード要求経由でSSRFが成立し、内部サービスやクラウドのメタデータ endpoint に到達し得るというもので、Vercelホストのデプロイは対象外と明記されています。

つまり「Next.jsの脆弱性」と一括りにせず、自分の動かし方(セルフホスト/マネージド、使っている機能)で当たり判定が変わることを前提に読む必要があります。

実務でやること

1

認可を二重化する(最優先)

ミドルウェアの認可は入口の足切りとして残しつつ、データに触れる直前でもう一度判定する。上に挙げた3件はいずれもこれで被害を止められる形でした。認証と認可の切り分けは 認証と認可の違い を参照。

2

外向きの取り込みを許可リストで絞る

画像最適化の外部URL、サーバー側の fetch の宛先、rewrite の転送先を許可した先だけに限定する。SSRF 系のCVEは、外向き先が自由なほど刺さります。クラウドのメタデータ endpoint への到達可否も確認する。

3

Server Actions / RSC のエンドポイントを認証の内側に置く

ここはリクエストのボディをデシリアライズする経路です(CWE-502のCVEが実際に出ています)。認証の外側に置かない、レート制限を掛ける、想定外のペイロードで落ちないようにする——/api と同じ扱いをする、が原則です。

4

更新を“仕組み”にする

Next.jsは修正版の公開が速い代わりに、追随しないと置いていかれます。実稼働版で判定し、依存を機械監視する具体策は Next.js を安全に運用するosv-scannerの導入と使い方 にまとめています。件数が増えている以上、ここは人力では持ちません。

当サイトの視点:フレームワーク選びの問いは「件数」ではない

「Next.jsは脆弱性が多いから避けるべきか」という問いは、実は的を外しています。データが示しているのは、Next.jsが年々“サーバーとして”の責務を増やしているという事実です——ミドルウェアで認可し、画像を取りに行き、キャッシュを持ち、リクエストをデシリアライズする。それはリバースプロキシとアプリケーションサーバーを1つの依存として抱えているのと同じことです。だから評価すべきは「件数」ではなく「そのサーバー機能を自分が使うのか、使うなら誰が守るのか」。使わない機能は無効にし、使う機能は自分の設計で二重化する。この観点を持てば、フレームワークの選択は好き嫌いではなく、運用体制の問題として扱えます。

出典

  • NVD(NIST)— 2026年8月22日時点で cpe:2.3:a:vercel:next.js / cpe:2.3:a:facebook:react を照会した実数にもとづく
  • CVE-2025-29927(ミドルウェアでの認可迂回)/CVE-2026-44574(動的ルートの値のずらし)/CVE-2026-64642(App Router × Turbopack の認証迂回)
  • CVE-2026-44578(セルフホストのWebSocket経由SSRF・Vercelホストは対象外)
  • CVE-2025-55182(React Server Components の事前認証不要RCE・CVSS 10.0)/CVE-2026-23864(RSCのDoS)

次に読む

よくある質問

QNext.jsは脆弱性が多いのですか?
A

件数としては多く、増えています。NVDを2026年8月22日時点で照会すると、Next.jsに紐づくCVEは56件で、内訳は2024年6件・2025年14件・2026年28件です。ただし『多いから危険な技術』と読むのは早計で、採用が広がるほど研究者の目も集まり報告件数は増えます。重要なのは件数より、どこに出ているかです。

QReactは脆弱性が少ないのですか?
A

React本体(ブラウザ側のUIライブラリ)としては非常に少なく、NVD上は6件です。そして2018年の1件を除く近年の5件は、すべてReact Server Components(react-server-dom-parcel / turbopack / webpack)に関するもの——つまりサーバー側です。中には事前認証不要のリモートコード実行(CVE-2025-55182・CVSS 10.0)も含まれます。

Q結局どこが危ないのですか?
A

サーバー機能です。Next.jsの近年のCVEはMiddleware、キャッシュ、画像最適化、Server Actions、rewritesに集中しており、CWEの上位もSSRF(CWE-918)、信頼できないデータのデシリアライズ(CWE-502)、リソース枯渇(CWE-770/400)、認可の不備(CWE-285/288)です。いずれもコンポーネントの書き方ではなく、フレームワークがサーバーとして提供している機能の問題です。

Q何をすれば一番効きますか?
A

①認可をミドルウェアだけに依存させない(実際に認可迂回のCVEが繰り返し出ています)②画像最適化やfetchの外向き先を許可リストで絞る③Server Actions/RSCのエンドポイントを認証の内側に置く④更新を運用として仕組み化する、の4点です。特に①は、同じ形の脆弱性が2025年と2026年に別々に出ている以上、設計として二重化しておく価値があります。