Next.js Allows a Denial of Service (DoS) with Server Actions
Affected releases · next
- 15.x15.0.0 – 15.1.1Fixed in 15.1.2
- 14.x14.0.0 – 14.2.20Fixed in 14.2.21
- 13.x13.0.0 – 13.5.7Fixed in 13.5.8
On 15.x, the newest line:
npm install next@15.1.2Not affected
16.0.0 – 16.4.2
45 releases, latest
Affected
15.0.0 – 15.1.1
11 releases
Fixed
15.1.2 – 15.5.28
71 releases
Affected
14.0.0 – 14.2.20
31 releases
Fixed
14.2.21 – 14.2.35
15 releases
Affected
13.0.0 – 13.5.7
52 releases
Fixed
13.5.8 – 13.5.11
4 releases
Is your project affected?
Paste your package.json, or type the range you declare for next. It is read in your browser and sent nowhere.
What happens
Impact
A Denial of Service (DoS) attack allows attackers to construct requests that leaves requests to Server Actions hanging until the hosting provider cancels the function execution.
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 to those then this vulnerability is novel.
This vulnerability affects only Next.js deployments using Server Actions.
Patches
This vulnerability was resolved in Next.js 14.2.21, 15.1.2, and 13.5.8. We recommend that users upgrade to a safe version.
Workarounds
There are no official workarounds for this vulnerability.
Credits
Thanks to the PackDraw team for responsibly disclosing this vulnerability.