< back to blog

React2Shell の検知:React Server Components と Next.js に影響を及ぼす最大深刻度の RCE 脆弱性

Sysdig Threat Research Team
React2Shell の検知:React Server Components と Next.js に影響を及ぼす最大深刻度の RCE 脆弱性
Published by:
Sysdig Threat Research Team
@
React2Shell の検知:React Server Components と Next.js に影響を及ぼす最大深刻度の RCE 脆弱性
Published:
December 5, 2025
シスディグによるファルコフィード

Falco Feedsは、オープンソースに焦点を当てた企業に、新しい脅威が発見されると継続的に更新される専門家が作成したルールにアクセスできるようにすることで、Falcoの力を拡大します。

さらに詳しく

本文の内容は、2025年12月5日に Sysdig Threat Research Team が投稿したブログ(https://www.sysdig.com/blog/detecting-react2shell)を元に日本語に翻訳・再構成した内容となっております。

2025年12月3日、React チームは React Server Components(RSC)における、認証不要の重大なリモートコード実行(RCE)脆弱性である CVE-2025-55182 を公開しました。“React2Shell” と名付けられたこの最大深刻度の欠陥(CVSS 10.0)は、細工された単一の HTTP リクエストによって悪意のあるコードが実行される可能性を許します。React2Shell の下流で影響を受ける可能性のある Next.js は、この影響範囲を追跡するために CVE-2025-66478 を割り当てています。

脅威アクターにとって、React2Shell は悪用時に任意のサーバーサイドコード実行を可能にし、データ窃取、水平移動、および/またはマルウェア展開への道を開きます。この記事執筆時点で、公開された概念実証(PoC)エクスプロイトが存在します。リサーチャーらは、デフォルト構成に対してほぼ 100% の成功率で悪用できると報告しており、React2Shell が大規模に悪用される可能性が極めて高いことを示しています。

詳細な分析に続き、Sysdig Threat Research Team(TRT)は React2Shell 向けの Falco 検知ルールを開発し、現在 Sysdig Secure 内で利用可能になっています。Sysdig TRT は、Server Components を伴う React 19 を実行しているすべての組織に対し、直ちに対処することを推奨します。以下では、修正のための詳細な手順に加えて、この脆弱性とその悪用の影響に関する技術的分析を提供します。

React2Shell 技術分析

脆弱性の詳細

CVE-2025-55182 は RSC の「Flight」プロトコル内、具体的には react-server が Server Function エンドポイント向けの HTTP リクエストを処理する方法に存在します。このデシリアライズの欠陥により、細工されたペイロードを処理する際に、攻撃者が制御するデータがサーバー側の実行に影響を与えることが可能になります。

React Server Functions は、クライアントがサーバー関数を呼び出すことを可能にし、React はフレームワーク向けの統合ポイントを提供します。脆弱なコードは HTTP ペイロードを安全でない方法でデシリアライズしており、これが認証不要の RCE を可能にします。

影響を受けるパッケージ (バージョン 19.0.0、19.1.0、19.1.1、19.2.0):

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

明示的なサーバー機能エンドポイントがなくても、アプリケーションは脆弱です。この欠陥は、RSC がサポートされている場所ならどこでも悪用可能です。

React2Shell の影響を受けるフレームワーク

  • Next.js (15.0.4 から 16.0.6 まで、さらに 14.3.0-Canary.77 のカナリア)
  • React Router (RSC mode)
  • Waku
  • Parcel RSC (@parcel/rsc)
  • Vite RSC (@vitejs/plugin-rsc)
  • RedwoodSDK (rwsdk)

標準的な create-next-app のプロダクションビルドは、変更を加えなくても脆弱です。デフォルト構成は、そのままの状態で悪用可能です。

攻撃者ができること

認証不要のアクセス、リモートからの悪用可能性、そして React の広範な普及は、最大深刻度の CVSS スコアが示すとおり、極めて高いリスクを生み出します。コード実行を達成した攻撃者は以下のことが可能になります。

  • シークレット、認証情報、ユーザー情報へアクセスしてデータを流出させる。
  • バックドアや Web シェルを展開して永続化を確立する。
  • 内部システムへピボットして水平移動を行う。
  • ランサムウェアを展開し、恐喝のためにデータを暗号化する。

大規模に展開されているフレームワークにおける認証不要の RCE は、重大な悪用の可能性を示唆します。この種のエクスプロイトは容易に自動化でき、脆弱なサーバーを求めてインターネット全体を掃討することが可能です。

検知と緩和

ランタイム検知

Sysdig TRT は “Suspicious Command Executed by Web Server” ルールを強化しました。この検知ルールにより、Web サーバーによって生成される予期しない任意のコマンドの大半を捕捉し、こうしたアプリケーションにおけるリモートコマンド実行に対してアラートを発します。以下の Falco ルールは、不審なコマンドを検知するために使用できます。(なお、「proc.aname」フィールドは環境に合わせて調整する必要がある場合があります。また、minimal_unix_commands マクロに追加のコマンドを加えることも可能です。)

- list: minimal_unix_commands
  items: [ls, cp, mv, rm, mkdir, rmdir, find, touch, cat, less, head, tail, nano, vi, chmod … ]
		
- macro: spawned_process
  condition: (evt.type in (execve, execveat) and evt.dir=< and evt.arg.res=0)


- rule: Detecting React2Shell Remote Code Execution
 condition: ( 
spawned_process
and proc.name in (minimal_unix_commands) 
       and proc.pname in (shell_binaries) 
and ( proc.aname startswith 'next-server' or proc.aname startswith 'react-router' or proc.aname in (waku,vite)) 
)

Sysdig Secure のお客様は、このルールを Sysdig Runtime Threat Detection Notable Events ポリシー内で確認できます。この脆弱性が悪用された場合、ほかの Sysdig ルールも発火することが確認されており、Reverse Shell DetectedReverse Shell Redirects STDIN/STDOUT Using UNIX Socket が含まれます。Suspicious Command by Web Server は、より汎用的な保護を提供します。

WAF での防御

CVE-2025-55182 への対応として、クラウドプロバイダーは潜在的な悪用を阻止するために Web アプリケーションファイアウォール(WAF)ルールを展開しました。

  • Cloudflare は、POST リクエストにおける安全でないデシリアライズを検出するルールを展開しました。
  • Google Cloud Armor は、cve-canary ルールを追加しました。
  • Vercel は、プラットフォームレベルの保護を展開しました。
  • Firebase Hosting/App Hosting は、悪用を制限するルールを適用しています。

WAF ルールは多層防御を提供しますが、回避される可能性があります。したがって、脆弱な組織は環境を包括的に保護するために、基盤となるコードにパッチを適用する必要があります。

脆弱性スキャン

GitHub 上の多くの PoC は、根本原因を誤って診断していたり、React2Shell の悪用可能性を確認できていなかったりします。一部は AI が生成したかのように見え、もっともらしい外観でありながら動作しません。元々のリサーチャーは、公開されている PoC が実際のエクスプロイトとは異なることを確認しています。

Assetnote という組織は、脆弱なホストとパッチ済みホストを区別できるスキャナーを公開しました。彼らの解説では、空のオブジェクトに対して ["$1:a:a"] を送信し、脆弱なサーバーが 500 と E{"digest": ...} を返す仕組みを詳述しています。一方、パッチ済みバージョンではこのクラッシュが防止されます。

Sysdig Secure の脆弱性管理は現在、React2Shell の影響を受けるパッケージを識別します。また、Sysdig Secure 内の Threat Intelligence Feed も、インベントリに基づいて影響を受けるパッケージを即座に可視化します。

修復

影響を受けるバージョンの React に対する唯一の修正はパッチです。

修正されたバージョンには以下が含まれます。

  • React Server Components: 19.0.1, 19.1.2, 19.2.1
  • Next.js: 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7

必要なアクション:

  • RSC パッケージを更新する。
  • Next.js を、使用しているマイナーリリースに対応したパッチ済みバージョンへ更新する。
  • Next.js のカナリア版(14.3.0-canary.77 以降)をステーブル版 14.x にダウングレードする。
  • その他のフレームワークを最新バージョンに更新する。
  • Falco または Sysdig Secure を用いてランタイム検出を導入する。
  • 一時的な緩和策として WAF 保護を有効化する。

まとめ

CVE-2025-55182 と CVE-2025-66478 は、RSC アプリケーションを認証不要の RCE にさらします。最大深刻度、デフォルト構成での悪用可能性、そして広範な普及により、緊急のリスクが生じています。

影響を受けるバージョンの React を実行しているすべての組織は、直ちにパッチを適用する必要があります。また、React2Shell の積極的な悪用を検出するために、ランタイム脅威検出も導入すべきです。WAF ルールは一時的な緩和策として使用できますが、修正版へ更新することでリスクを排除できます。すぐにパッチ適用ができない環境では、ランタイム検知を導入する必要があります。

About the author

Cloud Security

セキュリティの専門家と一緒に、クラウド防御の最適な方法を探索しよう