A critical React vulnerability is out

If you’re using Next.js, you may already be exposed
A serious vulnerability in React 19, now widely referred to as React2Shell, has made its way into production systems worldwide. It affects the react-server-dom-* packages. If that sounds like something you never installed, keep reading. The real story isn’t the CVE. It’s how easy it is for modern apps to quietly inherit risk without anyone noticing.
Because yes: even if you never enabled React Server Components, your app may still be vulnerable.
And yes: the defaults alone can get you into trouble.
Even Cloudflare wasn’t immune
React2Shell isn’t theoretical. When one of the most sophisticated infrastructure companies in the world takes a hit, it tells you something about the depth of the problem.
- Cloudflare experienced a real outage while rolling out mitigations.
- SecurityWeek also covered how those mitigation efforts caused cascading issues.
What’s the actual bug?
CVE-2025-55182 was disclosed this week. It affects React 19.x when using any of the following:
- react-server-dom-webpack- react-server-dom-parcel- react-server-dom-turbopack
These packages are how React implements server-rendered components. The vulnerability is in the way it deserializes incoming data, it trusts the payload too much. That opens the door to remote code execution (RCE) by unauthenticated users.
Which frameworks does this affect?
Next.js, for starters. If you’re running a production build of a recent Next.js app and haven’t patched, you’re likely exposed.
Even if you don’t actively use server functions or RSCs. Even if you didn’t explicitly install those packages.
Frameworks like Next.js import and bundle these packages by default. And the endpoints are open unless you close them.
What you should do now
1. Upgrade React: The patched versions are
19.0.1,19.1.2, and19.2.1. Do that immediately.2. Upgrade Next.js: If you’re on Next, make sure you’re using
15.0.5or later. Read Vercel’s mitigation guide and fix script. It walks you through how to protect your deployments, fast.3. Check your lockfile: Even if your own code doesn’t import
react-server-dom-*, your dependencies might. Dig into yourpackage-lock.jsonoryarn.lock.4. Block suspicious requests: If you can’t patch right away, set up a WAF rule or proxy filter to block malformed requests to server function routes.
5. Check your assumptions: This isn’t just a bug in someone else’s setup. It’s a wake-up call for how defaults work.
Why this matters more than usual
This isn’t a one-off issue. It’s the inevitable result of three things happening at once:
- Frameworks taking on more complexity, silently importing more helpers, plugins, and dev tools.
- Developers relying on conventions and defaults, without looking under the hood.
- Security still being treated as something you deal with later.
React Server Components were introduced to simplify server-rendered code. But the more abstractions you use, the more dependencies you inherit. And with that, more ways for things to go wrong, without you noticing.
That’s the part that matters. Not just the CVE. The pattern.
What we’re doing at DWS
At DWS, we manage several React and Next.js projects for clients. We've patched all affected codebases and locked vulnerable packages. But we’re also doing a deeper review of how these dependencies sneak in.
Going forward, we’re putting stricter rules on:
- Dependency transparency: if it gets pulled in, we want to know why.
- Patch cadence: high-priority dependencies get auto-updated in CI.
- Supply chain scanning: not just packages, but what those packages pull in.
Security doesn’t have to mean paranoia. But it does mean awareness. Knowing what’s in your stack. Not just at the top level, but all the way down.
What this says about where we’re headed
This won’t be the last time a package you didn’t install introduces a critical exploit. And it probably won’t be the last time a “production-ready” framework ships a feature that opens the wrong doors by default.
The answer isn’t to avoid abstraction. The answer is to understand it.
If you’re building web apps today, security has to be part of the architecture. Not a checklist. Not a patch sprint. Part of the way you think.
And if that sounds like a lot to take on, we can help.
Let’s make sure your React stack is solid
We help teams secure their codebases without slowing down development. If you're not sure what you’re running, or what your framework quietly shipped into production, we can take a look.
Book a call
We’ll help you check for exposure, lock down your environment, and stay a few steps ahead of the next fire drill.