超緊急:React Server Components に CVSS 10.0 の RCE 脆弱性「React2Shell」CVE-2025-55182

超緊急:React Server Components に CVSS 10.0 の RCE 脆弱性「React2Shell」CVE-2025-55182

作成日:
更新日:

これは本当にヤバい。CVSSスコアが最大値の10.0です。

2025年12月3日、React Server Components(RSC)において、認証不要でリモートコード実行(RCE)が可能な脆弱性 CVE-2025-55182 が公開されました。

セキュリティコミュニティでは「React2Shell」と呼ばれ、2021年に世界中を震撼させた Log4j の脆弱性「Log4Shell」に匹敵する深刻度として警戒されています。

脆弱性の概要

何が起きるのか

React Server Components の「Flight」プロトコルにおけるデシリアライゼーション処理の検証不足が原因です。

攻撃者は、細工した HTTP リクエストをサーバーの関数エンドポイントに送信するだけで、認証なしにサーバー上で任意の JavaScript コードを実行できてしまいます。

攻撃者 → 細工したHTTPリクエスト → サーバー → 任意のコード実行

これは「認証バイパス」ではなく、サーバーを完全に乗っ取られるレベルの脆弱性です。

技術的な詳細

React Server Components は、サーバーとクライアント間でコンポーネントのデータをやり取りする際に「Flight」というプロトコルを使用しています。

このプロトコルでは、サーバーから送られてきたデータをデシリアライズ(復元)する処理がありますが、ここで入力データの検証が不十分でした。

攻撃者は悪意のあるペイロードを含むリクエストを送信し、サーバーがそれを信頼して処理することで、任意のコードが実行されてしまいます。

影響を受けるバージョン

React パッケージ

以下のパッケージのバージョン 19.0.0、19.1.0、19.1.1、19.2.0 が影響を受けます:

  • react-server-dom-webpack
  • react-server-dom-parcel
  • react-server-dom-turbopack

影響を受けるフレームワーク・ツール

RSC を使用している以下のフレームワークも影響を受けます:

フレームワーク 影響を受けるバージョン
Next.js 14.3.0-canary.77以降、15.x、16.x(App Router使用時)
React Router RSC プレビュー版
Expo RSC サポート版
Redwood SDK 影響あり
Waku 影響あり
@parcel/rsc 影響あり
@vitejs/plugin-rsc 影響あり

特に Next.js の App Router を使用している場合は要注意です。

今すぐ行うべき対応

1. React パッケージのアップデート

修正済みバージョンにアップデートしてください:

# React 19.2.x を使用している場合
npm install react-server-dom-webpack@19.2.1
npm install react-server-dom-parcel@19.2.1
npm install react-server-dom-turbopack@19.2.1

# React 19.1.x を使用している場合
npm install react-server-dom-webpack@19.1.2

# React 19.0.x を使用している場合
npm install react-server-dom-webpack@19.0.1

2. Next.js のアップデート

Next.js を使用している場合は、以下の修正済みバージョンにアップデートしてください:

# Next.js 16系
npm install next@16.0.7

# Next.js 15系
npm install next@15.5.7
# または 15.4.8, 15.3.6, 15.2.6, 15.1.9, 15.0.5

# React も一緒に更新
npm install react@19.2.1 react-dom@19.2.1

3. 依存関係の確認

package-lock.jsonyarn.lock を確認し、古いバージョンの RSC パッケージが残っていないか確認してください:

# 脆弱なパッケージがないか確認
npm ls react-server-dom-webpack
npm ls react-server-dom-parcel
npm ls react-server-dom-turbopack

ロックファイルに古いバージョンが残っている場合は、再生成が必要です:

rm -rf node_modules package-lock.json
npm install

4. WAF での保護

すぐにアップデートできない場合は、WAF(Web Application Firewall)でのブロックを検討してください。

AWS WAF や F5 などのプロバイダーは、この脆弱性に対応したシグネチャを提供しています。

悪用状況

JPCERT/CC によると、2025年12月4日時点で日本国内での悪用は確認されていませんが、海外のセキュリティベンダーからは、この脆弱性の悪用を試みる通信が確認されたとの報告があります。

今後、悪用が拡大する可能性が非常に高いです。

このブログへの影響

このブログは Next.js 16 で構築されていますが、現時点で以下の理由により直接的な影響は限定的です:

  1. Server Actions を使用した機密性の高い処理を行っていない
  2. 静的サイトとして生成しており、動的な RSC 処理が少ない

しかし、念のため Next.js を最新版にアップデートしました。

npm list next
# → next@16.0.7 (修正済みバージョン)

なぜこれほど深刻なのか

CVSS 10.0 の意味

CVSS(Common Vulnerability Scoring System)は脆弱性の深刻度を0.0〜10.0で評価するシステムです。

10.0は文字通り最大値であり、以下の条件をすべて満たす脆弱性に付与されます:

  • 攻撃の容易さ: ネットワーク経由で、認証なしに、ユーザー操作なしで攻撃可能
  • 影響の大きさ: 機密性・完全性・可用性のすべてに壊滅的な影響

今回の CVE-2025-55182 は、まさにこの条件を満たしています。

RCE(リモートコード実行)の恐ろしさ

RCE 脆弱性があると、攻撃者は以下のことが可能になります:

  • サーバー上の全データの読み取り・改ざん・削除
  • データベースへの不正アクセス
  • マルウェアのインストール
  • ランサムウェア攻撃の踏み台化
  • 他システムへの攻撃の中継点として悪用

サーバーが完全に乗っ取られると考えてください。

教訓

1. Server Components は便利だが、攻撃対象面も増える

RSC は開発者体験を大幅に向上させますが、サーバーサイドで JavaScript を実行するため、攻撃対象面(Attack Surface)が増加します。

2. デシリアライゼーション脆弱性は致命的

Java の Log4j(CVE-2021-44228)でも同様でしたが、信頼できないデータのデシリアライゼーションは非常に危険です。

3. セキュリティアップデートは最優先

「動いているから触らない」は通用しません。 セキュリティアップデートは最優先で適用する必要があります。

まとめ

CVE-2025-55182(React2Shell)は、React エコシステムにおける史上最悪レベルの脆弱性です。

今すぐ以下を確認してください:

  1. React Server Components を使用しているか確認
  2. 使用している場合、バージョンを確認
  3. 影響を受けるバージョンの場合は今すぐアップデート
  4. Next.js を使用している場合も同様に確認・アップデート

「週明けに対応しよう」ではなく、今すぐ対応してください。 CVSS 10.0 の脆弱性は、それほど緊急性が高いものです。


参考リンク