The Vulnerability Is in React, Not Next.js
CVE-2026-23869 is a denial-of-service vulnerability in React's Flight protocol — the serialization layer that powers React Server Components. The flaw sits in ReactFlightReplyServer.js, the server-side deserialization logic that processes model payloads from clients. A crafted cyclic payload triggers an infinite processing loop that consumes 60 seconds of CPU per request. No authentication is required. No user interaction is needed. An attacker sends a single HTTP request and the server thread is locked.
The CVSS 7.5 score reflects the combination of network accessibility, zero-privilege requirements, and high availability impact. While the vulnerability does not expose data or allow code execution, sustained exploitation against a production deployment creates effective downtime with minimal attacker resources.
Four Major Versions Affected
Next.js versions 13.x through 16.x using the App Router are affected — every release that adopted React Server Components. The vulnerability is not in Next.js-specific code. It is in the React runtime itself, which means any framework that implements the React Flight protocol carries the same exposure. Remix, Waku, and custom RSC implementations all deserialize the same payloads through the same code path.
Vercel coordinated the disclosure and backported fixes across all supported Next.js lines. The React team released patches in versions 19.0.5, 19.1.6, and 19.2.5 to cover the three active release channels. Organizations running Next.js with the App Router should verify their React dependency version, not just their Next.js version.
The Architectural Implication
React Server Components were designed to move rendering logic to the server, reducing client-side JavaScript and improving performance. The tradeoff is that server-side deserialization now processes untrusted client input — a surface area that did not exist when React was purely a client-side library. CVE-2026-23869 is the first high-severity demonstration that RSC's serialization layer is a security-critical component.
The Flight protocol uses a custom serialization format, not JSON. It supports complex object graphs including references, promises, and lazy values. The cyclic payload exploit targets the reference resolution logic — the deserializer follows references in a cycle until the processing timeout. The fix adds cycle detection during deserialization, a safeguard that standard JSON parsing includes by default.
What This Means for Framework Selection
Frameworks that do not use React Server Components — Angular, Vue/Nuxt, Svelte/SvelteKit, Django, FastAPI, Hugo — are not exposed to this class of vulnerability. They either render on the client, use standard HTTP request-response patterns, or serve static output. The RSC model introduces a novel serialization surface that requires ongoing security scrutiny as adoption scales.
For organizations running Next.js App Router in production, the immediate action is to update React to a patched version. The longer-term question is whether the RSC architecture, which moves untrusted input processing to the server in a non-standard serialization format, carries a sustained security maintenance cost that should factor into framework evaluation.


