If you’re involved in web development, SaaS, cloud platforms, or any modern internet-facing system-pause right now. What has just emerged could be one of the most significant remote code execution (RCE) vulnerabilities ever discovered in a major frontend framework, and it’s probably not one you saw coming.
React2Shell
- On 3 December 2025, the React core team-along with maintainers of frameworks built on top of it-disclosed a critical security flaw affecting React Server Components (RSC). The issue was assigned CVE-2025-55182 for React and was initially tracked as CVE-2025-66478 for Next.js, though the latter was later marked as a duplicate since both refer to the same underlying vulnerability.
- The root cause lies in unsafe deserialization within React’s built-in Flight protocol, which handles communication between server and client components. In practical terms, a malicious actor can craft a specific HTTP request that results in arbitrary code execution on the server-without requiring authentication.
- The vulnerability carries a CVSS score of 10.0, the highest possible rating, indicating a worst-case scenario for remote code execution flaws.

Who’s Affected – And Yes, It’s Widespread
You’re likely at risk if your technology stack includes:
- React 19.x with Server Components enabled, or
- Next.js 15.x or 16.x (as well as certain 14.x canary releases) using the App Router, which relies on RSC internally.
Even teams that believe they aren’t using “server functions” may still be affected. This vulnerability sits at a core architectural layer of the framework, not within an optional feature or third-party plugin.
Security research indicates that as many as 39% of scanned cloud environments are running vulnerable React or Next.js deployments. That translates to nearly two out of every five publicly exposed cloud-based websites or APIs facing potential risk.
Bottom line: if you operate modern JavaScript applications built on server-side React or Next.js, you should assume exposure until proven otherwise.
Why This Isn’t Just Another JavaScript Bug – It’s a “Master Key”
This is not a typical vulnerability. Several factors combine to make it exceptionally severe:
Unauthenticated RCE: An attacker requires no credentials, tokens, or active session to exploit it.
Vulnerable by default: Even standard, out-of-the-box applications (such as those created with create-next-app) are exposed.
Massive adoption: React and Next.js rank among the most widely used web frameworks globally, dramatically amplifying the potential impact.
Rapid exploitation: Major cloud-provider honeypots recorded scanning and exploitation attempts within hours of the public disclosure.
For many organizations, this effectively amounts to a zero-click, critical remote code execution issue-no phishing, no user interaction, and no vulnerability chaining required. A single crafted HTTP request is enough.
What to Do Immediately – Triaging React2Shell
If you’re responsible for maintaining web applications, take the following steps without delay:
- Inventory your technology stack
Audit your codebase for the presence of React 19.x, React Server Components, or Next.js 15/16 using the App Router (including canary 14.x builds). - Patch without delay
Security fixes are already available. Upgrade to patched React versions (19.0.1, 19.1.2, or 19.2.1) and Next.js releases (15.0.5 or later, 16.0.7 or later). - Deploy a WAF or virtual patch as a temporary safeguard
If immediate upgrades aren’t feasible, implement Web Application Firewall rules or other mitigations. Several providers-such as Fastly and major cloud WAF services-have already released virtual patches to block known exploit signatures. - Audit server-side logic and serialization paths
Review custom React Server Component endpoints and ensure that untrusted input cannot reach server-side execution or deserialization flows. - Scan your environment
Use automated security tools (SCA, static analysis, or vulnerability scanners). Many vendors have released new detection plugins specifically targeting React2Shell. - Monitor logs and traffic closely
Look for anomalous HTTP requests or suspicious payloads. Early detection combined with rapid patching significantly reduces risk.
What This Means for the OffSec and Red-Teaming Community
React2Shell highlights a fundamental shift in modern offensive security: the primary attack surface is no longer just memory corruption or infrastructure weaknesses, but high-level application logic.
For red-teamers and penetration testers operating in 2025–2026, low-level exploitation skills still matter-but the highest-impact and most repeatable vulnerabilities are increasingly found in:
- Unsafe deserialization within high-level frameworks
- Abuse of server-side application logic
- Cloud service misconfigurations
- Identity, trust, and authorization failures
- Protocol and framework-level design flaws
React2Shell represents a “master-key” style RCE, and it’s unlikely to be an isolated case. Similar weaknesses are probably lurking in other widely adopted, highly abstracted frameworks. As modern systems continue to rely on composable, cloud-native services and complex web frameworks, the most accessible and dangerous flaws are often logic and deserialization issues rather than classic low-level bugs.
For offensive security practitioners: spend less time focusing solely on shellcode and more on serialization mechanisms, framework internals, and protocol boundary weaknesses.
Final Thoughts – React2Shell as a Defining Moment
CVE-2025-55182 / CVE-2025-66478 (React2Shell) is more than just another entry in the CVE database-it’s a clear signal to the entire web development ecosystem.
If you build or maintain web applications, treat this like an emergency drill: patch immediately, audit thoroughly, and deploy mitigations.
If your role involves attacking or auditing web applications, take this as a reminder that the most critical vulnerabilities are increasingly found in high-level frameworks-not only in compiled binaries or low-level code.
If you’re responsible for defending infrastructure, consider this a wake-up call: keeping dependencies up to date is a core security control, not a secondary task.
After React2Shell, the real question is no longer whether another large-scale vulnerability will emerge-but when.
Stay alert. Stay informed. And most importantly-stay ahead.
