React2Shell exploited by multiple actors within 48 hours
Multiple threat actors exploited CVE-2025-55182 (React2Shell) within days of disclosure, compromising servers with coin miners, RATs, backdoors, and defacing websites globally.
Sourceblogs.jpcert.or.jp — open the original
What to check
- Applies to
- The 1 CVE named below. Whether you run an affected version is not assessed: check the versions the source lists.
- Exploitation
- CISA lists CVE-2025-55182 as exploited in the wild.
On December 3, 2025, a critical unauthenticated remote code execution vulnerability in React Server Components (CVE-2025-55182, dubbed React2Shell) was publicly disclosed. JPCERT/CC documented a case where multiple threat actors exploited this vulnerability against a single server within 48 hours of disclosure, installing coin miners by December 5. Over the following days, additional attackers deployed RATs, backdoors, and other malware, resulting in simultaneous compromise by multiple distinct threat actors. The compromise was initially detected through website defacement displaying multilingual warnings about the vulnerability. Analysis of web server logs revealed suspicious HTTP POST requests from over 100 IP addresses between December 5-7, suggesting even broader targeting than initially evident.
The attackers deployed diverse malware including SNOWLIGHT downloader (associated with UNC5174), HISONIC backdoor (linked to UNC6603), CrossC2 RAT (Linux Cobalt Strike), and coin miners. Notably, attackers abused Global Socket (gsocket), an open-source tool enabling NAT/firewall traversal via encrypted relay networks, as a covert backdoor operating over port 53. The attackers configured gsocket with custom environment variables to enable remote bash access while evading detection through DNS port usage.
This incident exemplifies the extreme speed at which threat actors incorporate newly disclosed critical vulnerabilities into their toolsets. The case demonstrates that organizations face not just initial exploitation but ongoing compromise by multiple adversaries, with visible indicators like website defacement potentially masking deeper, more sophisticated intrusions requiring comprehensive forensic investigation beyond simple patching.
Mentioned in this report
Detection guidance
Shell Spawned from Node.js/React Server Process (Possible React2Shell Web Shell)
A behavioural hunt for the technique in general, not a signature for the CVEs this report names.
Detects a Unix shell (sh/bash/dash) spawned directly from a Node.js/React server process, consistent with post-exploitation command execution via the React2Shell (CVE-2025-55182) RCE. Auto-generated starting point — validate and tune in your environment before deploying. IOC matches can false-positive on shared infrastructure and decay as adversary infrastructure rotates.
title: Shell Spawned from Node.js React Server Process
id: b8c54a85-144b-505b-aed8-c8f879c51566
status: experimental
description: Detects a Unix shell process being spawned from a Node.js or React Server
Components process, which is consistent with exploitation of the React2Shell (CVE-2025-55182)
vulnerability enabling remote code execution via a web shell or interactive command
injection.
references:
- https://attack.mitre.org/techniques/T1505/003/
logsource:
category: process_creation
product: linux
detection:
selection_parent:
ParentImage|endswith:
- /node
- /next-server
ParentCommandLine|contains:
- next-server
- react-server
- node
selection_child:
Image|endswith:
- /sh
- /bash
- /dash
- /ash
condition: selection_parent and selection_child
falsepositives:
- Legitimate build or deployment scripts that shell out from a Node.js process during
CI/CD pipelines
- Administrative wrapper scripts that launch a shell from a supervised Node process
level: high
tags:
- attack.t1505.003
- attack.t1190
- attack.execution
author: Vorant
Gsocket Backdoor Execution Configured for Port 53 Bash Access
A behavioural hunt for the technique in general, not a signature for the CVEs this report names.
Detects execution of the Global Socket (gsocket/gs-netcat) tool with arguments or environment variables configuring a DNS-port (53) relay for covert remote bash access, as observed in post-React2Shell compromise activity. Auto-generated starting point — validate and tune in your environment before deploying. IOC matches can false-positive on shared infrastructure and decay as adversary infrastructure rotates.
title: Gsocket Backdoor Execution Over DNS Port
id: d4c605fe-c1ea-519d-8dd2-0d4c8061872d
status: experimental
description: Detects execution of the gsocket / gs-netcat / gs-full-pipe binaries
with command-line arguments or environment variables indicating configuration of
a covert relay on port 53 to provide remote interactive bash access, bypassing NAT/firewall
restrictions. Observed abused as a backdoor following React2Shell (CVE-2025-55182)
exploitation.
references:
- https://attack.mitre.org/techniques/T1090/
logsource:
category: process_creation
product: linux
detection:
selection_tool:
Image|endswith:
- /gsocket
- /gs-netcat
- /gs-full-pipe
CommandLine|contains: gsocket
selection_config:
CommandLine|contains:
- GS_ARGS
- -p 53
- -d -p 53
- /bin/bash
condition: selection_tool or selection_config
falsepositives:
- Legitimate authorized use of Global Socket for remote administration or NAT traversal
by internal IT staff
- Developers using gsocket for debugging or CI/CD tunnel access
level: high
tags:
- attack.t1090
- attack.t1071.001
- attack.command-and-control
author: Vorant
Coin Miner Execution via Stratum Mining Pool Protocol
A behavioural hunt for the technique in general, not a signature for the CVEs this report names.
Detects process command lines referencing stratum mining pool protocol or common cryptomining binaries/arguments, indicative of resource hijacking following server compromise as seen in the React2Shell incident. Auto-generated starting point — validate and tune in your environment before deploying. IOC matches can false-positive on shared infrastructure and decay as adversary infrastructure rotates.
title: Coin Miner Execution via Stratum Protocol Reference
id: a6801fb7-6e43-55e8-9893-e40fe6885d47
status: experimental
description: Detects process executions with command lines referencing the stratum+tcp
mining pool protocol or common cryptocurrency miner binary names/flags, consistent
with coin miner deployment observed after React2Shell exploitation.
references:
- https://attack.mitre.org/techniques/T1496/
logsource:
category: process_creation
product: linux
detection:
selection:
CommandLine|contains:
- stratum+tcp
- stratum+ssl
- xmrig
- --donate-level
- -o pool.
condition: selection
falsepositives:
- Legitimate, authorized cryptocurrency mining software run intentionally by developers
or researchers on owned infrastructure
- Security testing tools that simulate miner command lines for detection validation
level: medium
tags:
- attack.t1496
- attack.impact
author: Vorant
Behavioural rules are generated from public reporting — validate in your environment before deploying.
Source reporting: https://blogs.jpcert.or.jp/en/2026/02/multiple-threat-actors-rapidly-exploit-react2shell-a-case-study-of-active-compromise.html
Free public brief. The indicators and the detections with Splunk SPL already written (plus Elastic and KQL where they apply) are in the app with a free account, no card. Slack alerts on the vendors you run come with the paid plans, and a new account gets three days of them.
What this brief leaves out
This page is the free tier: the write-up, the severity, the names. In the app the same report carries its extracted indicators, its detections (Splunk SPL already written, plus Elastic and Microsoft KQL where they apply), and live profiles of the CVEs, actors, and malware it names. The paid plans add the security research and news reporting the free tier leaves out.
It sits in a corpus of 16,566 reports from 147 sources, 722 of them written in the last seven days, and it grows through the day.
A new account starts with three days of all of it, no card, then keeps the government and CERT reporting free. Slack alerts are a paid-plan feature: name the vendors you run and Slack hears about the reports that touch them, not the rest of the week's. Nothing is charged unless you subscribe.
Create a free account What it costs