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となっている。
この脆弱性は、以下を含むバージョン19.0.0、19.1.0、19.1.1、19.2.0のReactサーバーサイドパッケージに影響する。
- 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のすべて
- RSC対応のReact Routerリリース
- ViteおよびParcelのRSCプラグイン
- Waku、RedwoodJS、その他のサーバーコンポーネントフレームワーク
深刻度を踏まえ、概念実証の詳細はまだ一般公開されていないものの、攻撃手法が広まれば、悪用は容易になると予想される。
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の厳格な強化と、依存関係の継続的な監視が必要であることを浮き彫りにしている。
こうした傾向は、ソフトウェアサプライチェーンセキュリティが、最新の開発フレームワークの深部から生じる脆弱性に対応できるよう進化しなければならない理由を示している。





