2025年12月、複数の脅威アクターがReact2Shellのリモートコード実行(RCE)脆弱性(CVE‑2025‑55182)を武器化し、インターネットに公開されたReact Server Componentsを侵害して、IT環境の深部へと横展開し始めました。
React2Shellは、React Server Componentsにおけるクライアント–サーバー間通信で使用されるFlightプロトコルの重大な欠陥です。
この問題は安全でないデシリアライズに起因し、サーバーが適切な検証なしにクライアントデータを信頼して処理してしまうことで、攻撃者がシリアライズされたオブジェクトを注入し、特定の条件下で任意のコード実行につながります。
脆弱なホストが特定されると、攻撃者はコンテナ内やアプリケーション環境内でシステムコマンドを実行でき、単純な1行のシェルチェーンを用いて、リモートサーバーからBashスクリプトやELFペイロードを取得します。
そこから永続化を確立し、追加のマルウェアを展開し、暗号資産マイニングでアクセスを収益化するか、長期的なスパイ活動のための侵入口として利用します。
ロシア企業に対するキャンペーンは、攻撃者がReact2Shellの悪用をいかに迅速に産業化したかを示しています。
あるクラスターでは、脆弱性を悪用した後、脅威アクターが/tmpからwgetとcurlを使用して「bot」というELFバイナリを取得・実行しました。これは後に、Rustで書かれ、当初はTOTOLINKデバイスに焦点を当てていたRustoBotボットネットであると特定されました。
RustoBotは複数のC2ドメインを解決し、それらはすべて単一のIPを指していました。また、UDP、TCP、raw IPフラッドによるDDoS攻撃をサポートし、ターゲット、継続時間、パケットサイズを設定可能である一方、二次ペイロードとしてXMRigマイナーも組み込んでいました。
同じアクセスはその後、Base64でエンコードされたコマンドの実行にも使われ、apaches.shインストーラーを取得しました。これはXMRigを展開し、systemdサービスとcronジョブを設定し、権限に応じて/usr/local/sbinまたは/tmpにマイナーファイルを配置しました。
React2Shellを介して侵害された他のホストには、連鎖したBashスクリプトを通じてKaijiボットネットとSliver C2インプラントが配布されました。
Kaijiは広範な永続化を追加し、ls、ps、netstatなどの一般的なユーティリティをトロイの木馬化したラッパーに置き換え、システムディレクトリ全体にわたる暗号化ファイルで設定を管理し、再びXMRigを展開しました。
Sliverインプラントは権限を考慮した形でインストールされ、systemdで管理される不変属性付きの/usr/bin/sshd-agentとして、またはcrontabとシェルプロファイル経由で起動される隠しユーザーレベルのバイナリとして配置された後、ログとシェル履歴を消去しました。
ロシア以外では、React2Shellを使用する攻撃者は、よりスパイ活動に重点を置いたツールキットと手口を示しました。
別のクラスターは、攻撃者が管理するサーバーからMeshエージェントをダウンロードし、ハードコードされたMeshCentralインスタンスに登録することでTactical RMMを悪用し、正規のリモート管理フレームワークを事実上、秘匿アクセスチャネルへと変えていました。
別のBashローダーsltは、GoベースのVShellバックドア向けにアーキテクチャ別のローダーを取得しました。VShellはTCP経由で暗号化されたペイロードを取得し、XORキーで復号して、kworkerを装ったインメモリのファイルディスクリプタから実行しました。
最も高度な活動には、攻撃者インフラからダウンロードされたNode.jsバイナリを介して起動されるEtherRAT JavaScriptマルウェアが含まれていました。
Base64デコードされたスクリプトの連鎖により、AES‑256‑CBCで保護されたJSペイロードが復号され、systemd、XDGの自動起動エントリ、crontab、シェル初期化ファイルを通じて永続化を確立するEtherRATモジュールになりました。
事例全体を通じて、攻撃者は軽量でスクリプト中心の戦術を用い、機動性を保ちつつ検知を困難にしていました。
一部の侵入では、偵察コマンドやファイル内容がDNSトンネリングで持ち出され、コマンド出力を動的に生成したサブドメインに埋め込み、oastify管理下のドメインに対してnslookupで問い合わせることで流出していました。
別のケースでは、悪意あるスクリプトがnginxおよびApacheの設定を書き換え、元のファイルをバックアップしたうえで、すべてのHTTP/HTTPSトラフィックをxss[.]proのような外部ドメインへ強制的にリダイレクトし、同時にホストおよびWebサーバーの診断情報を収集してwebhookへ送信していました。
追加のスクリプトは攻撃者のSSH鍵をauthorized_keysに追加し、マイニング収益を守るために競合する高CPUプロセスを停止し、ファイルシステムと環境変数をスキャンして、クラウドプラットフォームや開発者ツールに紐づくインフラ資格情報、アクセストークン、シークレットを探索しました。
CVE‑2025‑55182は、React Server Componentsで使用されるreact-server-dom-*パッケージの複数バージョン(19.0、19.1.0、19.1.1、19.2.0を含む)に影響します。パッチは19.0.1、19.1.2、19.2.1で提供されており、組織には影響を受ける依存関係をすべてアップグレードし、ロックファイルに脆弱なバージョンが残らないようにすることが強く推奨されます。
React Server Componentsに依存するNext.jsプロジェクトも同様に、修正済みのReactパッケージを同梱するリリースへアップグレードし、本番環境で実験的なRSC機能を使用していないかを確認する必要があります。
侵害後活動の幅広さを踏まえると、防御側はパッチ適用だけで止めるべきではありません。特定のbashスクリプト名、systemdサービス、Webサーバー設定の書き換え、異常なDNSクエリ、および特定されたC2インフラへの外向き通信など、これらのキャンペーンに関連する指標をハンティングする必要があります。
翻訳元: https://cyberpress.org/react2shell-espionage-hits-it/