React2Shellを悪用する複数の攻撃アクターによる侵害事例
2025年12月3日(現地時間)、React Server Components(RSC)における認証不要のリモートコード実行の脆弱性(CVE-2025-55182)が公開されました。JPCERT/CCでは、この攻撃の被害報告を複数受けています。その中で、本脆弱性を短期間のうちに複数の攻撃アクターに悪用され、Webサイト改ざんなど複数の被害が同時に発生した事案がありました。今回は容易に悪用可能な脆弱性が公表された場合に、攻撃者がいかに迅速かつ無差別に攻撃を行っているかを攻撃のタイムラインや使用されたマルウェアの紹介とあわせて解説します。このような深刻な脆弱性が公開された場合に、どのくらいのスピード感で対策を進めなければならないかという参考になればと思います。
攻撃のタイムライン
表1は今回紹介する事案で判明した攻撃のタイムラインです。(被害組織の特定につながる恐れがあるため、以降の一部のURLパスや識別子などはマスクしています)
日時(JST) |
内容 |
|---|---|
| 2025-12-05 15:52 | コインマイナー(sex.sh、xmrig)の設置 |
| 2025-12-06 07:28 | コインマイナー(sex.sh.1)の設置 |
| 2025-12-06 09:53、10:09、11:00 | HISONIC(javax)バックドアの設置 |
| 2025-12-06 15:00 | Global Socket(npm-cli)をcron経由で毎時実行 |
| 2025-12-06 19:31 | SNOWLIGHTのダウンローダー(javas)、CrossC2(rsyslo)の設置 |
| 2025-12-07 12:24 | コインマイナー(xmrig)の設置 |
| 2025-12-07 16:51 | /tmp/kernal(kernelに偽装)を毎分実行するようにcron設定を書き替え |
| 2025-12-07 19:46 | サイト改ざん(警告メッセージの表示) |
| 2025-12-07 22:15 | サービス利用者からの報告によって発覚 |
React2Shellの脆弱性が2025年12月3日に公開されてからわずか2日後にはコインマイナーの設置を狙った攻撃が行われており、それを皮切りに複数の攻撃者によってRATやバックドアなどのさまざまなマルウェアが設置・実行され、一つのサーバー上に複数の攻撃者が侵入している状況が見られました。
また、上記のタイムライン以外にも、2025年12月5日~7日の期間でWebサーバーのアクセスログ上に100を超えるIPアドレスからReact2Shellの脆弱性を狙ったと思われる不審なHTTP POST通信(アクセスログにはリクエストヘッダーやPOSTデータは記録されていなかったため、UserAgentやリクエストパス、レスポンスサイズなどをもとに推定)が観測されており、実際にはさらに多くの攻撃者から侵害を受けていた可能性もあります。
発端となったWebサイト改ざん
今回の事案は、攻撃者によってWebサイトが改ざんされていることに気づいたWebサイト利用者からの報告によって侵害が発覚しました。改ざんされたWebサイトでは、4カ国語で「CVE-2025-55182の脆弱性があるため、早急にパッチの適用が必要」といった警告が表示されていました。図1は改ざんされたWebページの例です。

上記の改ざんは国内外問わず複数のWebサイトで確認されており、いずれも早急な脆弱性対処を促す文面が記載されていました。図2は検索エンジンで表示された改ざんサイトの例です。

設置されたマルウェア
今回の事案ではさまざまなマルウェアやオープンソースツールが悪用されていました。表2は設置されていたマルウェアの一覧です。(設定ファイルなどは除く)
項番 |
ファイル名 |
内容 |
|---|---|---|
| 1 | sex.sh | xmrigのダウンロード用bashスクリプト |
| 2 | sex.sh.1 | xmrigのダウンロード用bashスクリプト |
| 3 | miner.sh | xmrigの起動用bashスクリプト |
| 4 | xmrig | xmrigコインマイナー |
| 5 | javax | HISONICバックドア |
| 6 | javas | SNOWLIGHTのダウンロード用bashスクリプト |
| 7 | rsyslo | CrossC2 RAT |
| 8 | npm-cli | Global Socket ツール |
| 9 | kernal | 削除されていたため詳細不明 |
興味深い点として、一般的な金銭目的のコインマイナーの他に、UNC5174が利用すると言われているSNOWLIGHT[1]のダウンローダーや、UNC6603が利用すると言われているGolangで作成されたHISONICバックドア[2]、またSNOWLIGHTと同時刻に設置されていたLinux版のCobalt Strike実装であるCrossC2 RAT[3]などが確認されており、攻撃者の明確な目的は不明ですが、将来の攻撃基盤として悪用しようとしていた可能性も考えられます。
また、他のセキュリティベンダーの事例ではあまり見られないものとして、オープンソースツールであるGlobal Socket(gsocket)[4]の悪用も確認されました。
本ツールは、NAT配下やファイアウォールなど直接到達できない2台の端末同士でも、中継ネットワークであるGSRN(Global Socket Relay Network)を介して接続を行えるようにするためのツールです。特徴として、同一の事前共有鍵を持っている端末間で通信できる仕組みになっており、通信はエンドツーエンドで暗号化され、GSRNは暗号化されたトラフィックだけを中継します。
今回、攻撃者は実行時に以下のような環境変数とオプションを指定しており、npm-cli.datを秘密ファイルとして使用し、主にDNS通信で利用される53番ポートで外部からbash経由で操作できるようにバックドアとして悪用していました。
GS_PORT='53' SHELL=/bin/bash TERM=xterm-256color GS_ARGS="-k /home/***/.config/dbus/npm-cli.dat -liqD"
おわりに
今回のReact2Shellの脆弱性は公表されてから攻撃ツールの中に迅速に組み込まれ、わずか数日で多くのアクターによって悪用されている状況が観測されました。攻撃者によって脆弱性を悪用される速度は非常に早く、重大な脆弱性が公表された場合には早急な影響範囲の確認とパッチ適用などの対処が重要です。
また、悪用が確認されている脆弱性の対応を行う際にはパッチ適用とあわせて侵害有無の確認が必要です。
今回の事案のように目に見えるサイト改ざん以外により深刻な侵害を受けている可能性も考えられるため、他に影響を受けている箇所がないかを慎重に調査いただくことを推奨します。
なお、今回紹介したマルウェアの通信先などについては、Appendixに記載していますのでご確認ください。
インシデントレスポンスグループ 喜野孝太、矢野雄紀
参考情報
[1] UNC5174のWindows版マルウェアSNOWLIGHT
https://sect.iij.ad.jp/blog/2025/11/unc5174-windows-snowlight-in-2025/
[2] Multiple Threat Actors Exploit React2Shell (CVE-2025-55182)
https://cloud.google.com/blog/topics/threat-intelligence/threat-actors-exploit-react2shell-cve-2025-55182
[3] Cobalt Strike Beaconの機能をクロスプラットフォームへと拡張するツール「CrossC2」を使った攻撃
https://blogs.jpcert.or.jp/ja/2025/08/crossc2.html
[4] Global Socket
https://github.com/hackerschoice/gsocket
Appendix A:通信先
項番 |
通信先 |
用途 |
|---|---|---|
| 1 | 45.143.131[.]123:59999 | SNOWLIGHTのダウンロード元/C2サーバー |
| 2 | 154.89.152[.]240:443 | CrossC2のC2サーバー |
Appendix B:マルウェアのハッシュ値
項番 |
ハッシュ値(SHA-256) |
ファイル名 |
|---|---|---|
| 1 | 5bae25736a09de5f4a0f9761d2b7bfa81ca8dba39de2a724473c9d021a65daa9 | sex.sh |
| 2 | ba43e447e63611d365300bf2e8e43ccb02ea112778d0d555ef9a9ccf6169808b | sex.sh |
| 3 | ac3e12fa0aa4d6e4eed322e81ecf708a8c9bea29247ae6b26cc39d3b3a6c2fb8 | miner.sh |
| 4 | a536d755313ce550a510137211eca6171f636fb316026e9df8523c496c8fcd12 | xmrig |
| 5 | 0c748b9e8bc6b5b4fe989df67655f3301d28ef81617b9cbe8e0f6a19d4f9b657 | xmrig |
| 6 | 1a1edbea47162b1aa844252fcd4fb97f2a67faec1993e7819efc6a04b7c15552 | javax |
| 7 | 0d07a974993221305ca7af139b73d9de1dcd992f553215e4f041e830a2d82729 | javas |
| 8 | 5baa52387daedea5e3e00adf96ecacb4a2cdc98100664f29ac86e8e4a423baaf | 54ad0ee3tcp |
| 9 | c1a9cfc62626118bd9f54e401fd52ecd2d766a5e8a69dbc7db909ea5c987fcc0 | 54ad0ee3tcp |
| 10 | 4a74676bd00250d9b905b95c75c067369e3911cdf3141f947de517f58fc9f85c | rsyslo |
| 11 | cb5f62bf7b591e69bd38e6bf8e40e8d307d154b2935703422d44f02e403d2e78 | npm-cli |