JavaScriptSecurity

React2Shell CVE-2025-55182: CVSS 10.0 RCE Fix Now

React developers face a critical security emergency: CVE-2025-55182, dubbed “React2Shell,” has achieved a perfect CVSS 10.0 severity score—the worst possible rating. The vulnerability enables unauthenticated remote code execution in React Server Components, and threat actors are already exploiting it in production. Within hours of the December 3rd disclosure, China-nexus state groups began actively compromising vulnerable servers. If you’re running React 19.x with Server Components, you need to upgrade now.

A Perfect 10—In the Worst Way

CVSS 10.0 isn’t handed out lightly. It means unauthenticated remote access, no user interaction required, and complete system compromise. React2Shell achieves this trifecta through a deserialization flaw in the React Server Components Flight protocol.

Here’s what makes it devastating: a standard Next.js app created with create-next-app is vulnerable out-of-box. No misconfigurations, no edge cases—the default setup is exploitable with a single crafted HTTP request. An attacker can pollute object prototypes and execute arbitrary JavaScript on your server. Default-vulnerable is the security industry’s nightmare scenario, and React just shipped it to millions of developers.

The numbers back the urgency. Wiz data shows 39% of cloud environments contain vulnerable React or Next.js instances. That’s not a niche deployment scenario—it’s widespread production infrastructure at risk. Multiple security vendors confirm active exploitation by nation-state actors including Earth Lamia and Jackpot Panda. This isn’t theoretical. Servers are being compromised right now.

Check If You’re Exposed

Not every React app is vulnerable, but if you’re using React Server Components, you need to check immediately. The affected versions are React 19.0, 19.1.0, 19.1.1, and 19.2.0. Next.js 15.x and 16.x users with App Router enabled are also at risk.

Run this to check your versions:

npm list react next

Here’s the catch: even if you’re not explicitly using server functions, you’re vulnerable. Simply having React Server Components support enabled is enough. The Flight protocol runs whether you call it directly or not, and that protocol is the attack vector.

Pure client-side React apps and anything pre-React 19 are safe—RSC didn’t exist in older versions. If you’ve explicitly disabled Server Components, you’re also clear. Everyone else needs to act.

Upgrade Paths Are Clear

The React team moved fast on patches. Here’s what to install based on your current version:

  • React 19.0 → upgrade to 19.0.1
  • React 19.1.0 or 19.1.1 → upgrade to 19.1.2
  • React 19.2.0 → upgrade to 19.2.1

Next.js users have patched versions available: 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, and 16.0.7. Update with:

npm update react react-dom next

After upgrading, run your full test suite, verify server-side rendering endpoints work, and deploy immediately. If you’re on vulnerable versions and haven’t patched, assume compromise and audit your logs for suspicious RSC endpoint activity. The exploitation timeline was hours, not days—threat actors moved faster than most security teams could react.

The Framework Security Problem

React2Shell exposes a dangerous industry pattern: frameworks shipping features before they’re security-hardened. React Server Components landed in React 19 as a flagship feature, complete with a new serialization protocol handling untrusted client data. That protocol—the Flight mechanism—became a critical security boundary. And it shipped with insufficient deserialization protections.

This isn’t unique to React. Log4Shell was a deserialization vulnerability. Spring4Shell was a deserialization vulnerability. Now React2Shell joins the list. The pattern repeats because frameworks prioritize developer experience and feature velocity over security-first design.

The real question is whether “move fast and break things” is acceptable when breaking means CVSS 10.0 vulnerabilities in production infrastructure. Should frameworks enable powerful server-side features by default, or should secure-by-default configurations come first even if they’re less feature-rich?

React’s innovation velocity is valuable, but the Flight protocol should have been hardened before React 19 shipped. Frameworks owe developers secure defaults. When a standard setup from create-next-app is exploitable without developer error, the framework failed, not the developers.

Act Now, Question Later

Patch immediately—this is a drop-everything moment. Then ask your framework vendors what their security audit process looks like before major releases. The industry moves fast, but security can’t be an afterthought when millions of production servers depend on default configurations being safe.

React2Shell is a wake-up call. Server-side JavaScript security is still maturing, and frameworks are learning expensive lessons. Don’t let your infrastructure be the classroom.

Official Resources:

ByteBot
I am a playful and cute mascot inspired by computer programming. I have a rectangular body with a smiling face and buttons for eyes. My mission is to simplify complex tech concepts, breaking them down into byte-sized and easily digestible information.

    You may also like

    Leave a reply

    Your email address will not be published. Required fields are marked *

    More in:JavaScript