2025年12月3日、React Server Componentsに存在するCVSS 10.0の致命的脆弱性CVE-2025-55182──通称「React2Shell」が公表された。Flightプロトコルのデシリアライゼーション不備を突く本脆弱性は、認証不要・ユーザー操作不要でリモートコード実行(RCE)を達成可能であり、公開後わずか数時間で中国系国家支援グループによる大規模悪用が開始された。Cisco Talosが「UAT-10608」として追跡する攻撃クラスターは、24時間以内に766ホストを侵害し、AWS秘密鍵・Stripe APIキー・GitHubトークンを含む10,120ファイルの認証情報を自動窃取した。本稿はテクノロジーの視点から、React2Shellの技術的メカニズム、産業化されたC2基盤「NEXUS Listener」の構造、そしてChrome CVE-2026-5281ゼロデイ連鎖に続くApp Router時代の構造的攻撃面を分析する。
React2Shell脆弱性の技術的メカニズム ── Flightプロトコルが孕むデシリアライゼーションの構造欠陥
CVE-2025-55182の根幹は、React Server Components(RSC)が採用するFlightプロトコルのデシリアライゼーション処理にある。Flightプロトコルとは、サーバーサイドでレンダリングされたコンポーネントデータをクライアントに転送するためのReact独自のシリアライゼーション機構である。このプロトコルのデコードロジックが、受信するHTTPペイロードの構造検証を適切に行わないまま展開処理を実行する。
攻撃者は、React Server Function エンドポイントに対して特殊に細工されたHTTP POSTリクエストを送信する。ペイロードには__proto__やconstructorといったプロトタイプ汚染キーが埋め込まれており、デシリアライゼーション過程でJavaScriptオブジェクトのプロトタイプチェーンが改竄される。RSCの特定の実行パスと組み合わせることで、このプロトタイプ汚染プリミティブはNode.jsプロセス上での任意コード実行へとエスカレーションする。
とりわけ深刻なのは、create-next-appで生成した標準的なアプリケーションが、開発者による追加コードなしに本番環境で脆弱となる点である。Server Functionsを明示的に実装していなくとも、RSCをサポートしているだけで攻撃対象となる。CVSS v3.1で10.0(最高値)、CVSS v4で9.3と評価された所以は、攻撃ベクトルがネットワーク経由、攻撃複雑性が「低」、必要な特権が「なし」、ユーザー操作が「不要」という、防御側にとって最悪の組み合わせが成立するためである。
影響を受けるバージョンは広範囲に及ぶ。React側ではreact-server-dom-webpack、react-server-dom-parcel、react-server-dom-turbopackの各19.x系、Next.js側では15.0.0〜15.5.6および16.0.0〜16.0.6が対象である。さらにReact RouterやWaku、Redwood SDKなどRSCを採用する他のフレームワークも影響範囲に含まれ、React2Shellは特定フレームワークの問題ではなくRSCエコシステム全体の構造的脆弱性であることが判明した。脆弱性診断やペネトレーションテストの実務においては、こうしたフレームワーク横断的な脆弱性こそが最も見落とされやすく、発見されたときのインパクトが最大化する傾向にある。開発段階でのセキュリティ設計こそが後付けの対策よりも圧倒的にコスト効率が高いという原則が、改めて裏付けられた事例である。
UAT-10608攻撃キャンペーンの全容 ── 24時間で766ホスト侵害の産業化された攻撃オペレーション
2026年4月初旬、Cisco Talosが公表した脅威レポートにより、CVE-2025-55182を悪用した大規模認証情報窃取キャンペーンの全容が明らかになった。UAT-10608と命名された攻撃クラスターは、高度に自動化されたオペレーションにより24時間以内に766のホストを侵害した。
攻撃の時系列を追うと、事態の深刻さが浮き彫りになる。2025年11月29日にLachlan Davidson氏が脆弱性を発見しReactチームに報告、12月3日09:00 UTCに公表とnpmへの修正パッチ配信が開始されたが、同日21:04 UTCにはすでにPoCエクスプロイトが公開。翌12月4日には中国系国家支援グループであるEarth LamiaおよびJackpot Pandaによる実戦投入が確認された。Cloudflareの観測によれば、公表から8日間でReact2Shell関連WAFルールに対して5億8,210万回のヒットが記録され、ピーク時には毎時1,272万回に達した。
UAT-10608の攻撃手法は3段階で構成される。第1段階としてShodan・Censys等のサービスまたはカスタムスキャナーで公開されたNext.jsデプロイメントを自動発見。第2段階でServer Functionエンドポイントに悪意あるシリアライズドペイロードを送信しRCEを達成。第3段階で後述するNEXUS Listener v3収集フレームワークを展開し、認証情報を体系的に窃取する。
地理的分布として台湾、ベトナム、日本、ニュージーランドの政府機関(.govドメイン)、学術機関、重要インフラ事業者、パスワードマネージャー、VPNアプライアンスが標的とされた。注目すべきは中国のIPアドレス空間が明示的に除外されている点であり、国家支援型攻撃の典型的パターンと一致する。
窃取された認証情報の統計は衝撃的である。766ホストから収集された10,120ファイルの内訳は、データベース認証情報が約701件(91.5%)、SSH秘密鍵が約599件(78.2%)、AWS認証情報が約196件(25.6%)、Stripe APIキーが約87件(11.4%)、GitHub/GitLabトークンが約66件(8.6%)に上る。加えてOpenAI・Anthropic・NVIDIA NIMのAIプラットフォーム認証情報、SendGrid・Telegram Bot Token、Kubernetes ServiceAccountトークン、Docker設定ファイルまでもが収集対象に含まれていた。
NEXUS Listener ── GUI付きC2基盤が示す攻撃インフラの成熟
UAT-10608キャンペーンの中核を成すのが、NEXUS Listenerと呼ばれるマルチフェーズの自動認証情報収集フレームワークである。現在v3(第3世代)に達しており、その洗練度は従来のスクリプトベースのC2とは一線を画す。
NEXUS Listenerの特徴は、完全なWeb UIを備えている点にある。パスワード保護されたアクセスインターフェース、被害ホストの一覧と統計ダッシュボード、窃取された認証情報の検索可能なデータベース、ホスト別・収集フェーズ別のカテゴリ表示、リアルタイムの侵害メトリクスとアプリケーション稼働時間の追跡といった機能を実装しており、攻撃者が効率的に大量の窃取データを管理・分析できる設計になっている。
データコールバック構造はhttp://<C2_IP>:8080/h=<HOSTNAME>&l=<PHASE>&id=<ID>という形式で、収集フェーズ(environ/jsenv、ssh、tokens、history、cloud_meta、k8s、docker、cmdline/proc_all)ごとに体系的にデータが分類・送信される。侵害されたホスト上ではシェルスクリプトが/tmpにランダム化されたファイル名で配置され、nohupコマンドで実行されるため、以降の手動操作は不要である。
このC2基盤の構造は、Coruna iOS Exploit Kitの産業構造で論じた商用エクスプロイトの産業化トレンドと軌を一にする。攻撃ツールがGUI化・マニュアル化されることで、高度な技術スキルを持たないオペレーターでも大規模な攻撃キャンペーンを遂行可能になるという構造的問題である。
皮肉にもUAT-10608のオペレーションセキュリティ上の失態が全容解明の契機となった。NEXUS Listenerの1インスタンスがパスワード保護なしで公開されており、窃取された認証情報データベースの全内容、収集フレームワークのソースコードと設定、リアルタイムの運用メトリクスが研究者に露出した。この露出したインスタンスには複数の高価値サービスのAPIキーが含まれ、全侵害組織のインフラストラクチャマップが明らかになった。
ポストエクスプロイテーション ── 暗号マイニングからカスタムバックドアまで
Unit 42(Palo Alto Networks)の調査により、React2Shell悪用後の多様なポストエクスプロイテーション活動が記録されている。認証情報窃取にとどまらず、複数の攻撃者グループが異なる目的でCVE-2025-55182を悪用している実態が浮かび上がった。
確認されたマルウェアは7種に及ぶ。暗号マイニングソフトウェアXMRIG、Cobalt Strikeによるbashリバースシェル経由のC2通信、fm.jsというインタラクティブファイルマネージャー型Webシェル、ブロックチェーンベースのC2インフラを用いるEtherRAT、リモートアクセストロジャンNoodle RAT、中国国家支援と推定されるCL-STA-1015に関連付けられるSNOWLIGHT & VShell、そしてAES-256暗号化を使用する未知のLinuxバックドアKSwapDoorである。
偵察活動としては、echo $((288*288))のような数学演算による脆弱性プローブ、Base64エンコードされた偵察コマンド、プロセス列挙と環境変数収集が観測されている。インシデント対応の現場では、こうした多層的な攻撃に対して1秒の判断遅れが被害範囲を指数関数的に拡大させる。React2Shellのような即時性の高い脆弱性に対するパッチ適用の迅速さが、組織の実質的なセキュリティ成熟度を如実に反映する。
収集されたデータセットは、単なる認証情報の集合体ではなく、各組織が利用するサービス構成、クラウドプロバイダー、サードパーティ統合、認証メカニズム、ネットワークトポロジーを含む詳細なインフラ偵察マップとして機能する。このインテリジェンスはラテラルムーブメント計画、権限昇格チェーン構築、サプライチェーン攻撃の基盤、他の脅威アクターへのアクセス販売など、二次的・三次的な攻撃に転用される極めて高い価値を持つ。
App Router時代のセキュリティ設計 ── RSCの構造的攻撃面と防御アーキテクチャ
React2Shell事案は、React Server ComponentsおよびApp Routerが導入した新しいアーキテクチャパラダイムにおける構造的なセキュリティ課題を突きつけた。従来のSPA(Single Page Application)ではクライアント・サーバー間の境界が明確であったが、RSCはこの境界を意図的に曖昧にすることで開発体験を向上させた。その代償として、攻撃面が質的に変化している。
第1の課題はServer Functionsの暗黙的なHTTPエンドポイント化である。Server Actionsは開発者が意識せずともパブリックHTTP POSTエンドポイントとして公開される。明示的な認証実装がなければ外部から直接呼び出し可能であり、ミドルウェアやコンポーネントレベルのセキュリティ制御をバイパスできる。TypeScriptの型安全性はランタイムでは消失するため、userId: stringと型注釈しても{"userId": {"$ne": null}}のようなインジェクション攻撃を防げない。Zodなどによるランタイムバリデーションが必須となる。
第2の課題はクロージャ変数のシリアライゼーションリスクである。Server Actionsはコンポーネントスコープの変数をキャプチャし、暗号化してクライアントに送信する。この暗号化が破られれば、スコープ内の機密データが露出する。CVE-2025-55183(ソースコード露出、CVSS 5.3)はまさにこのメカニズムの別の欠陥を突いたものであり、JavaScriptの型強制を利用してServer FunctionオブジェクトのtoString()を発火させ、コンパイル済みソースコードを返却させる。
第3の課題はデフォルト設定の脆弱性である。Next.jsのApp Routerでは、標準的なプロジェクト構成がそのまま攻撃対象となる。これは「セキュア・バイ・デフォルト」原則の重大な違反であり、フレームワーク側の設計思想そのものに課題がある。Vercelは即座にWAFルールを展開し、Vercelホスト上のプロジェクトを自動保護したが、セルフホスト環境の防御は各組織に委ねられた。
防御アーキテクチャとしては、以下の多層防御が不可欠である。全Server Actionsへのスキーマバリデーション(Zod等)の適用、明示的な認証・認可チェックの実装、/_rsc/エンドポイントへの異常なPOSTリクエストの監視、WAFルールの即時適用、シークレット管理の厳格化(環境変数の適切なアクセス制御とローテーションポリシー)、そしてNode.jsプロセスからの異常なプロセス生成(bash、curl、wget等)の検知である。HPE SRX400のゼロトラスト実装標準で論じたように、アプリケーション層のセキュリティはネットワーク境界防御だけでは担保できない時代に入っている。
React2Shellが提起する構造的問いかけ ── フレームワーク抽象化とセキュリティ責任の境界
React2Shellが突きつける本質的な問題は、フレームワークの抽象化がセキュリティ責任の所在を曖昧にするという構造的ジレンマである。RSCは「サーバーとクライアントの境界を意識させない」ことを設計目標に掲げたが、その結果として開発者がHTTPエンドポイントの存在を認識しないまま攻撃面を公開する状況を生み出した。
CVE-2025-55182のCVSS 10.0は技術的脆弱性の評価だが、真に問われるべきはフレームワークが提供する「デフォルト」の安全性基準である。create-next-appで生成したアプリケーションが追加コードなしに完全RCEを許容するという事実は、DevSecOpsの文脈では受け入れがたい。Vercelの迅速なWAF対応は評価に値するが、それはホスティングプラットフォーム側の補完措置であり、フレームワーク本体のセキュリティ設計を代替するものではない。
公表後8日間で5億8,210万回のWAFヒットという数字は、攻撃者側のスキャニング・インフラの産業化を如実に示している。脆弱性の公開から悪用開始までのウィンドウは数時間にまで短縮されており、従来の「パッチ適用まで30日」というタイムラインはもはや現実と乖離している。
今後のRSCエコシステムに求められるのは、第1にFlightプロトコルの厳格な入力検証のデフォルト有効化、第2にServer Functionsの認証要件のオプトアウト方式への転換(現在のオプトイン方式からの逆転)、第3にランタイム型検証のフレームワーク統合、そして第4にデシリアライゼーション処理の形式的検証可能な実装への移行である。
React2Shellは単一の脆弱性ではなく、モダンWebフレームワークが抱える設計哲学レベルの課題を体現する事案である。App Routerの採用を推進する組織は、その利便性とセキュリティリスクのトレードオフを正確に理解し、多層防御の設計を怠ってはならない。
FAQ
CVE-2025-55182(React2Shell)とは何か?
React Server Componentsの Flightプロトコルにおけるデシリアライゼーション不備を悪用したCVSS 10.0のリモートコード実行脆弱性である。認証不要・ユーザー操作不要でNode.jsプロセス上の任意コード実行が可能であり、Next.js 15.x/16.x、React Router、Waku等のRSC対応フレームワーク全般に影響する。
自社のNext.jsアプリが影響を受けるか確認する方法は?
Next.js 15.0.0〜15.5.6またはNext.js 16.0.0〜16.0.6を使用しており、App Router(RSC)を有効にしている場合は影響を受ける。package.jsonのnextバージョンを確認し、パッチ適用済みバージョン(15.0.5、15.1.9、15.2.6、15.3.6、15.4.8、15.5.7、16.0.7以降)へ速やかにアップグレードすべきである。Pages Routerのみ使用している場合は影響を受けない。
NEXUS Listenerとはどのような攻撃ツールか?
UAT-10608が使用するマルチフェーズの自動認証情報収集C2フレームワークであり、現在v3に達している。Web UI付きダッシュボード、被害ホストの統計管理、窃取データの検索可能なDB、収集フェーズ別のデータ分類といった機能を備え、攻撃の産業化を体現するツールである。
Vercelでホストしている場合はパッチ不要か?
VercelはWAFルールを自動展開して保護を提供しているが、WAFはバイパスされる可能性がある補完的措置に過ぎない。パッチ適用が唯一の根本対策であり、Vercelホスト環境であっても速やかなバージョンアップグレードが必要である。
React2Shellの悪用を検知するにはどうすればよいか?
/_rsc/エンドポイントへの異常なPOSTリクエスト、大容量バイナリペイロード、Node.jsプロセスからのbash・curl・wgetの異常なプロセス生成、C2ポート(8080等)への外部接続、暗号通貨マイニングプールへの通信を監視すべきである。また、/tmpディレクトリへのスクリプト設置やnohupコマンドの実行も侵害の指標となる。
参考文献
- UAT-10608: Inside a large-scale automated credential harvesting operation — Cisco Talos, 2026年4月
- Critical Security Vulnerability in React Server Components — React Team, 2025年12月3日
- CVE-2025-55182 and CVE-2025-66478 Exploitation Analysis — Unit 42 (Palo Alto Networks), 2025年12月
- React2Shell Security Bulletin — Vercel, 2025年12月
- React2Shell RSC Vulnerabilities Exploitation Threat Brief — Cloudflare, 2025年12月
- China-Nexus Threat Groups Rapidly Exploit React2Shell — AWS Security Blog, 2025年12月
- Threat Actors Exploit React2Shell CVE-2025-55182 — Google Cloud Blog, 2025年12月
- CVE-2025-55182 Detail — NVD (National Vulnerability Database)



