Critical DoS Flaw Found in React Next.js What to Do Now

A new denial of service vulnerability CVE-2026-23869 has been discovered in React Server Components affecting many Next.js apps using the App Router.

Critical DoS vulnerability in React Next.js and how to fix it

When the alert popped up on my feed last week I had to read it twice. A new denial of service vulnerability CVE-2026-23869 had just been disclosed in React Server Components and it affects pretty much every Next.js app using the App Router.

The issue is rated CVSS 7.5, so it’s considered high severity. What makes it worse is how simple it is to trigger. An attacker can send a specially crafted HTTP request that causes CPU usage to spike, eventually making the server unresponsive. There’s no authentication required either which makes it even more concerning since a single request could potentially take down a production site.

This isn’t some rare edge case. It’s hitting real apps on React 19 and Next.js 15 or 16 right now. It also came just days after another critical patch, so things are clearly still being stabilized.

Key Takeaway

If you are using React Server Components in production you need to update today. This one is easy to exploit and the impact is immediate.

1. What exactly happened

The root cause sits inside the React Server Components protocol also known as the Flight protocol. When the server deserializes certain payloads from incoming requests it can enter a path that consumes excessive CPU resources. An attacker can keep sending these payloads and the server process basically hangs.

According to the official security bulletin the issue was found while researchers were testing the previous patches for CVE-2025-55184. The fix was not complete for every possible payload type so CVE-2026-23869 slipped through.

Netlify Vercel and the React team all published advisories within hours of each other. That shows how seriously everyone is taking it.

2. Who is affected

Pretty much any project that uses React Server Components. That includes:

Next.js 15 and 16 with the App Router enabled

React 19.x in any framework that supports RSC

React Router 7 with RSC preview

Waku Parcel RSC and Vite plugin for RSC

If your app still runs on Next.js 14 or older and does not use Server Components you are safe for now. But most modern projects have already migrated.

3. How the attack actually works

The attacker does not need to log in or know any API keys. They simply send a malicious payload to any endpoint that uses Server Functions or Server Components.

The payload triggers an infinite loop or heavy computation inside the deserialization step. Your server starts eating CPU and memory and stops responding to real users. In serverless environments this can also blow up your bill because functions keep running longer than expected.

POST /api/some-endpoint HTTP/1.1
Content-Type: application/json

{"payload": "malicious-nested-structure-here"}

At first, the request does not even look suspicious in your logs. It just looks like normal traffic until the CPU graph goes vertical.

4. Real world impact I have seen

I talked to two friends who run production SaaS apps on Next.js. One of them noticed a sudden CPU spike on Friday night and thought it was traffic. It was actually someone testing this exact vulnerability. Luckily they caught it early but the site was slow for about 15 minutes.

Another developer told me his staging environment crashed completely after a single test request. That is how easy it is to trigger.

5. How to fix it right now

The fix is simple and the React team made it easy. Just update your dependencies.

npm install react@19.1.0 react-dom@19.1.0 next@16.2.0

Or if you use yarn or pnpm do the same. After updating run your build and deploy again. The patched versions close the deserialization hole completely.

If you cannot update immediately you can add a temporary Web Application Firewall rule on Cloudflare or your CDN to block suspicious payloads that match the known patterns. But updating is the only real solution.

6. Extra steps to stay safe going forward

After this incident I started doing three things on every project:

Enable automatic dependency updates with Dependabot or Renovate

Set up basic rate limiting on all API routes even if they look harmless

Monitor CPU and memory usage with tools like Vercel Analytics or New Relic so spikes get caught fast

Also make sure you are not exposing any Server Actions publicly unless they really need to be. The fewer entry points the better.

7. Why this matters more than you think

Server Components were supposed to make our lives easier by moving logic to the server. But every new feature adds more attack surface. This CVE proves that we still need to treat the server side with the same care we give the client side.

The React team is moving fast and they are transparent. That is a good sign. But as developers we cannot wait for the next patch to drop. We have to stay on top of updates.

One Last Thing

CVE-2026-23869 is a serious reminder that even mature frameworks can have hidden DoS risks. The good news is the patch is already out and it is straightforward.

If you are running React or Next.js with Server Components stop what you are doing and update right now. It takes five minutes and can save your site from going down unexpectedly.

I will keep an eye on any follow-up patches or new exploits and I will update this post if anything changes. In the meantime stay safe out there and keep your dependencies fresh.