In short
- CVE-2026-23864 takes an app offline and does nothing else: crafted requests to a Server Function endpoint, sent without an account, can crash the process, exhaust its memory or pin its CPU. It runs no code and reads no data.
- React 19.0.3, 19.1.4 and 19.2.3, the December 2025 fixes, are not enough. The fixed React versions are 19.0.4, 19.1.5 and 19.2.4, and for Next.js 15.0.8, 15.1.12, 15.2.9, 15.3.9, 15.4.11, 15.5.10, 16.0.11 and 16.1.5.
- Next.js 13 and 14 got no patch for this CVE. The first fixed release for them is 15.0.8, so the fix is a major upgrade.
- In a Next.js app, read the
nextversion. Next.js ships its own copy of the React server code, sonpm ls react-server-dom-webpackcan print nothing and updatingreactchanges nothing. - Treat the fixed versions as a floor. In November 2026 the current Next.js patches are 16.4.5 and 15.5.29.
On this page
What CVE-2026-23864 is, in plain words
React Server Components (RSC) run part of a React app on the server. Server Functions, called Server Actions in Next.js, are functions on the server that the browser calls with an HTTP POST request, and React decodes the body of that request on the server before your code sees it. CVE-2026-23864 covers several bugs in that decoding: a specially crafted request can crash the server, cause out-of-memory exceptions or burn CPU, depending on the code path it reaches, the app's configuration and its own code. The bugs live in three npm packages, react-server-dom-webpack, react-server-dom-turbopack and react-server-dom-parcel, and in every framework that ships them.
The React team published it on January 26, 2026, after security researchers found more denial of service cases in code it had already patched twice in December 2025. Its blog post is blunt about it: the earlier fixes were incomplete, and anyone who had updated to 19.0.3, 19.1.4 or 19.2.3 had to update again. Vercel's summary credits Mufeed VH of Winfunc Research, Joachim Viide, RyotaK of GMO Flatt Security and Xiangwei Zhang of Tencent Security YUNDING LAB.
What it does not do matters as much. It runs no code on your server and reads no data: Vercel states that these bugs do not allow remote code execution, and the CVSS vector rates confidentiality and integrity as untouched. The cost is downtime. A self-hosted next start server is a single Node.js process by default, so while that process is stuck on CPU or restarting after a crash, the whole site stops answering.
Affected and fixed versions
Two advisories carry the ranges: GHSA-83fc-fqcc-2hmg for the React packages and GHSA-h25m-26qc-wcjf for Next.js. In a Next.js app, the next rows are the ones to read.
| Package and line | Affected | First fixed |
|---|---|---|
react-server-dom-* 19.0 | 19.0.0 to 19.0.3 | 19.0.4 |
react-server-dom-* 19.1 | 19.1.0 to 19.1.4 | 19.1.5 |
react-server-dom-* 19.2 | 19.2.0 to 19.2.3 | 19.2.4 |
next 13.x and 14.x | Every release from 13.0.0 | None: move to 15.0.8 or later |
next 15.0 | 15.0.0 to 15.0.7 | 15.0.8 |
next 15.1 | 15.1.0 to 15.1.11 | 15.1.12 |
next 15.2 | 15.2.0 to 15.2.8 | 15.2.9 |
next 15.3 | 15.3.0 to 15.3.8 | 15.3.9 |
next 15.4 | 15.4.0 to 15.4.10 | 15.4.11 |
next 15.5 | 15.5.0 to 15.5.9 | 15.5.10 |
next 16.0 | 16.0.0 to 16.0.10 | 16.0.11 |
next 16.1 | 16.1.0 to 16.1.4 | 16.1.5 |
next canaries | 15.6 before canary.61, 16.2 before canary.9 | 15.6.0-canary.61, 16.2.0-canary.9 |
Severity and exploitation status
| Item | Value |
|---|---|
| CVSS 3.1 score | 7.5, high. The React blog post, both GitHub advisories, CISA and Red Hat all give it. Meta's CVE record carries no score of its own, and NVD shows the CISA and Red Hat scores without adding one. |
| Vector | AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H: over the network, low complexity, no account, no user action, availability only |
| Weaknesses | CWE-400 (uncontrolled resource consumption), CWE-502 (deserialization of untrusted data), CWE-1284 (unchecked quantity in input) |
| CISA KEV | Not listed in the catalog released on November 6, 2026 |
| CISA assessment at publication | Exploitation: none. Automatable: yes. Technical impact: partial. |
| Exploited in the wild | Unknown. No vendor or CISA source reports attacks. |
The line to weigh is automatable: no login and no user action means a script can send these requests on its own.
Who is affected
Your app is affected if a server runs React Server Components with one of the vulnerable package versions. In practice:
- Next.js 13.x to 16.x with the App Router (an
appdirectory), below the fixed release of its line. The Next.js advisory names the App Router, so a project that only uses thepagesdirectory is outside its scope. - Other RSC frameworks and plugins. Vercel's summary lists Vite, Parcel, React Router, RedwoodSDK and Waku setups that embed React Server Components. There, the
react-server-dom-*version in your lockfile decides. - Not affected: React code that only runs in the browser. The React advisory says an app whose React code does not use a server, or that uses no framework, bundler or plugin with React Server Components support, is not affected. A single page app or a Next.js static export (
output: 'export') fits that description.
Server Actions are not the dividing line. The advisories describe the trigger as a request to a Server Function endpoint, but neither says that an App Router app without Server Actions is safe. If you run the App Router on an affected version, treat the app as affected.
Vercel, Netlify, Cloudflare or your own server
| Where the app runs | Protection while you upgrade | What to do |
|---|---|---|
| Vercel | WAF rules deployed on January 26, 2026 to every project, at no cost. Vercel adds that you should not rely on them for full protection. | Upgrade and redeploy. |
| Netlify | Netlify calls the impact minimal there: its serverless functions scale out, so a crashed or hung function does not affect other requests. It warns that attacks could still raise your function costs. | Upgrade and redeploy. |
| Behind Cloudflare, proxied | Managed Ruleset rules named React Server - DOS - CVE:CVE-2026-23864, released on January 26, 2026 with the action Block. In May 2026 Cloudflare wrote that they are on by default for Managed Ruleset customers, Free plan included. | Check the rules in your dashboard, then upgrade. |
Your own server: next start, a container, a VPS | Nothing, unless you put a filter in front. | Upgrade first. This is the most exposed setup. |
How to check if your app is affected
Read the version that is installed, not the range in package.json: "next": "^15.1.0" installs whatever your lockfile pinned, which can be years old. Run these at the root of the project:
# npm
npm ls next
# pnpm (add -r in a monorepo)
pnpm why next
# yarn
yarn why next
# the version Next.js reports for itself
npx next --version
# other RSC frameworks: the React server packages
npm ls react-server-dom-webpack react-server-dom-turbopack react-server-dom-parcelRead it from the lockfile
# package-lock.json
grep -A2 '"node_modules/next": {' package-lock.json
# pnpm-lock.yaml
grep -E '^ /?next@' pnpm-lock.yaml
# yarn.lock (Yarn 1 and Yarn Berry)
grep -A2 -E '^"?next@' yarn.locknext.Check what production runs
A fixed lockfile proves nothing about a build that never shipped. Load a page of your live app and type next.version in the browser console: Vercel's React2Shell bulletin gives it as the way to read the running version. To see whether production answers React Server Components requests at all, send your own app the header the App Router uses:
curl -s -o /dev/null -D - -H "RSC: 1" https://your-app.example/ | grep -i content-typetext/x-component means the App Router answers RSC requests, so the code path behind this CVE is live. text/html usually means a Pages Router or static page.How to fix CVE-2026-23864
Upgrade, rebuild and redeploy. Neither advisory offers a setting that turns the flaw off. Aim above the fixed versions in the table: React has shipped new server package releases on every line since January, the latest being 19.0.9, 19.1.10, 19.2.9 and 19.3.1 on October 14, 2026, and Cloudflare's May 2026 changelog covers newly disclosed denial of service bugs in the same code. The current Next.js patches, from the November 2026 security release, are 16.4.5 on the Active LTS line and 15.5.29 on the Maintenance LTS line.
# Next.js 16, Active LTS (current patch in November 2026)
npm install [email protected]
# Next.js 15, Maintenance LTS, if 16 is out of reach for now
npm install [email protected]
# the same with pnpm or yarn
pnpm add [email protected]
yarn add [email protected]
# React Router, Waku, RedwoodSDK, Vite or Parcel RSC setups:
# keep react, react-dom and the server package on the same version
npm install react@latest react-dom@latest react-server-dom-webpack@latestOn Next.js 13 or 14, there is no patch to install. The advisory's first range runs from 13.0.0 up to 15.0.8, and the last 14.x release, 14.2.35, came out on December 11, 2025, before this CVE existed. Moving to 15.5 or 16 is a major upgrade: plan it with the Next.js upgrade guides, and keep a WAF in front of the app until it ships.
If you cannot upgrade today
- Put a WAF in front. On Vercel the rules are already there. With Cloudflare, proxy the app's DNS record and check that the CVE-2026-23864 rules in the Managed Ruleset are set to Block.
- Run more than one instance, behind a health check that restarts a process that stops answering. A stuck process then costs one instance, not the whole site.
- Rate limit POST requests to your pages at the proxy. It caps how much a stranger can send, though one expensive request can still get through.
- Learn the symptom: a Node.js process pinned at full CPU, memory that climbs until the process dies, or restarts that follow bursts of POST requests.
What to do after upgrading
- 1
Confirm production runs the fix
Redeploy without reusing an old build, then type
next.versionin the console of your live site. A cached build or an old container image can keep the vulnerable code online. - 2
Rebuild every environment
Preview and staging deployments built before the upgrade keep running the old code. Rebuild or delete them, and check every app in a monorepo.
- 3
Skip the key rotation, unless another CVE applies
This bug reads nothing, so it is no reason by itself to rotate secrets. If your
nextversion was also below the React2Shell fix, follow the CVE-2025-55182 page: that one allowed remote code execution. - 4
Turn on advisory alerts
Dependabot alerts on GitHub, or
npm auditin your build, flag new advisories onnextand the React server packages once they reach the GitHub Advisory Database.
Related CVEs in the same family
CVE-2026-23864 is the fifth CVE in React Server Components in eight weeks. A release that fixes a later row also contains the fixes above it on the same line.
| CVE | What it does | Severity | Fixed in React |
|---|---|---|---|
| CVE-2025-55182 (React2Shell) | Remote code execution | Critical, 10.0 | 19.0.1, 19.1.2, 19.2.1 |
| CVE-2025-55183 | Exposes the source code of Server Functions | Medium, 5.3 | 19.0.2, 19.1.3, 19.2.2 |
| CVE-2025-55184 | Denial of service | High, 7.5 | 19.0.2, 19.1.3, 19.2.2 (incomplete) |
| CVE-2025-67779 | Denial of service, a case the fix above missed | High, 7.5 | 19.0.3, 19.1.4, 19.2.3 |
| CVE-2026-23864 (this page) | Denial of service: crash, memory or CPU | High, 7.5 | 19.0.4, 19.1.5, 19.2.4 |
next version with each CVE page, not with this column.Timeline
| Date | Event |
|---|---|
| December 3, 2025 | React2Shell (CVE-2025-55182) is disclosed. React 19.0.1, 19.1.2 and 19.2.1 ship. |
| December 11, 2025 | CVE-2025-55184 and CVE-2025-55183, then CVE-2025-67779. React 19.0.3, 19.1.4 and 19.2.3 ship. |
| January 16, 2026 | Meta reserves CVE-2026-23864. |
| January 26, 2026 | React 19.0.4, 19.1.5 and 19.2.4 and Next.js 15.0.8 to 16.1.5 reach npm, the CVE is published, the React blog post is updated, and Vercel and Cloudflare deploy WAF rules. |
| January 28 and 29, 2026 | The Next.js and React advisories appear in the GitHub Advisory Database. |
| May 2026 | Cloudflare says its CVE-2026-23864 rules also cover newly disclosed denial of service bugs in React. |
| November 3, 2026 | Next.js 16.4.5 and 15.5.29, the current patches on the two LTS lines. |
What Keybrum checks on a live app
Keybrum never sends a denial of service payload: crashing a server to prove a point is downtime for the person who asked for the test. So for this CVE it proves the surface, not the bug. With one ordinary request carrying the RSC header, it checks whether your production domain answers the React Server Components protocol and counts the Server Action ids your JavaScript ships. The report then lists the React2Shell family, its denial of service CVEs included, as not tested. The version checks above tell you whether that surface is patched.
For the rest of the framework, read the Next.js security guide. For what AI-built apps leak most often, see vibe coding security risks.
Questions
Is CVE-2026-23864 a remote code execution bug?
No. It is a denial of service: crafted requests can crash the server, exhaust its memory or pin its CPU. Vercel states that these bugs do not allow remote code execution, and the CVSS vector rates confidentiality and integrity as untouched.
Does React CVE-2026-23864 affect apps that do not use Next.js?
Yes, if a server runs React Server Components through react-server-dom-webpack, -turbopack or -parcel 19.0.0 to 19.2.3, as in React Router, Waku, RedwoodSDK, Vite or Parcel RSC setups. Update to 19.0.4, 19.1.5 or 19.2.4 or later. React that only runs in the browser is not affected.
I updated React to 19.2.4. Is my Next.js app fixed?
No. Next.js ships its own copy of the React server code, so the react version in your project does not patch it. Upgrade next itself, ideally to 16.4.5 or 15.5.29.
Is there a CVE-2026-23864 fix for Next.js 14?
No. The Next.js advisory marks every release from 13.0.0 up to 15.0.8 as affected, and the last 14.x release came out in December 2025, before the CVE. You have to move to Next.js 15 or 16.
Is the Next.js Pages Router affected?
The Next.js advisory names only apps that use the App Router, where Server Functions run. A project that only uses the pages directory is outside its scope, though no advisory states outright that Pages Router apps are safe.
Am I protected if my app is hosted on Vercel?
Vercel deployed WAF rules for every project on January 26, 2026, and says not to rely on them for full protection. Upgrade next and redeploy all the same.
Do I need to rotate my secrets after CVE-2026-23864?
Not because of this CVE: it reads no data. Rotate if your version was also below the fix for React2Shell or CVE-2025-55183, which can expose code and the secrets written in it.
Sources
- 1.CVE-2026-23864, NIST National Vulnerability Database
- 2.CVE-2026-23864 record, CVE Program
- 3.React Server Components have multiple Denial of Service Vulnerabilities (GHSA-83fc-fqcc-2hmg), GitHub Advisory Database
- 4.Next.js HTTP request deserialization can lead to DoS when using insecure React Server Components (GHSA-h25m-26qc-wcjf), GitHub Advisory Database
- 5.Denial of Service and Source Code Exposure in React Server Components (updated January 26, 2026), React
- 6.Summary of CVE-2026-23864, Vercel
- 7.Security Update: DoS vulnerability in Next.js and React Server Components, Netlify
- 8.Next.js November 2026 security release, Next.js
- 9.WAF Release 2026-01-26, Cloudflare
- 10.WAF and framework adapter mitigations for React and Next.js vulnerabilities, Cloudflare
- 11.Known Exploited Vulnerabilities Catalog, CISA
- 12.React2Shell security bulletin (checking the running Next.js version), Vercel
- 13.next on npm (versions and dependencies), npm
- 14.react-server-dom-webpack on npm (versions), npm