Threats & Vulnerabilities

React2Shell (CVE-2025-55182): The React and Next.js Flaw Explained

By NextGarrison Security TeamPublished 7 min read

React2Shell let anyone take over a server running React Server Components with a single web request, and attacks have not stopped. Here is what was affected, which versions are safe today and how to check your apps.

In plain English

  • A critical flaw in React, a popular web toolkit, let attackers take over servers without a password.
  • Web apps built with Next.js or similar tools are at risk until updated to a safe version.
  • Ask your developers to confirm every app runs a current, fixed version and was redeployed.
  • If an app was online and not updated since early December 2025, change its passwords and keys.

At a glance

CVE
CVE-2025-55182 (CVE-2025-66478 was a duplicate for Next.js)
Severity
CVSS 10.0, unauthenticated remote code execution
Disclosed
3 December 2025
Safe React versions today
19.0.4, 19.1.5, 19.2.4 or later

What React2Shell is

React is a widely used toolkit for building websites and web apps. React Server Components are the part of it that runs on the server. React2Shell is a critical flaw in that part, made public by the React team on 3 December 2025.

In plain terms, React trusted data it should have checked. It decoded data sent to Server Function endpoints in an unsafe way (an insecure deserialization in the Flight protocol). So an attacker with no login could send one crafted web request and have React run their code on the server. This is called remote code execution (RCE). It is rated 10.0 on CVSS, a 0 to 10 severity score, which is the maximum.

It mattered so much because React Server Components are built into popular frameworks, above all Next.js with the App Router.

What was affected

Your developers can use this table to check which apps need work. It lists the affected versions and the first fixed ones.

ComponentAffectedFirst fix for the RCE
react-server-dom-webpack, -parcel, -turbopack19.0, 19.1.0, 19.1.1, 19.2.019.0.1, 19.1.2, 19.2.1
Next.js (App Router)15.x, 16.x, 14.3.0-canary.77 and later15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7
Other RSC frameworksreact-router, waku, @parcel/rsc, @vitejs/plugin-rsc, rwsdkUpdate to versions using fixed React packages

Next.js 13.x, 14.x stable, the Pages Router and the Edge Runtime were not affected. One important catch: apps can be at risk even if they do not use Server Functions themselves. Google's threat intelligence team noted that just having the flawed packages installed is often enough.

The follow-up CVEs: patch again

A patch is the vendor's fix for a flaw. After the first patch, the React team found more issues in React Server Components. These are less severe: they can crash a server or expose its code. If you patched in early December 2025 and stopped there, you are still exposed to these. Each has its own CVE (the public ID number for a security flaw):

CVETypeCVSS
CVE-2025-55183Source code exposure5.3
CVE-2025-55184Denial of service7.5
CVE-2025-67779Denial of service (incomplete fix for CVE-2025-55184)7.5
CVE-2026-23864Denial of service (January 2026)7.5
The current safe React Server Components versions are 19.0.4, 19.1.5 and 19.2.4 or later. Versions 19.0.3, 19.1.4 and 19.2.3 are still open to the denial-of-service issues (attacks that crash or overload a server). For Next.js, use the latest patch release of your major version.

How it has been exploited

Attackers moved within hours, and the attacks carried on well into 2026.

  • Within hours of the news, Amazon saw China-linked groups probing and breaking into exposed servers.
  • 5 December 2025: CISA, the US government's cyber defense agency, added it to its Known Exploited Vulnerabilities (KEV) list of flaws used in real attacks. Crypto mining attacks started the same day. CISA later moved the federal patch deadline forward to 12 December.
  • December 2025: Google tracked several state-linked groups installing backdoors (hidden ways back in). Palo Alto Networks reported dozens of organizations breached. Attackers used tools such as Cobalt Strike and tried to steal AWS credentials.
  • 2026: attacks continued. In April, Cisco Talos reported an automated campaign that breached 766 Next.js hosts in 24 hours. It stole API keys (passwords that let apps talk to other services), SSH keys, cloud credentials and Kubernetes tokens.

Many "proof of concept" exploits shared online were fake. Some carried malware aimed at researchers, so be careful what you download.

How to check and fix your apps

These steps are for your developers. In short: find the apps, update them, change any secrets that may have leaked, and check for break-ins.

  1. Find every app using React Server Components: check package.json and lock files for next, react-server-dom-*, react-router and other RSC frameworks. Include internal tools and side projects.
  2. Upgrade React Server Components packages to 19.0.4, 19.1.5, 19.2.4 or later (the fixed release for your branch). Upgrade Next.js to the latest patch of your major version. Redeploy, do not just commit.
  3. Rotate secrets (environment variables, API keys, database passwords and cloud credentials) if an affected app was online and unpatched at any point since early December 2025, as Vercel advised. Attacks continued into 2026, so a later patch date does not rule out theft.
  4. Look for signs of a break-in: unexpected programs on app servers (crypto miners, shells), new files, connections out to unknown hosts, and unusual cloud activity using the app's credentials.
  5. Add dependency scanning to your build pipeline (CI) so the next critical framework flaw is caught on the day it is published. See SAST vs DAST and our vulnerability management guide.

The lesson for teams using modern frameworks

Frameworks now run a lot of code on the server for you. So a flaw deep inside one can expose every app built on it. Track framework security notices the way you track operating system updates. Keep secrets out of reach of web processes where you can, and test your apps regularly. Our penetration testing services cover Next.js and React applications, APIs and the cloud behind them.

Also see PHP2Shell, the PHP remote code execution flaws exploited in October 2026.

Sources

#React#Next.js#RCE#CVE

Need a hand with this?

Talk to a senior consultant. We reply within one business day with clear next steps and a scoped quote.

Written by

NextGarrison Security Team

Penetration testers, SOC analysts and compliance consultants

Our consultants test applications and networks, run 24/7 security monitoring and prepare companies for SOC 2, ISO 27001 and PCI DSS assessments. We write about what we see in real engagements, in plain English.

Frequently Asked Questions

Is Next.js still vulnerable to React2Shell?

Not if you run a current patch release. Next.js 15.x and 16.x App Router apps were affected until fixed versions shipped in December 2025. Later releases also fix the follow-up denial-of-service and source code exposure issues.

What is CVE-2025-66478?

It was the ID first issued for the Next.js side of React2Shell. It was rejected as a duplicate of CVE-2025-55182, so track and report the issue under CVE-2025-55182.

Am I affected if I only use React in the browser?

No. React2Shell is in React Server Components, which run on the server. Plain React apps that run only in the browser were not affected.

Keep reading