CVE-2026-94482: the Next.js Server Actions denial of service, who is affected and the fix

CVE-2026-94482 is a high severity denial of service in Next.js, fixed in 16.4.1 and 15.5.28. In App Router apps with at least one Server Action, crafted requests sent without an account can use so much CPU that the server process stops answering other visitors. It affects next 13.0.0 to 15.5.27 and 16.0.0 to 16.4.0. Pages Router apps and apps without Server Actions are not affected.

The team behind Keybrum's attacksUpdated 8 min read
CVE-2026-94482high · CVSS 8.2
Component
Next.js App Router, Server Actions (next)
Affected
Next.js 13.0.0 to 15.5.27 and 16.0.0 to 16.4.0, App Router apps with at least one Server Action
Fixed in
15.5.28 and 16.4.1. No fix on 13.x, 14.x or 15.0 to 15.4. Latest releases: 16.4.5 and 15.5.29
Published
October 22, 2026
Exploited in the wild
No public report

In short

  • Affected: next 13.0.0 to 15.5.27 and 16.0.0 to 16.4.0, App Router with at least one Server Action. Fixed in 15.5.28 and 16.4.1; Next.js 13, 14 and 15.0 to 15.4 get no fix.
  • The damage is downtime, and on hosts that bill CPU time, a larger bill. Nothing is read or changed.
  • GitHub, the CNA, scores it 8.2 High (CVSS 4.0). CISA records no known exploitation but rates the attack as automatable, and it is not in the KEV catalog as of 8 November 2026.
  • Same title as July's CVE-2026-64641, but a new bug: 16.2.11 and 15.5.21 fixed that one and are affected by this one. Go to 16.4.5 or 15.5.29.
  • No workaround exists besides upgrading. Rate limits at Vercel, Cloudflare or your proxy reduce the damage; they do not fix it.
On this page

What CVE-2026-94482 is, in plain words

A Server Action is a function marked "use server" that your pages call from a form or a button. On the network, each call is a POST request to your app, which the server decodes before it runs your code. Anyone can send one, as the Next.js security guide explains.

CVE-2026-94482 is a flaw in how Next.js handles those requests. Per the advisory, crafted requests to an App Router app with at least one Server Action cause "excessive CPU usage blocking processing of further requests in the same process." Per the CVSS vector, no login and no click from a user are needed. The weakness class is CWE-770, allocation of resources without limits or throttling.

The Next.js release post links it to an upstream React advisory, GHSA-h3gv-c5rc-p453, fixed the same day. Neither advisory describes the mechanism, and neither does this page.

What a stranger can and cannot do

  • Stall your server. Node.js runs your JavaScript on one thread per process, so while it burns CPU on a crafted request, every other visitor on that process waits. With one next start process on a VPS, that is the whole site.
  • Run up your bill. Netlify warns that "active exploitation could increase your function costs". Vercel bills functions by Active CPU, "the CPU time your code actively consumes".
  • Nothing more. The CNA rates the impact on confidentiality and integrity as none. The code execution bugs of the same release are GHSA-2464-fhr4-w9xw and GHSA-673q-mjm6-r5xr.

Severity and exploitation status

SourceRatingDetail
GitHub, the CNA (CVSS 4.0)8.2 HighAV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H: over the network, low complexity, no account, a precondition must be present, availability impact only
NVDNo score of its own"Awaiting Analysis" on 8 November 2026. It shows the CNA score; no CVSS 3.1 score exists
CISA (SSVC, 30 October 2026)Exploitation: noneAutomatable: yes. Technical impact: partial
CISA KEV catalogNot listedCatalog version 2026.11.06, checked 8 November 2026
FIRST EPSS0.39%Probability of exploitation in the next 30 days, 33rd percentile, on 7 November 2026

The vector marks an attack requirement as present; the only condition the advisory states is an App Router app with a Server Action. "Automatable" means CISA judges the attack can be scripted reliably. We found no public report of exploitation, and the advisory credits no researcher.

Who is affected

Your app is exposed when all three of these are true:

  1. It runs next 13.0.0 to 15.5.27, or 16.0.0 to 16.4.0.
  2. It uses the App Router, the app/ directory.
  3. It has at least one Server Action.

"Applications using Pages Router or not using Server Actions are not vulnerable," the advisory adds. It says nothing about hosting: on every host, the version decides.

SetupWhat applies
Self-hosted: next start, Docker, a VPSAffected on the versions above. A stalled process keeps the site down until it recovers; more than one process behind a health check shortens that.
VercelAffected on the versions above. We found no Vercel platform notice or WAF rule for it. Active CPU is billed: Hobby includes 4 hours a month, Pro pays on demand.
NetlifyMinimal impact, per Netlify: one function burning CPU does not affect other requests. Exploitation could still raise function costs.
Next.js 13.x, 14.x, 15.0 to 15.4Affected, and no fix ships on those lines. The nearest fix is 15.5.28.
Pages Router only, or an App Router app with no Server ActionNot affected.

On Next.js 13, Server Actions need experimental.serverActions: true; Next.js 14 made them stable and on by default.

How to check your Next.js version

Check the version your lockfile resolves, not the range in package.json: "next": "^16.2.0" can still be pinned to 16.2.11 in the lockfile. Run one of these at the root of the project:

bash
# What is installed
npm ls next
pnpm why next
yarn why next

# The version the Next.js CLI reports
npx next --version
Affected: 13.0.0 to 15.5.27 and 16.0.0 to 16.4.0. Fixed: 15.5.28 or 16.4.1 and later. In a monorepo, check every app.

Do not trust an old audit: the advisory reached the GitHub Advisory Database, which npm audit and Dependabot read, on 22 October, eight days after the fix shipped.

Does your app have a Server Action?

A file that starts with "use server" exports actions, and a function whose first line is "use server" is one. Search your code, then count what the build contains:

bash
# In your source
grep -rlE --include='*.ts' --include='*.tsx' --include='*.js' --include='*.jsx' \
  "[\"']use server[\"']" app src lib components 2>/dev/null

# After next build: how many Server Actions the build contains
node -e "const m=require('./.next/server/server-reference-manifest.json');console.log(Object.keys(m.node).length+Object.keys(m.edge||{}).length)"
Run both in your own project. The manifest lists every action the build compiled, including files outside the folders the search covers. It also holds your action encryption key, so print the count, not the file. We checked the file name on a Next.js 16.4 build.

No action means this CVE does not apply today, but one new form can add one. To see whether production answers the React Server Components protocol, use the header check on the CVE-2025-55184 page.

How to fix CVE-2026-94482

  1. 1

    Upgrade Next.js

    16.4.1 and 15.5.28 are the first fixed releases. Go to the latest patch instead, 16.4.5 or 15.5.29 from the November 2026 security release, which also fixes cache and cookie advisories.

  2. 2

    Leave 13.x, 14.x and early 15.x

    Those lines get no fix. Moving to 15.5 or 16 is a major upgrade: read the Next.js upgrade guides first.

  3. 3

    Commit the lockfile and redeploy

    Production runs what the lockfile installs. If you ship a Docker image, rebuild it without a stale install layer.

  4. 4

    Other React Server Components frameworks

    Outside Next.js, update react-server-dom-webpack, -parcel or -turbopack to 19.0.9, 19.1.10, 19.2.9 or 19.3.1, the versions the upstream React advisory names. Its affected list includes 19.0.8, 19.1.9 and 19.2.8, the July fixes, so those are not enough.

bash
# Next.js 16 (Active LTS), latest patch on 8 November 2026
npm install [email protected]

# Next.js 15 (Maintenance LTS)
npm install [email protected]

# The same with pnpm or yarn
pnpm add [email protected]
yarn add [email protected]

Rate limits and other defence in depth

A rate limit refuses requests beyond a count per source. It does not make a crafted request cheaper, and a sender with many addresses stays under it.

WhereWhat you can setAvailability
Vercel WAF rate limitingA fixed window of 10 seconds to 10 minutes, counted by IP or JA4 fingerprint, 429 by default. Counters are per region.All plans. Hobby: 1 rate limit rule per project, 1,000,000 allowed requests included
Cloudflare rate limiting rulesOn Free: 1 rule, matched on the path, counted by IP over 10 seconds.Free and paid plans
nginx in front of next startlimit_req_zone and limit_req cap the request rate per client IP. Requests beyond the burst get an error.Self-hosted
Next.js serverActions.bodySizeLimitCaps a Server Action's body at 1MB by default, "to prevent the consumption of excessive server resources". Keep it unless an upload needs more.On by default
nginx
# In the http block
limit_req_zone $binary_remote_addr zone=app:10m rate=10r/s;

server {
  location / {
    limit_req zone=app burst=20 nodelay;
    proxy_pass http://127.0.0.1:3000;
  }
}
A starting point for a self-hosted app. Measure your real traffic first: a limit set too low refuses your own users.

How it relates to the other Next.js denial of service CVEs

This is the second Next.js advisory of 2026 with exactly this title. In July, CVE-2026-64641 (GHSA-m99w-x7hq-7vfj, also 8.2 High, but CWE-834, excessive iteration) described the same symptom and was fixed in 16.2.11 and 15.5.21, two versions this CVE affects. If you patched in July and stopped, patch again.

Both follow a run of denial of service bugs in React's Server Components code, such as CVE-2025-55184 and CVE-2026-23864; the upstream React advisory above is the latest. Next.js ships its own copy of that React code, so in a Next.js app only the next version counts.

Timeline

DateEvent
21 September 2026CVE-2026-94482 reserved by GitHub, the CNA.
14 October 2026React fixes GHSA-h3gv-c5rc-p453. Next.js ships 16.4.1 and 15.5.28 and publishes GHSA-p3m5-59mp-jv5r alongside two critical advisories.
22 October 2026CVE published on cve.org and in NVD; the advisory enters the GitHub Advisory Database.
30 October 2026CISA records no known exploitation and rates the attack as automatable.
3 November 2026Next.js 16.4.5 and 15.5.29, the November 2026 security release.
8 November 2026Not in CISA's KEV catalog (version of 6 November). EPSS 0.39% on 7 November.

What Keybrum checks on a live app

Keybrum never sends a denial of service payload: stalling a server to prove a point is downtime for its owner, so no Keybrum attack tests CVE-2026-94482 itself. On apps whose owner proved ownership, one ordinary request with the RSC header confirms that production answers the React Server Components protocol, and a read of your JavaScript looks for Server Action ids, signs of this advisory's two conditions. The report names the current floor, 16.4.5 or 15.5.29; your version check settles the rest.

Vibe coding security risks covers what AI-built apps leak most often.

Questions

Is my Next.js 14 app affected by CVE-2026-94482?

Yes, if it uses the App Router and has at least one Server Action: the advisory covers every version from 13.0.0 to 15.5.27. No 14.x release fixes it. The nearest fix is 15.5.28, and the current patches are 15.5.29 and 16.4.5.

What is the Next.js Server Actions denial of service?

Crafted requests to an App Router app with a Server Action make the server use so much CPU that the process stops handling other requests. Nothing leaks, but the app stops answering. The current case is CVE-2026-94482; July's was CVE-2026-64641.

Does CVE-2026-94482 affect apps hosted on Vercel?

The advisory makes no distinction by host, and we found no Vercel platform notice or WAF rule for it. Vercel bills functions by Active CPU, the resource this bug burns, so upgrade wherever you host.

I upgraded for CVE-2026-64641 in July. Am I covered?

No. The July fixes, 16.2.11 and 15.5.21, are inside the affected range of CVE-2026-94482. Upgrade to 16.4.1 or 15.5.28 at least, and preferably to 16.4.5 or 15.5.29.

Is CVE-2026-94482 exploited in the wild?

Not as far as public sources show: CISA records no known exploitation, and the CVE is not in its Known Exploited Vulnerabilities catalog as of 8 November 2026. CISA rates the attack as automatable, so do not wait for reports.

Sources

  1. 1.GHSA-p3m5-59mp-jv5r: Denial of Service in App Router using Server Actions, Vercel, GitHub Security Advisory
  2. 2.GHSA-p3m5-59mp-jv5r: Next.js: Denial of Service in App Router using Server Actions, GitHub Advisory Database
  3. 3.CVE-2026-94482, NIST National Vulnerability Database
  4. 4.CVE-2026-94482, CVE Program
  5. 5.Next.js Security Update for Upstream Vulnerabilities, Next.js
  6. 6.Next.js v16.4.1 release notes, vercel/next.js on GitHub
  7. 7.Next.js v15.5.28 release notes, vercel/next.js on GitHub
  8. 8.GHSA-h3gv-c5rc-p453: Denial of Service in Server Functions, React, GitHub Security Advisory
  9. 9.November 2026 Security Release, Next.js
  10. 10.GHSA-m99w-x7hq-7vfj (CVE-2026-64641): Denial of Service in App Router using Server Actions, GitHub Advisory Database
  11. 11.Security Update: Next.js and React vulnerabilities (October 2026), Netlify
  12. 12.Fluid compute pricing: Active CPU, Vercel Docs
  13. 13.WAF Rate Limiting, Vercel Docs
  14. 14.Rate limiting rules, Cloudflare Docs
  15. 15.Module ngx_http_limit_req_module, nginx
  16. 16.serverActions: allowedOrigins and bodySizeLimit, Next.js Docs
  17. 17.Don't Block the Event Loop (or the Worker Pool), Node.js
  18. 18.Known Exploited Vulnerabilities Catalog, CISA
  19. 19.EPSS score for CVE-2026-94482, FIRST
  20. 20.next: versions, npm

Keep reading

Your app is public. So are its mistakes.

Check what any attacker can already see in it, free, in ten seconds. The full attack, with proof and fixes: €49 once, or €29 a month on a plan.

or continue with Google or GitHub