High Β· published December 12, 2025
β‘ An unfinished fix has left React Server Components vulnerable to denial of service in specific scenarios! π¨ Think of it like a restaurant that received a complaint about their slow service. They removed a few menu items but forgot to address the crowding problem β now, the kitchen gets overwhelmed and canβt serve any more orders. This vulnerability allows payloads from HTTP requests to cause a loop that can freeze server processes! An attacker could exploit this flaw to send malformed payloads, triggering an infinite loop that effectively hangs the server. This results in users being unable to access the service, leading to downtime and frustrated customers β absolutely devastating for any application relying on quick responsiveness!
Think of it like a restaurant that received a complaint about their slow service. They removed a few menu items but forgot to address the crowding problem β now, the kitchen gets overwhelmed and canβt serve any more orders. This vulnerability allows payloads from HTTP requests to cause a loop that can freeze server processes! This vulnerability allows unsafe deserialization of payloads from HTTP requests to React Server Function endpoints, leading to denial of service as the server enters an infinite processing loop. Affected versions include 19.0.2, 19.1.3, and 19.2.2, which failed to fully address a previous issue identified in CVE-2025-55184.
An attacker could exploit this flaw to send malformed payloads, triggering an infinite loop that effectively hangs the server. This results in users being unable to access the service, leading to downtime and frustrated customers β absolutely devastating for any application relying on quick responsiveness! To mitigate this risk, immediately upgrade React Server Components to a fixed version that addresses this vulnerability. Additionally, implement request validation to ensure harmful payloads are rejected before being processed. Regularly monitor for updates and security advisories to stay ahead! You've got this! Follow these steps, and you'll keep your application running smoothly and securely! π‘οΈ
| Product | Versions | Fixed in |
|---|---|---|
| facebook/react | all versions | β |
| facebook/react | all versions | β |
| facebook/react | all versions | β |
| vercel/next.js | β₯ 13.3.0, < 14.2.35 | 14.2.35 |
| vercel/next.js | β₯ 15.0.0, < 15.0.7 | 15.0.7 |
| vercel/next.js | β₯ 15.1.0, < 15.1.11 | 15.1.11 |
| vercel/next.js | β₯ 15.2.0, < 15.2.8 | 15.2.8 |
| vercel/next.js | β₯ 15.3.0, < 15.3.8 | 15.3.8 |
| vercel/next.js | β₯ 15.4.0, < 15.4.10 | 15.4.10 |
| vercel/next.js | β₯ 15.5.0, < 15.5.9 | 15.5.9 |
| vercel/next.js | β₯ 16.0.0, < 16.0.10 | 16.0.10 |
| 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 | β |
| 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 | β |