Critical Β· published December 3, 2025
CVSS calls it critical at 10.0. It is confirmed in active exploitation. It sits in the 100.0th percentile for exploit probability.
π¨ Pre-authentication remote code execution is lurking in React Server Components! A crafty attacker can execute any code they want without even logging in! π₯ Think of it like an open restaurant kitchen where anyone can just waltz in and whip up whatever dish they fancy, without needing a reservation. That's how this vulnerability lets attackers run their malicious scripts freely! An attacker can seize control of the server and do anything they want β from stealing sensitive data to manipulating the system, leading to absolutely devastating consequences for your application. With this kind of access, the possibilities are endless and dangerous!
Think of it like an open restaurant kitchen where anyone can just waltz in and whip up whatever dish they fancy, without needing a reservation. That's how this vulnerability lets attackers run their malicious scripts freely! This CVE allows for unsafe deserialization of payloads sent to Server Function endpoints in versions 19.0.0 through 19.2.0 of React Server Components, including related packages like react-server-dom-parcel and react-server-dom-webpack. This opens the door for remote code execution before authentication is even checked.
An attacker can seize control of the server and do anything they want β from stealing sensitive data to manipulating the system, leading to absolutely devastating consequences for your application. With this kind of access, the possibilities are endless and dangerous! Immediately upgrade your React Server Components to version 19.2.1 or later. Review your applicationβs code for other potential deserialization vulnerabilities and tighten security practices around input validation. Don't delay β the risk is real! You've got this! Follow these steps, and you'll be on your way to fortifying your application. π‘οΈ
| Product | Versions | Fixed in |
|---|---|---|
| facebook/react | all versions | β |
| facebook/react | all versions | β |
| facebook/react | all versions | β |
| facebook/react | all versions | β |
| vercel/next.js | β₯ 15.0.0, < 15.0.5 | 15.0.5 |
| vercel/next.js | β₯ 15.1.0, < 15.1.9 | 15.1.9 |
| vercel/next.js | β₯ 15.2.0, < 15.2.6 | 15.2.6 |
| vercel/next.js | β₯ 15.3.0, < 15.3.6 | 15.3.6 |
| vercel/next.js | β₯ 15.4.0, < 15.4.8 | 15.4.8 |
| vercel/next.js | β₯ 15.5.0, < 15.5.7 | 15.5.7 |
| vercel/next.js | β₯ 16.0.0, < 16.0.7 | 16.0.7 |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |
| vercel/next.js | all versions | β |