
React Server Components(RSC)の「Flight」プロトコルに存在する、最大深刻度の脆弱性「React2Shell」は、React および Next.js アプリケーションにおいて、認証なしでリモートコード実行を可能にします。
このセキュリティ問題は安全でないデシリアライゼーションに起因しており、深刻度スコアは 10/10 を受け、React には CVE-2025-55182、Next.js には CVE-2025-66478(National Vulnerability Database では CVE が却下)という識別子が割り当てられています。
セキュリティ研究者の Lachlan Davidson 氏がこの欠陥を発見し、11 月 29 日に React に報告しました。彼は、攻撃者が特別に細工した HTTP リクエストを React Server Function のエンドポイントに送信することで、リモートコード実行(RCE)を達成できることを突き止めました。
「たとえあなたのアプリが React Server Function のエンドポイントを実装していなくても、アプリが React Server Components(RSC)をサポートしている場合は依然として脆弱な可能性があります」と、React のセキュリティアドバイザリは警告しています。
デフォルト設定において影響を受けるパッケージは以下のとおりです:
- react-server-dom-parcel
- react-server-dom-turbopack
- および react-server-dom-webpack
React はユーザーインターフェースを構築するためのオープンソース JavaScript ライブラリです。Meta によってメンテナンスされており、あらゆる規模の組織でフロントエンド Web 開発に広く採用されています。
Vercel がメンテナンスする Next.js は、サーバーサイドレンダリング、ルーティング、API エンドポイントを追加する、React の上に構築されたフレームワークです。
両ソリューションは、アーキテクチャのスケーリングとデプロイをより迅速かつ容易にするフロントエンドアプリケーションを通じて、クラウド環境に広く存在しています。
Wiz クラウドセキュリティプラットフォームの研究者らは、この脆弱性は悪用が容易であり、影響を受けるパッケージのデフォルト設定に存在すると警告しています。
影響と修正
React によると、この脆弱性はバージョン 19.0、19.1.0、19.1.1、および 19.2.0 に存在します。Next.js は、14.3.0-canary.77 以降の実験的な canary リリース、およびパッチ適用前の 15.x と 16.x ブランチのすべてのリリースが影響を受けます。
この欠陥は React Server Components(RSC)で使用される「react-server」パッケージに存在しますが、Next.js は RSC の「Flight」プロトコルを実装しているため、その影響を受けます。
Wiz の研究者によれば、彼らが可視性を持つすべてのクラウド環境の 39% において、CVE-2025-55182、CVE-2025-66478、またはその両方に対して脆弱なバージョンの Next.js または React のインスタンスが存在します。
同じ脆弱性は、Vite RSC プラグイン、Parcel RSC プラグイン、React Router RSC プレビュー、RedwoodSDK、Waku など、React Server を実装している他のライブラリにも存在する可能性があります。
ソフトウェアサプライチェーンセキュリティ企業の Endor Labs は、React2Shell について「サーバーが受信した RSC ペイロードの構造を適切に検証できない、論理的に安全でないデシリアライゼーションの脆弱性である」と説明しています。
攻撃者からの不正なデータを受信する際に検証が失敗し、その結果、サーバーのコンテキストで特権的な JavaScript コードが実行されます。
Davidson 氏は React2Shell のウェブサイトを作成しており、そこで技術的な詳細を公開する予定です。また、真正ではない PoC(概念実証)エクスプロイトが存在することについても警告しています。
これらの PoC は、vm#runInThisContext、child_process#exec、fs#writeFile などの関数を呼び出しますが、真正なエクスプロイトではこれらは必要ないと、研究者は述べています。
「これが悪用可能になるのは、クライアントにこれらを呼び出させることを意図的に許可した場合のみであり、その場合はどのみち危険です」と Davidson 氏は指摘します。
さらに彼は、これらの偽の PoC は、サーバー関数のリストが自動的に管理されているため、これらの関数が存在しない Next.js では動作しないだろうと説明しました。
開発者は、React 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 に用意されている修正を必ず適用するよう強く推奨されています。
組織は、自身の環境を監査して脆弱なバージョンを使用していないか確認し、リスクを軽減するために適切な対応を取る必要があります。
これら 2 つのソリューションの人気は週間ダウンロード数にも表れており、React は Node Package Manager(NPM)で5,580 万ダウンロード、Next.js は同じプラットフォームで1,670 万ダウンロードを記録しています。