Allocation of Resources Without Limits or Throttling
CVE-2024-56332
Summary
Next.js is a React framework for building full-stack web applications. Starting in version 13.0.0 through 13.5.7, 14.0.0 through 14.2.20, and 15.0.0 through 15.1.1 Next.js is vulnerable to a Denial of Service (DoS) attack that allows attackers to construct requests that leave requests to Server Actions hanging until the hosting provider cancels the function execution. This vulnerability can also be used as a Denial of Wallet (DoW) attack when deployed in providers billing by response times. (Note: Next.js server is idle during that time and only keeps the connection open. CPU and memory footprint are low during that time.). Deployments without any protection against long-running Server Action invocations are especially vulnerable. Hosting providers like Vercel or Netlify set a default maximum duration on function execution to reduce the risk of excessive billing. This is the same issue as if the incoming HTTP request has an invalid `Content-Length` header or never closes. If the host has no other mitigations, then this vulnerability is novel. This vulnerability affects only Next.js deployments using Server Actions.
- LOW
- NETWORK
- NONE
- UNCHANGED
- NONE
- NONE
- NONE
- LOW
CWE-770 - Allocation of Resources Without Limits or Throttling
The software allocates a reusable resource or group of resources on behalf of an actor without imposing any restrictions on the size or number of resources that can be allocated, in violation of the intended security policy for that actor.
References
Advisory Timeline
- Published