2025年12月、React Server Components(RSC)においてリモートコード実行(RCE)を引き起こす恐れのある脆弱性 CVE-2025-55182(React2Shell) が公開されました。公開直後から、複数のセキュリティ企業がスキャニング活動や悪用試行と推定される挙動を観測したと報告しており、CISA もこの脆弱性をKnown Exploited Vulnerabilities(KEV) リストに追加しました。
React2Shell は特定のフレームワーク固有の問題ではなく、React エコシステム全体に共通する RSC 機能の構造的欠陥に起因する脆弱性です。本レポートでは、React2Shell の技術的構造、RSC ベースのサービスにおける露出状況、観測された攻撃動向、そして実践的な対応戦略について解説します。
React2Shell 脆弱性の概要:認証なしで RCE が可能になる構造的欠陥

CVE-2025-55182 は、React Server Components がサーバーとクライアント間で状態を交換する際に利用する Flight プロトコルの逆シリアル化処理における検証不備 に起因します。攻撃者は、認証なしに改ざんされたペイロードを Server Functions のエンドポイントへ送信するだけで RCE を実行可能であり、PoC も公開されているため、自動化された攻撃に非常に晒されやすい状況です。
影響範囲は RSC を利用するすべてのサービスに及び、特に Next.js、React Router RSC、Waku、Vite RSC Plugin、Parcel RSC Plugin、RedwoodJS など多くのフレームワークが同一構造を採用していることから、エコシステム全体に影響する可能性があります。
公式パッチは react-server-dom- 系パッケージ 19.0.1 / 19.1.2 / 19.2.1 以上のバージョンから提供され、深刻度は CVSS 10.0 に分類され、最高レベルの重大な脆弱性として扱われています。
Criminal IPによる React2Shell 露出資産の検出結果
React2Shell は、従来の Web サーバーの Product 情報や HTML コンテンツ解析のみでは検出が困難です。React ベースのサービスは、RSC コンポーネントが外部に直接露出しない構造となっており、特に Next.js のように React モジュールを内部でバンドルするフレームワークでは、技術スタックの特定自体が容易ではありません。そのため、単純なバナー情報による検出方法では RSC の有効化状況や、脆弱な公開資産を正確に把握することは困難です。
実際の運用環境では、HTTP レスポンスヘッダーを基盤とした識別方法が最も信頼性の高い検出手法であることが分かりました。RSC が有効化されたサーバーでは、以下のヘッダー特性が共通して観測されます。
Criminal IP Search Query: “Vary: RSC, Next-Router-State-Tree”
Criminal IP では、これらの指標を基に、以下のクエリを使用して 日本地域における RSC 有効サーバーを検出することができます。
Criminal IP Search Query: “Vary: RSC, Next-Router-State-Tree” country: “JP”

Criminal IP IT資産検索の結果によると、 “Vary: RSC, Next-Router-State-Tree” country: “JP” クエリに基づく検索では、合計 18,338 件の RSC 資産が検出されました。
これは RSC が有効化されていることを示す識別値であり、検出されたサーバーがすべて脆弱であることを意味するわけではありません。しかし、大規模な露出攻撃対象領域が存在することを確認できる重要な指標となります。

Criminal IP で確認した特定資産の分析結果を見ると、当該サーバーは 80・443 ポートを外部に開放しており、応答ヘッダー、SSL 証明書情報、脆弱性一覧、さらに Exploit DB との連携情報までを、ページ上で統合的に確認できました。
この資産では React2Shell に関連するリスクシグナルだけでなく、過去に大規模な DDoS 攻撃で悪用された CVE-2023-44487(HTTP/2 Rapid Reset) などの重大な脆弱性も同時に検出されています。
このように、Criminal IP IT資産検索 は攻撃者が悪用しやすい環境かどうかを実際の観点から評価できるよう、複数の分析要素を提供しています。
セキュリティ対応方針
1. React 関連パッケージの即時アップデート
以下のパッケージは、必ず最新パッチバージョンへ更新する必要があります。
| パッケージ | パッチ適用バージョン |
|---|---|
| react-server-dom-webpack | 19.0.1 / 19.1.2 / 19.2.1 |
| react-server-dom-parcel | 19.0.1+ |
| react-server-dom-turbopack | 19.0.1+ |
2. フレームワーク別のパッチ適用有無の確認
React RSC は Next.js、Vite、Parcel、RedwoodJS など、複数のフレームワークで利用されています。特にNext.js は RSC を内部にベンダリング(組み込み)しているため、単に React パッケージを更新するだけでは、脆弱性パッチが自動的に適用されない可能性があります。
そのため、各フレームワークが公開している セキュリティアドバイザリおよびリリースノートを別途確認し、脆弱性が修正された最新バージョンへアップグレードすることが必須です。
3. RSC エンドポイントの外部露出を最小化
可能な場合は、Reverse Proxy(WAF、認証ゲートウェイ等)を利用してアクセスを制限してください。
4. Criminal IP を活用したモニタリング
- RSCヘッダー露出の継続モニタリング
- TLSフィンガープリントによるスキャニング活動検知
- 悪性スキャニングIPの自動ブロック
- 脆弱性の存在有無と Exploit DB 連携状態の確認
FAQ
Q1. 「Vary: RSC」が含まれているすべてのサービスが脆弱なのでしょうか?
「Vary: RSC」というヘッダーは、サーバーが React Server Components に基づいてレンダリングを行っていることを示す情報であり、これだけで脆弱性の有無が判断できるわけではありません。実際のリスクは、React 関連のセキュリティパッチが適切に適用されているかどうかによって決まります。ただし、このヘッダーは攻撃者が RSC を有効化しているサーバーを見つけるための手がかりとして利用される可能性があります。
Q2. HTMLを見ても React を使用しているかどうか分かりにくい理由は何でしょうか?
React Server Components はサーバー内部で処理が行われるため、その構造が HTML に直接表れません。また、Next.js や React はビルド時にコードを最適化する仕組みがあり、外部からフレームワーク特有の特徴を見つけにくい構造になっています。このため、HTML の内容だけでは React や RSC の利用有無を判断することは難しく、実際の識別には HTTP レスポンスヘッダーを分析する方法が効果的です。
結論
React2Shell(CVE-2025-55182)は、Web 生態系で最も広く利用されている React ベースのサービスに影響を与える重大な脆弱性であり、攻撃難易度が低く、PoC も公開されているため非常に速い速度で悪用が進んでいます。
Criminal IP の分析によると、日本国内だけで約 18,000 件の RSC 有効化サービスが公開されており、脆弱性の拡散リスクが非常に高いことが確認されました。パッチ適用と併せて、公開された RSC サービスの検出やリアルタイム監視は React2Shell 対策の中心となる要素であり、Criminal IP はこうした攻撃対象領域を正確に把握し、防御するための有効な手段となります。
なお、関連してNext.js Middlewareの認証バイパス脆弱性 :52万件以上のWeb資産が危険にさらされる の記事もご参照ください。
本レポートは、サイバー脅威インテリジェンス検索エンジン Criminal IP のデータを基に作成されています。
今すぐCriminal IP の無料アカウントを作成すれば、本レポートで引用された検索結果を直接確認したり、さらに膨大な脅威インテリジェンスを自由に検索することができます。
データソース : Criminal IP (https://www.criminalip.io/ja), CISA (https://www.cisa.gov/news-events/alerts/2025/12/05/cisa-adds-one-known-exploited-vulnerability-catalog), The Hacker News (https://thehackernews.com/2025/12/critical-react2shell-flaw-added-to-cisa.html)