ReactとNext.jsに深刻なRCE脆弱性「CVE-2025-55182」発覚 Web開発者に広範な影響

JavaScriptライブラリ「React」と、その代表的なフレームワーク「Next.js」において、認証不要でリモートコード実行(RCE)が可能になる極めて深刻な脆弱性「CVE-2025-55182」が公表されました。 この問題はReact Server Components(RSC)の設計上の欠陥に起因しており、クラウド基盤やSaaSを含む多くのWebサービスに影響が及ぶ可能性があります。

脆弱性「CVE-2025-55182」の概要

CVE-2025-55182は、Reactのサーバーコンポーネント(React Server Components, RSC)がクライアントから受け取るデータを不適切に扱うことで、攻撃者にサーバー側で任意コードを実行されてしまう欠陥です。 共通脆弱性評価システムCVSS v3.1ではベーススコア10.0(最大値)の「Critical」と評価されており、最も深刻なレベルに位置づけられています。

この脆弱性は、特別な設定やカスタム構成ではなく、標準的なRSC機能を利用しているだけで影響を受ける点が大きな特徴です。 そのため、React 19世代やNext.js 14以降でサーバーコンポーネント/App Router構成を採用している多くのプロジェクトが、意図せずリスクを抱えた状態になっていたと見られています。

技術的な原因:デシリアライズ処理の不備

問題の本質は、RSCが内部で利用している「Flight」と呼ばれるストリーミング形式のデータをサーバー側が信頼しすぎていたことにあります。 クライアントから送られてくるFlightストリームをサーバーが復元(デシリアライズ)する際、モジュール読み込みや関数呼び出しに関する検証が不十分であり、攻撃者が細工したペイロードを紛れ込ませる余地がありました。

具体的には、サーバーが「内部処理用の正当なデータだろう」とみなして処理を進めてしまうため、本来読み込むはずのアプリケーションモジュールではなく、Node.jsの危険なコアモジュールなどを参照させることが可能になります。 その結果、攻撃者はサーバー内で任意コマンドの実行やリバースシェルの確立など、完全なRCEに相当する操作を行えると指摘されています。

Next.jsへの波及と専用CVE

Reactの上流の欠陥であるCVE-2025-55182は、Reactを基盤にするNext.jsにも直接的な影響を与えました。 Next.jsのApp Routerは標準でRSCを利用しているため、Next.js 14以降、とくに15系・16系の多くのアプリケーションが影響範囲に含まれるとされています。

この影響に対応するため、Next.js側には「CVE-2025-66478」という別個のCVE IDが割り当てられ、Next.jsとしてのアップデートも提供されています。 ただし根本原因はあくまでReact側のRSC処理にあり、各ベンダーは自社製品への波及を整理しながらパッチ提供や緩和策の案内を進めている状況です。

攻撃シナリオ:認証なしのRCE

CVE-2025-55182の危険性を高めているのは、「認証が不要」である点です。 攻撃者は通常のユーザーログインやトークンを取得することなく、脆弱なServer ActionやRSCエンドポイントに対して細工したHTTPリクエストを直接送信するだけで攻撃を成立させられます。

このリクエストには、正規のUIプロパティの代わりに「ガジェットチェーン」と呼ばれる悪意あるデータが含まれ、サーバー側のデシリアライズ過程で危険なモジュールを読み込ませるよう誘導します。 最終的には、外部サイトからスクリプトを取得して実行させる、OSコマンドを実行するなど、ビジネスロジックを完全に乗っ取るレベルの被害につながるおそれがあります。

影響を受ける可能性があるシステム

影響を受けるのは、単体のReactアプリケーションにとどまりません。 RSCを利用しているNext.jsベースのSaaS、企業のダッシュボード、BtoC向けサービス、さらにHeadless CMSや社内ツールなど、多様なWebアプリケーションが対象となり得ます。

  • React 19世代でServer Components/Server Actionsを有効にしているプロジェクト。
  • Next.js 14以降、とくにApp Router構成を採用した15系・16系のサービス。
  • RSCを前提としたホスティング・PaaS上で稼働するマルチテナントなWebサービス。

React・Next.js側の対応状況

Reactチームは、脆弱性の報告から短期間で修正対応を完了し、npm上で修正版を公開しています。 報告は11月末に行われ、12月上旬にはパッチ版のReactおよび関連パッケージが利用可能になったとされています。

Next.js側も、影響するバージョンに対して修正版リリースを案内しており、15系・16系ではRSC関連の処理を修正したアップデートが提供されています。 ただし、開発者自身が依存パッケージを更新しない限り脆弱なまま稼働し続けるため、アップデート作業の迅速な実施が強く求められています。

Cloudflare WAFなどによる防御策

一方、プラットフォーム側では、Webアプリケーションファイアウォール(WAF)による緩和策も進んでいます。 CloudflareなどのWAFベンダーは、React RSCの脆弱性を突く典型的な攻撃パターンを検知・遮断するルールを追加し、利用者が設定を有効化することで、一定の防御効果が得られると案内しています。

ただし、WAFによる防御はあくまで「暫定措置」にすぎず、アプリケーション側の根本的な修正とバージョンアップを代替するものではありません。 攻撃手法が進化すれば、シグネチャベースの検知を回避される可能性もあるため、WAFとパッチ適用の両方を組み合わせて対処することが重要です。

開発者が今すぐ取るべき対応

ReactやNext.jsでサーバーコンポーネントやApp Routerを利用している開発者は、まず自分のプロジェクトが影響バージョンに該当するかどうかを確認する必要があります。 依存関係のバージョンを確認し、ReactとNext.jsの双方を最新の修正版へ更新することが最優先です。

  • package.jsonでReactおよびNext.jsのバージョンを確認し、脆弱な範囲に含まれていないかをチェックする。
  • 公式が示す修正版バージョンへアップデートし、ビルド・デプロイパイプライン全体で反映されているかを検証する。
  • Server ActionsやRSCエンドポイントが外部から直接叩かれていないかログを確認し、疑わしいアクセスがないかをモニタリングする。

利用者・企業への影響と注意点

今回の脆弱性は、開発者の設定ミスではなく、広く利用されているフレームワークの内部処理に起因するものである点が特に問題視されています。 企業や組織としては、自社開発だけでなく、外部ベンダーが提供するサービスや委託開発システムがReact/Next.jsベースでないかも含め、広い視点で影響調査を行う必要があります。

もしサービス運営者側で迅速なパッチ適用が行われない場合、機密情報の窃取やサービス改ざん、マルウェア配布の踏み台化など、重大なインシデントにつながるおそれがあります。 利用者側としては、公式からの告知やメンテナンス情報に注意を払い、不審な挙動や通知があれば早めにサポート窓口へ連絡することが重要です。

今後への教訓:高機能化と安全性のバランス

CVE-2025-55182は、クライアントとサーバーの境界が曖昧になるモダンなWebアーキテクチャにおいて、データシリアライズ層の設計がいかに重要かを示す事例となりました。 高度な機能やパフォーマンスを実現する仕組みが増えるほど、内部プロトコルやデータ形式を前提にした攻撃の余地も広がっていきます。

開発コミュニティには、便利な抽象化レイヤーに頼りきるのではなく、その背後で何が起きているのかを理解し、安全設計とレビュー体制を強化することが求められています。 今回のReactとNext.jsの事例は、多くのWeb技術者にとって、機能性とセキュリティのバランスを見直すきっかけになるといえます。

参考元