top of page

RondoDox Is Eating Your React Apps for Breakfast

  • Writer: Patrick Duggan
    Patrick Duggan
  • Jan 14
  • 3 min read


The Short Version


If you're running React 19 with Server Components, Next.js, React Router, RedwoodSDK, or Waku - stop reading and patch. Now.


CVE-2025-55182 (React2Shell) is a perfect 10.0 CVSS unauthenticated remote code execution vulnerability. The RondoDox botnet has been exploiting it since December 8, 2025. North Korean and Chinese APT groups are also in the game.


90,300 vulnerable instances remain exposed. 68,400 of them are in the United States.





What Is React2Shell?


React2Shell (CVE-2025-55182) is an RCE vulnerability in React Server Components. Disclosed December 3, 2025, it allows unauthenticated attackers to send specially crafted HTTP requests to Server Function endpoints and achieve code execution.


The root cause: React deserializes data from HTTP requests without proper safety checks. Classic.


  • React 19.0.0

  • React 19.1.0

  • React 19.1.1

  • React 19.2.0

  • Next.js

  • React Router

  • RedwoodSDK

  • Waku

If you're on React 18 or earlier, you're not affected. If you jumped to React 19 for the shiny new features - time to update again.





Enter RondoDox


RondoDox is a botnet that's been quietly building capability since March 2025. CloudSEK documented three distinct operational phases:



Phase

Timeline

Activity

1

March-April 2025

Reconnaissance, manual scanning

2

April-June 2025

Daily mass vulnerability probing

3

July-December 2025

Hourly automated deployment at scale


Five days after React2Shell was disclosed, RondoDox started scanning. Three days after that, they were deploying payloads.


That's an 8-day window from disclosure to active exploitation at scale. If your patch cycle is "monthly," you're already owned.





The Payloads


RondoDox drops three things on compromised systems:



Payload Path

Function

/nuts/x86

Mirai variant (DDoS botnet)

/nuts/poop

Cryptominer

/nuts/bolts

Bot loader + persistence


The /nuts/bolts payload is particularly nasty - it kills competing malware, establishes persistence via /etc/crontab, and phones home to report the new recruit.


You're not just compromised. You're recruited.





It's Not Just Script Kiddies


Here's where it gets interesting.


Per The Hacker News, North Korean and China-nexus APT groups have also been exploiting React2Shell for targeted intrusions. This isn't just financially motivated botnet operators - state actors want this vulnerability.


When DPRK threat actors and Chinese APTs are exploiting the same CVE as commodity botnets, you know you're looking at something significant. The vulnerability is too good to ignore regardless of your threat model.





Vulnerable Targets


RondoDox isn't picky. They're scanning and exploiting:


  • WordPress

  • Drupal

  • Struts2

  • Next.js (obviously)

  • Wavlink routers

  • TP-Link

  • Netgear

  • DLink

  • Asus routers

  • IP cameras

The IoT angle is significant. React2Shell affects server-side rendering, but many IoT device admin panels are built on web frameworks that may be vulnerable. And IoT devices don't get patched.





The Numbers


As of December 31, 2025, Shadowserver Foundation reported:



Country

Vulnerable Instances

United States

68,400

Germany

4,300

France

2,800

India

1,500

Total

~90,300


That's 90,000 sitting ducks. The US has 75% of them.





IOCs


  • CVE-2025-55182 (React2Shell) - CVSS 10.0

  • CVE-2023-1389 (N-day)

  • CVE-2025-24893 (XWiki)

Payload Paths: `` /nuts/x86 (Mirai variant) /nuts/poop (Cryptominer) /nuts/bolts (Bot loader) ``


  • /etc/crontab modification

  • Mimics gaming platform / VPN traffic to evade detection

  • Kills competing malware on infection

  • Health check beacon to C2




What To Do


  1. Patch React Server Components to latest version

  2. Patch Next.js to latest version

  3. Check for indicators of compromise (crontab, /nuts/ paths)

  4. Review web server logs for exploitation attempts

  • Deploy WAF rules blocking React2Shell exploitation patterns

  • Segment IoT devices into dedicated VLANs

  • Monitor for lateral movement from IoT to production

  • If your patch cycle is "monthly" for public-facing web apps, fix that

  • 8 days from disclosure to mass exploitation is the new normal




The Lesson


React 19 shipped in December 2024. React2Shell was disclosed December 2025. For a year, anyone running React 19 Server Components was sitting on a CVSS 10.0 time bomb.


The vulnerability existed because React deserializes untrusted input without validation. This is a known anti-pattern. It's in every secure coding guide. And it shipped in a framework used by millions of applications.


When commodity botnets and nation-state APTs are racing to exploit the same vulnerability, the window for "we'll patch it next sprint" has closed. You're either patched or you're compromised.


RondoDox doesn't care about your sprint planning.




The author runs DugganUSA's threat intelligence platform and has reported 102,171 malicious IPs to AbuseIPDB. He patches on disclosure day and recommends you do the same.






Her name is Renee Nicole Good.


Comments

Rated 0 out of 5 stars.
No ratings yet

Add a rating
bottom of page