Security & Trust

React Server Components Carry a DoS Flaw. Every RSC Framework Inherits It.

CVE-2026-23869 scores CVSS 7.5. A cyclic payload in React Flight protocol exhausts CPU for 60 seconds per request.

· 5 min read
Share on X LinkedIn
React Server Components Carry a DoS Flaw. Every RSC Framework Inherits It.

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.

7.5 (High)
CVSS Score
Network-accessible, no authentication required. Source: Vercel/GitHub Advisory (June 2026)
60 seconds
CPU exhaustion per request
Single malicious payload locks a server thread for one full minute. Source: CyCognito Analysis (June 2026)

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.

4 major lines (13–16)
Next.js versions affected
All App Router deployments using React Server Components. Source: Vercel/GitHub Advisory (June 2026)
140,095
Next.js GitHub stars
The largest frontend framework by developer gravity. Source: GitHub API (June 2026)

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.

Share this insight
More insights