React2Shell RCEの脆弱性により、ReactおよびNext.jsアプリが深刻なリスクに直面

ReactとNext.jsに新たに開示された2つの脆弱性により、特別な設定やユーザー操作を必要とせずに、何百万ものWebアプリケーションで認証不要のリモートコード実行(RCE)が可能になる恐れが生じています。 

この欠陥はReact Server Components(RSC)の不具合に起因しており、研究者たちは、デフォルトインストール環境において完全なサーバー乗っ取りを可能にしうると警告しています。

「React2Shellは、AI生成の“スロップ(粗悪な)”PoCが、実際には機能しないエクスプロイトをGitHubやソーシャルメディアに氾濫させている一方で、裏では本当に機能するエクスプロイトが開発されている、という状況を如実に示しています」と、Miggo SecurityのCTO兼共同創業者であるItai Goldman氏は述べています。

同氏はさらに、「私が懸念しているのは、このノイズが誤った安心感を与えてしまうことです。公開されているPoCが壊れて見えると、防御側は脆弱性が大したことないと考え始めてしまいます — たとえ根本的なバグが実在し、広く武器化可能で、巨大なインストールベースに潜んでいたとしても」と付け加えました。

脆弱性の内部

根本原因(CVE-2025-55182)は、React Server ComponentsのFlightプロトコルにおけるデシリアライズ処理ロジックのプロトタイプ汚染の脆弱性にあります。 

このプロトコルは、サーバーとクライアント間でReactコンポーネントのデータをストリーミングしますが、攻撃者がこのストリームに悪意あるシリアライズ済みデータを注入できると、JavaScriptのプロトタイプを操作し、データ改ざんから完全なリモートコード実行へとエスカレートさせることが可能になります。

両方の脆弱性は、認証不要で悪用可能であること、HTTP経由で到達可能なリモート攻撃面を持つこと、特別な設定を必要としないデフォルト状態で脆弱であること、そしてサーバーを完全に侵害しうることから、CVSSスコア10.0が付与されています。

この脆弱性は、Reactのサーバーサイドパッケージのバージョン19.0.0、19.1.0、19.1.1、19.2.0に影響し、以下を含みます。

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

下流では、CVE-2025-66478がNext.jsに影響しており、Next.jsはそのApp Routerアーキテクチャ内に脆弱なRSCパッケージを組み込んでいます。

この脆弱性の影響を受けるエコシステムには、次のものが含まれます。

  • Next.js 14.3.0-canary.77+、およびすべての15.xと16.x
  • React RouterのRSC対応リリース
  • ViteおよびParcelのRSCプラグイン
  • Waku、RedwoodJS、その他のサーバーコンポーネントフレームワーク

概念実証(PoC)の詳細は深刻度の高さからまだ公開されていませんが、一度攻撃手法が出回れば、悪用は容易になると予想されています。

React2Shellエクスプロイトからパイプラインを守るには

セキュリティチームは、CI/CDパイプラインを強化し、アクセス制御を厳格化し、実行環境全体での監視を改善する必要があります。

  • React、RSCパッケージ、およびすべての依存フレームワークをパッチ適用し、最新の修正済みバージョンへ更新するとともに、依存関係のピン留めを行って脆弱なリリースが再導入されるのを防ぎましょう。
  • 一時的な防御策を適用として、WAFルールの導入、RSC Flightペイロードの監視強化、サーバーサイドレンダリングエンドポイント周辺の可観測性向上などを行いましょう。
  • サービスアカウントに対して厳格な最小権限アクセスを徹底し、露出しているシークレットを最小化し、パッチ適用後には認証情報をローテーションしましょう。
  • すべてのシリアライズ済みデータやユーザー入力を検証・サニタイズし、DevSecOpsのベストプラクティスの一環としてデシリアライズ経路を見直しましょう。
  • 実行時の挙動を監視・ログ取得し、異常を検知できるようにします。たとえば、想定外のコマンド実行、ファイル変更、異常なAPIコールなどを、CI/CDのゲートキーピングや自動脆弱性スキャンを用いて監視します。
  • RSCサービスを高価値システムから分離し、侵害が発生した場合の被害範囲を制限するためにゼロトラストの原則を適用しましょう。

これらの対策は、RCE攻撃のリスクを低減し、脆弱なReact Server Componentワークフローが、より広範な侵害への侵入口となることを防ぐのに役立ちます。

モダンJSフレームワークは攻撃面を拡大している

React2Shellは、サーバーサイドJavaScriptフレームワークが、今日のグローバルなソフトウェアサプライチェーンにおける攻撃ベクターとなっていることを再認識させる事例です。 

業界がサーバーレンダリングコンポーネントやシリアライズを多用する通信モデルへとシフトする中で、かつては主にJavaやPHPといった古い言語に関連付けられていたデシリアライズの脆弱性が、いまやモダンなJSエコシステム内で大規模に顕在化しつつあります。 

React Server Componentsの採用拡大はこのリスクを増幅させており、サーバーサイドJavaScriptの厳格なハードニングと、依存関係の継続的な監視の必要性を強く浮き彫りにしています。 

これらのトレンドは、ソフトウェアサプライチェーンセキュリティが、モダンな開発フレームワークの深部から生じる脆弱性に対応できるよう進化しなければならない理由を示しています。

翻訳元: https://www.esecurityplanet.com/threats/react2shell-rce-flaws-put-react-and-next-js-apps-at-severe-risk/

ソース: esecurityplanet.com