2025年12月3日に公開されたReact Server Components(RSC)の重大脆弱性CVE-2025-55182(CVSS 10.0)を悪用する攻撃が、2026年2月に入り第二波を迎えている。GreyNoiseの観測データによれば、1月26日から2月2日までの7日間で1,083のユニークIPから約142万回の攻撃試行が記録された。攻撃ペイロードにはXMRigクリプトマイナー、VShell RAT、リバースシェルが含まれ、パッチ未適用のNext.jsアプリケーションが標的となっている。本稿では攻撃の技術的詳細と防御策を解析する。

CVE-2025-55182の技術的背景

CVE-2025-55182は、React Server Componentsが使用する「Flight」プロトコルにおける安全でないデシリアライゼーションに起因する事前認証リモートコード実行(RCE)脆弱性である。攻撃者は特別に細工されたHTTP POSTリクエストを送信することで、サーバーサイドで任意のコードを実行できる。影響を受けるのはReact 19.0、19.1.0、19.1.1、19.2.0であり、修正版はそれぞれ19.0.1、19.1.2、19.2.1としてリリースされている。

Next.jsにおいては関連脆弱性CVE-2025-66478として追跡されており、App Routerを使用するNext.js 15.x および16.xが影響を受ける。デフォルト構成に対する攻撃成功率はほぼ100%とされ、単一のHTTPリクエストでRCEが成立する点が極めて危険である。公開からわずか20時間以内に実際の攻撃が観測されたことが、この脆弱性の深刻さを物語っている。

関連して、2025年12月11日にはCVE-2025-55183(ソースコード露出、CVSS 5.3)および2026年1月26日にはCVE-2026-23864(DoS、CVSS 7.5)も公開されており、RSCのセキュリティ問題は単発ではなく構造的なものである可能性が指摘されている。

第二波攻撃の観測データ

GreyNoiseの脅威インテリジェンスによれば、2026年1月26日から2月2日までの1週間で、1,083のユニークIPアドレスからReact2Shell攻撃が観測された。総攻撃試行回数は約1,419,718回に達し、そのうち56%がわずか2つのIPアドレスに集中していた。具体的には、193.142.147.209が488,342セッション(全体の34%)、87.121.84.24が311,484セッション(同22%)を生成している。

攻撃の地理的分布と攻撃元インフラの多様性は、この脆弱性の悪用が単一の攻撃グループに限定されていないことを示唆している。初期の攻撃が中国系APTグループ(Earth Lamia、Jackpot Panda、UNC5174)によるものであったのに対し、第二波ではボットネットオペレーターや金銭目的のサイバー犯罪者にまで攻撃者層が拡大している。

特筆すべきは、2026年1月にはRondoDoxボットネットがReact2Shell脆弱性を自動化された攻撃インフラに組み込んだことが報告されている点である。これにより、技術的能力の低い攻撃者でもパッチ未適用のRSCアプリケーションを大規模に標的とすることが可能になった。

ペイロード分析:XMRigとVShell RAT

観測された攻撃ペイロードは主に3つのカテゴリに分類される。第一にXMRigクリプトマイナー、第二にVShell RAT、第三にリバースシェルである。

XMRigクリプトマイナーは、攻撃元IP 87.121.84.24から展開されたペイロードにおいて顕著に確認されている。攻撃者はRCEを獲得した後、ステージングサーバーからXMRigバイナリをダウンロードし、侵害されたサーバーのCPUリソースを利用してMonero(XMR)の採掘を行う。クリプトマイニングは持続的な収益を生むため、攻撃者にとって低リスク・高リターンの収益化手段となっている。

VShell RATは中国で開発されたリモートアクセス型トロイの木馬であり、ファイルレスマルウェアとしての特性を持つ。Linuxのmemfd_createシステムコールを利用してメモリ上で直接実行されるため、ディスク上にアーティファクトを残さない。HTTPS上のWebSocketプロトコルをC2通信に使用し、カーネルワーカースレッド[kworker/0:2]に偽装することで検知を回避する。React2Shell攻撃においては、SNOWLIGHTドロッパーを介して展開されるチェーンが確認されている。

リバースシェルは、ポート12323を使用するパターンが複数の攻撃元から観測されている。攻撃者は侵害後に永続的なアクセスを確保し、横展開のための偵察活動やクレデンシャル窃取を行う。

開発サーバーの誤設定がもたらすリスク

React2Shell攻撃と並行して注目すべきは、開発インフラの誤設定が本番環境に準じるリスクをもたらしている実態である。2025年12月に公開されたMetro4Shell(CVE-2025-11953、CVSS 9.8)は、React NativeのCLIパッケージに含まれるMetro開発サーバーにおけるRCE脆弱性であり、ネットワーク上に露出した開発サーバーが攻撃対象となった。

「開発インフラは、到達可能になった瞬間に、意図に関係なく本番インフラとなる」──この原則は、CVE-2025-55182の文脈でも当てはまる。ホットリロードエンドポイントの露出、デバッグ用エンドポイントの本番残留、開発環境と本番環境のネットワーク分離の不備は、いずれもRCE脆弱性の攻撃面を拡大する要因となる。

GreyNoiseの観測では、攻撃ペイロードに探索的なものではなく運用段階のものが多く含まれていた。Base64エンコードされたPowerShellスクリプトによるMicrosoft Defenderの無効化、悪意あるNGINX設定によるWebトラフィックのハイジャック、追加ペイロードのダウンロードと実行など、攻撃者が侵害後の運用を前提とした攻撃チェーンを構築していることが明らかになっている。

防御策と推奨事項

React2Shell攻撃に対する防御は、パッチ適用を最優先としつつ、多層的なアプローチが求められる。

即時対応として、React 19.0.1、19.1.2、19.2.1以降へのアップデート、およびNext.jsの修正バージョンへのアップデートを実施すべきである。パッチ適用が直ちに困難な場合は、WAF(Web Application Firewall)でFlightプロトコルの異常なペイロードを検知・遮断するルールを導入することが推奨される。

インフラ面では、開発サーバーがインターネットに露出していないことの確認、ネットワークセグメンテーションの強化、不要なデバッグエンドポイントの無効化が必要である。特にApp Routerを使用するNext.jsアプリケーションでは、サーバーコンポーネントのエンドポイントに対するアクセス制御を精査すべきである。

検知と監視の観点では、memfd_createシステムコールの異常な使用、[kworker]プロセスの不審な振る舞い、ポート12323へのアウトバウンド接続、CPUリソースの異常な消費(クリプトマイニングの兆候)を監視項目に含めることが有効である。SLCyberが公開した高精度な検知メカニズムは、RSC/Next.jsのRCE検知に特化したルールセットを提供しており、参照に値する。

FAQ

CVE-2025-55182はどのようなアプリケーションに影響するか?

React Server Components(Flight プロトコル)を使用するすべてのアプリケーションが対象となる。React 19.x系およびApp Routerを有効にしたNext.js 15.x/16.xが該当し、修正バージョンへのアップデートが必要である。

XMRigクリプトマイナーに感染しているかどうかを確認する方法は?

サーバーのCPU使用率が恒常的に高い場合はクリプトマイニングの兆候である可能性がある。tophtopでCPU消費の高いプロセスを確認し、xmrigや不審なバイナリ名がないか調査する。ネットワーク監視でマイニングプールへの通信も確認すべきである。

VShell RATはなぜ検知が難しいのか?

VShell RATはmemfd_createによるメモリ上実行、カーネルスレッドへの偽装、HTTPS/WebSocketによる暗号化通信を組み合わせたファイルレスマルウェアであるため、従来のファイルベースのアンチウイルスでは検知が困難である。

開発サーバーをReact2Shell攻撃から守るには?

開発サーバーをインターネットに公開しないことが最も重要である。VPNやファイアウォールで開発環境を隔離し、本番環境と同一ネットワーク上に配置しないこと。またReactとNext.jsを修正バージョンにアップデートすることで根本対策となる。

参考文献