React2Shellの重大な脆弱性(CVE-2025-55182)分析:RSC対応サービスを標的とした攻撃が世界的に急増

はじめに

2025年12月、React Server Components (RSC) におけるリモートコード実行 (RCE) を可能にする重大な脆弱性 CVE-2025-55182 (通称 React2Shell) が公に開示されました。開示直後から、複数のセキュリティベンダーがスキャン活動および悪用が疑われる試みを報告しており、米国土安全保障省サイバーセキュリティ・インフラストラクチャセキュリティ庁 (CISA) はこの脆弱性を既知の悪用されている脆弱性 (KEV) カタログに追加しました。

React2Shellは特定のフレームワークに限定されるものではなく、RSC機能の構造的な弱点に起因するため、広範なReactエコシステムに影響を及ぼします。本記事では、React2Shellの技術的基盤、RSCを使用するサービスの露出状況、観測された攻撃者の活動、そして組織が講じるべき防御戦略について詳しく解説します。

React2Shellの脆弱性概要:認証なしでRCEを許す構造的欠陥

CVE-2025-55182は、React Server Componentsがサーバーとクライアント間で状態を交換するために使用する Flightプロトコルのデシリアライズプロセスにおける検証の不備によって引き起こされます。攻撃者は認証なしで、細工されたペイロードをサーバー機能のエンドポイントに送信するだけでRCEを達成できます。すでに概念実証 (PoC) が公開されているため、この脆弱性は自動化された攻撃に対して非常に脆弱です。

この影響はRSCを使用するすべてのサービスに及び、Next.js、React Router RSC、Waku、Vite RSC Plugin、Parcel RSC Plugin、RedwoodJSといったフレームワークが同じ基盤構造を共有しているため、より広範なReactエコシステム全体が集合的に露出しています。公式パッチはreact-server-dom-*パッケージのバージョン19.0.1 / 19.1.2 / 19.2.1以降で利用可能であり、この脆弱性はCVSSスコア10.0と評価され、最高の致命的な深刻度を示しています。

React2Shellの影響を受ける資産の露出分析 (Criminal IPを使用)

React2Shellは、従来の製品バナーやHTMLコンテンツのみで検出することが困難です。ReactベースのサービスはRSCコンポーネントが外部に露出しないように設計されており、Next.jsのようにReactモジュールを内部にベンダーするフレームワークでは、基盤となる技術スタックの特定がさらに難しくなります。そのため、単純なバナーベースの検出方法では、RSCが有効であるか、サービスがこの脆弱性にさらされているかを確実に判断することはできません。

実環境において最も信頼性の高い検出方法は、HTTPレスポンスヘッダーに基づいてシステムを特定することであり、RSCが有効なサーバーは一貫して「Vary: RSC, Next-Router-State-Tree」という値を示します。Criminal IPを使用すると、このヘッダーパターンに基づいたクエリでRSC対応サーバーを検出できます。

例えば、「Vary: RSC, Next-Router-State-Tree」country:「US」というCriminal IPの検索クエリにより、米国だけで合計109,487件のRSC対応資産が特定されました。このヘッダーパターンはRSCがこれらのサーバーでアクティブであることを示しており、すべてが脆弱であるというわけではありませんが、存在する大規模な露出領域の重要な指標となります。

Criminal IPでの特定資産の分析結果を見ると、サーバーはポート80と443が外部に公開されており、そのレスポンスヘッダー、SSL証明書の詳細、脆弱性リスト、Exploit DB関連付けがすべて統合されたページで確認できます。この資産では、React2Shellに関連する指標とともに、大規模なDDoS攻撃で広く悪用されているCVE-2023-44487 (HTTP/2 Rapid Reset) などの他の重要な脆弱性も特定されました。これは、Criminal IP Asset Searchが、攻撃者による環境の現実的な悪用可能性を評価するのに役立つ複数の分析レイヤーを提供することを示しています。

セキュリティ軽減策

組織は、React2Shellの脅威に対抗するために以下の戦略を採用する必要があります。

  • React関連パッケージの即時アップデート: すべてのReact関連パッケージを、最新のパッチ適用済みのリリースに直ちに更新してください。具体的には、react-server-dom-webpackパッケージはバージョン19.0.1、19.1.2、または19.2.1に、react-server-dom-parcelおよびreact-server-dom-turbopackはバージョン19.0.1以降にアップグレードして、脆弱性から保護されていることを確認する必要があります。
  • 各フレームワークのパッチ可用性の確認: React RSCはNext.js、Vite、Parcel、RedwoodJSなど複数のフレームワークで使用されています。特にNext.jsはRSCを内部でベンダーしているため、Reactパッケージの更新だけでは自動的に修正が適用されない場合があります。したがって、各フレームワークの公式セキュリティアドバイザリまたはリリースノートを確認し、脆弱性が対処されているバージョンにアップグレードすることが不可欠です。
  • RSCエンドポイントの外部露出の最小化: 可能な限り、リバースプロキシ、WAF、または認証ゲートウェイを使用してアクセスを制限してください。
  • 監視のためのCriminal IPの活用: RSC関連ヘッダーの監視、TLSフィンガープリントに基づくスキャン試行の検出、悪意のあるスキャンIPの自動ブロック、脆弱性の存在と関連するExploit DBエントリの確認にCriminal IPを活用してください。

結論

React2Shell (CVE-2025-55182) は、ウェブエコシステムで最も広く使用されているReactベースのサービスに影響を与える致命的な脆弱性です。低い悪用複雑度と公開されているPoCにより、活発な攻撃が急速に広がっています。Criminal IPの分析によると、米国の約110,000のRSC対応サービスが露出しており、広範な悪用の重大なリスクを浮き彫りにしています。

パッチの適用に加え、露出しているRSCサービスを特定し、リアルタイムで監視することが、効果的なReact2Shell対応戦略の不可欠な要素です。Criminal IPは、この攻撃対象領域を正確にマッピングし、防御策を強化するための最も効果的なツールの1つを提供します。


元記事: https://gbhackers.com/critical-react2shell-vulnerability-cve-2025-55182-analysis-surge-in-attacks-targeting-rsc-enabled-services-worldwide/