ハッカーがNext.jsアプリケーションの重大なReact2Shell脆弱性を悪用して、24時間以内に少なくとも766台のサーバーを侵害した自動化された認証情報窃盗キャンペーンを実行している。
この脅威活動は「UAT-10608」として追跡されており、NEXUS Listenerというカスタムフレームワークを利用して、盗まれた秘密を大規模に体系的に収集・整理している。
Cisco TalosはUAT-10608を大規模な自動認証情報収集キャンペーンと説明しており、CVE-2025-55182(React2Shellとして一般的に知られている)に脆弱なインターネット公開のNext.jsアプリケーションを標的にしている。
この認証前のリモートコード実行(RCE)脆弱性をスクリプト化された悪用後ツールと組み合わせることで、攻撃者は初期侵害後のさらなる手動操作を必要とせずに、認証情報、SSHキー、クラウドトークン、環境秘密を流出させている。
露出したNEXUS Listenerインスタンスからのテレメトリーは、複数の地域とクラウドプロバイダー全体で少なくとも766台のホストが侵害されたことを示しており、ツールは特定の業界ではなく幅広さに調整されている。
ターゲティングパターンは、Shodan、Censysなどのサービスを使用した大規模なインターネットスキャンと同様に、パブリックにアクセス可能なNext.jsデプロイメントを発見・検査するカスタムスキャナーと一貫している。
React2Shell悪用
React2Shell(CVE-2025-55182)はReact Server Components(RSC)内の認証前のリモートコード実行で、RSCの上に構築されたNext.jsを含むフレームワークにも影響する。CVSS 10.0の脆弱性である。
この脆弱性は、Server Functionエンドポイントに送信される攻撃者制御のデータの安全でないデシリアライゼーションから生じ、認証または適切な検証が行われる前にサーバー側のNode.jsプロセスで任意のコード実行が可能になる。
このキャンペーンでは、UAT-10608は最初に脆弱なインターネット公開アプリケーションを特定し、その後デシリアライゼーションバグをトリガーするために、細工されたシリアル化ペイロードをServer Functionエンドポイントに直接送信する。
悪用に成功すると、軽量なドロッパーが実行され、その後マルチフェーズのシェルスクリプトが有効な認証情報なしで取得・起動される。
侵害後、攻撃者は/tmp内のランダム化されたファイル名を持つnohupで実行されるシェルスクリプト(例:/bin/sh -c nohup sh /tmp/.eba9ee1e4.sh >/dev/null 2>&1)に依存して、背景で収集ロジックを永続化・実行する。
このスクリプトは複数のフェーズを移動し、それぞれが特定のデータソースに焦点を当てている:環境変数、JavaScriptランタイム設定、SSHキー、トークンパターン、シェル履歴、クラウドメタデータ、Kubernetesサービスアカウント、Dockerの環境、実行中のプロセス引数。

実行状態はmeta.jsonファイル経由で追跡され、各フェーズが完了した後、ツールはHTTP(通常はポート8080)上でC2にコールバックし、被害者ホスト名、現在のフェーズラベル、一意のIDをURLパラメーターとして渡す。
この設計により、オペレーターはNEXUS Listener GUIで進捗を監視し、個別のデータセットを特定のホストに関連付けることが容易になる。
NEXUS Listenerと窃盗データ
アップロードされると、収集されたすべてのファイルはバックエンドデータベースに保存され、NEXUS Listenerという名のパスワード保護されたウェブインターフェース経由でサーフェスされる。

このインスタンスからのデータは766ホストから10,120個のファイルが流出したことを示しており、約91.5%のシステムがデータベース認証情報を露出させ、78.2%が完全なSSH秘密鍵をリークしている。
少なくとも1つの観察されたデプロイメントでは、インターフェースが露出されたままになっており、研究者がアプリケーション内部の検査と、侵害されたホスト、収集された認証情報タイプ、アプリケーションアップタイムに関するライブ統計を検査することが可能になった。

ホストの約25.6%がAWS認証情報を含み、32%がシェルコマンド履歴を露出させ、11.4%が有効なStripe APIキーを保有し、8.6%がGitHubアクセストークンをリークしている。
「v3」というバージョンのラベルがされたインターフェースは、ホストごとの検索可能なアクセスを提供し、収集スクリプト内で使用される同じフェーズに分類されている。
露出データの広さは攻撃者に直接データベースアクセス、クラウド制御プレーン操作、支払い悪用、ソースコード盗難、潜在的なソフトウェアサプライチェーン攻撃に至るまでのすべてを与える。
特にSSH鍵の露出は、キーが環境全体で再利用されている場合、即座の認証情報ローテーションを上回る長期的な横展開パスを作成する可能性がある。
キャンペーン規模で集約されると、データセットは被害者のインフラの知能図として機能し、後続の侵入、ソーシャルエンジニアリング、または他の脅威アクターへのアクセス販売を簡素化する。
防御者は、すべてのReact Server ComponentsとNext.jsデプロイメント全体でReact2Shellに即座にパッチを当て、脆弱なバージョンがインターネットに露出していないことを確認する必要がある。
Cisco Talosおよび他のベンダーはさらに、チームがgetServerSidePropとgetStaticPropsの使用を監査し、厳密なNEXT_PUBLIC_環境変数規律を実施し、潜在的に露出した秘密をローテーションし、クラウドメタデータアクセスを強化するよう促している。
翻訳元: https://gbhackers.com/next-js-react2shell-vulnerability/