Next.js 16.4.5 security release: who must patch now

Next.js 16.4.5 and 15.5.29 (3 Nov 2026) fix seven advisories, four in use cache and Cache Components. Who is affected, which line is fixed and how to patch.

Reading time: 9 min readPublished:

Next.js 16.4.5 and 15.5.29, the November 2026 security release, fix seven vulnerabilities, four of them in use cache and Cache Components. Both reached npm on 3 November 2026, at 18:01 and 18:36 UTC, and npm's latest tag is now 16.4.5. Run npm install next@16.4.5 on Next.js 16 or npm install next@15.5.29 on 15. That includes 16.4.4: the Next.js 16.4.4 bug-fix patch from the day before fixes none of these. 15.5.29 carries three of the fixes: response injection behind a proxy, the SVG bypass in image optimisation and the cookie header on Edge routes. The other four affect only 16.x apps with Cache Components or use cache. If you run Cache Components with root params, self-host with next start, set cookies in Edge routes or optimise remote images, patch today; we would also empty any cache that survives a deploy. We checked every claim below against the advisories, the GitHub releases, the npm registry and the Next.js blog on 4 November 2026. We did not reproduce any of the issues.

What changed in Next.js 16.4.5 and 15.5.29

The 16.4.5 release notes (opens in a new tab) list seven advisories. The 15.5.29 release notes (opens in a new tab) list three of them. In the comparison of 16.4.4 and 16.4.5 (opens in a new tab), the release is eight commits: one fix per advisory and the version bump, no other change. The 15.5.28 to 15.5.29 comparison (opens in a new tab) adds the three fixes to three commits that only touch Next.js's own release and CI pipeline. On the npm registry (opens in a new tab), both versions keep the third-party dependencies, the React peer range and the Node.js range of the patch before them (>=20.9.0 on 16.4.5). The only other change in your lockfile is @next/env, which is pinned to the exact next version and moves with it.

VersionOn npm (UTC)Linedist-tag on 4 NovNovember fixes
16.4.42 Nov 2026, 10:4916.x, Active LTS-None
16.4.53 Nov 2026, 18:0116.x, Active LTSlatestAll seven
15.5.2814 Oct 2026, 17:3615.x, Maintenance LTS-None
15.5.293 Nov 2026, 18:3615.x, Maintenance LTSbackportResponse injection, SVG bypass, Edge cookie header

Every advisory carries a severity, a CVSS 4.0 score and a CVE ID on GitHub, read through GitHub's advisory API (opens in a new tab) on 4 November. The Next.js post (opens in a new tab) gives its own severity and no CVE:

AdvisoryWhat goes wrongNext.js blogGitHub (CVSS 4.0)Fixed in
GHSA-mfr8-8qww-v76h (opens in a new tab), CVE-2026-119790A use cache result for one root param value is served for others when the function is also called through unstable_cacheHighModerate (6.3)16.4.5
GHSA-vc7v-qv4w-wrv8 (opens in a new tab), CVE-2026-119351An outer use cache entry is stored without the root param an inner one readMediumModerate (6.3)16.4.5
GHSA-vvgp-ww4w-46vf (opens in a new tab), CVE-2026-119350One request can poison a fallback shell that a family of routes sharesMediumModerate (6.3)16.4.5
GHSA-rhh4-g77r-r9qj (opens in a new tab), CVE-2026-119349Different binary arguments to a use cache function get the same cache keyMediumModerate (6.3)16.4.5
GHSA-pc58-hwjq-p385 (opens in a new tab), CVE-2026-119348A forwarded fetch response keeps compressed framing headers on a decompressed bodyMediumModerate (6.3)16.4.5, 15.5.29
GHSA-7qx7-33qx-rqx2 (opens in a new tab), CVE-2026-119347An SVG passed off as AVIF gets past dangerouslyAllowSVG: falseMediumModerate (6.9)16.4.5, 15.5.29
GHSA-f3mh-rxg3-f5g2 (opens in a new tab), CVE-2026-119346A cookie set on an Edge route is copied into the x-middleware-set-cookie header, readable by same-origin JavaScriptMediumModerate (6.0)16.4.5, 15.5.29

A root param is a route parameter of the root layout, such as [locale] or [tenant] in app/[tenant]/layout.tsx, read with next/root-params. The advisories describe how a use cache entry should depend on every root param its function reads, on top of what makes two calls share an entry. Two of the four cache bugs drop that root param from the key, so an app that separates tenants, sites or locales by root param can serve one tenant's cached content to another.

Is the November release high or medium severity?

Both, depending on whom you read. The advance notice of 27 October (opens in a new tab) announced "seven medium vulnerabilities". The release post of 3 November calls the unstable_cache leak High and the other six Medium. The GitHub advisories and both release notes rate all seven Moderate. The scores sit close together: six advisories score between 6.0 and 6.3, and the SVG bypass scores 6.9, the highest, the only one whose CVSS vector lists no attack requirements (AT:N) alongside low complexity and no user interaction. Record the High rating if you track the unstable_cache leak, because a cross-tenant leak is a serious finding for a multi-tenant app whatever the score.

Who is affected by the Next.js November 2026 vulnerabilities

Every advisory needs a specific setup. Find yours in the left column; the conditions come from each advisory and the Next.js post.

You are affected ifAdvisoryLines
Cache Components is on and one public use cache function that reads a root param is called both directly and inside unstable_cache, and the unstable_cache call arrives while the function's first fill after a process start is still in flight (outside that race, the nesting throws an error)GHSA-mfr816.x from 16.3.0
An inner use cache function reads a root param and returns ready data alongside a still-pending promise, and the outer use cache function finishes without awaiting itGHSA-vc7v16.x from 16.2.0
You self-host with next start, cacheComponents: true and partialPrefetching unset or false, and a dynamic route has a blocking fallback shell with the route shape the advisory describesGHSA-vvgp16.x from 16.4.0
A use cache function takes binary arguments (Uint8Array, Blob) that tell users or accounts apartGHSA-rhh416.x
You self-host, a route handler or the fetch cache returns a fetched upstream Response unchanged, and an HTTP/1.1 reverse proxy queues pipelined requests on a shared backend connectionGHSA-pc5816.x, 15.x and older
You self-host the image optimiser (/_next/image), keep images.dangerouslyAllowSVG at its default false, optimise images from a permitted source an attacker can control, and use a native backend that can decode SVGGHSA-7qx716.x, 15.x
An App Router Edge route handler or a Pages Router Edge API route sets a cookie with NextResponse.cookies.set()GHSA-f3mh16.x, 15.x

The Next.js post narrows two of them. The Edge cookie leak did not reproduce in Node.js route handlers or with cookies().set(). It also needs attacker-controlled JavaScript already running on your origin, so it is not a way to run scripts. The response injection needs the pipelining proxy behaviour and does not apply to every reverse proxy. Three advisories (shell poisoning, response injection and the SVG bypass) describe self-hosted deployments only. Netlify's changelog entry on the Next.js vulnerabilities (opens in a new tab), updated on 4 November, lists four of the seven as affecting sites on Netlify and ships its adapter @netlify/plugin-nextjs 5.16.6 for the Middleware cookie case.

How to tell whether your app uses the affected patterns

From the project root, these checks find the setups in the table:

npx next --version                                      # below 16.4.5 or 15.5.29: upgrade
grep -rn "cacheComponents\|partialPrefetching" next.config.*
grep -rln "next/root-params" app src lib 2>/dev/null    # root params read in cached code
grep -rln "unstable_cache" app src lib 2>/dev/null      # combined with "use cache": GHSA-mfr8
grep -rln "runtime = \"edge\"" app src pages 2>/dev/null # Edge routes: look for cookies.set()

For the Edge cookie, request a route that sets a cookie and look for the internal header in the response. After the upgrade, the fix commit (opens in a new tab) strips it from Edge responses:

curl -s -D - -o /dev/null https://your-app.example/api/login | grep -i x-middleware-set-cookie

Which Next.js versions get a fix?

Only the two LTS lines. The Next.js support policy (opens in a new tab) puts 16.x in Active LTS and 15.x in Maintenance LTS with security releases until 31 January 2027, and 14.x and older are unsupported. On npm, no 16.2.x or 16.3.x release came out on 3 November: the newest are still 16.2.12 (25 July) and 16.3.8 (30 September).

  • 16.0 to 16.4.4: upgrade to 16.4.5. There is no 16.2 or 16.3 backport, so a minor upgrade comes with the patch. Read the 16.4.4 release notes (opens in a new tab) and the 16.4 changes before you move.
  • 15.0 to 15.5.28: upgrade to 15.5.29. The cache advisories don't affect 15.x.
  • 14.x and older: the response injection advisory's version field reads >= 16.0.0 and < 16.0.0 together, which we read as every version, and the newest 14.x on npm is still 14.2.35, from December 2025. The other six list no version below 15.0.0. The advisory lists no workaround and 14.x gets no patch, so the way out is 15.5.29 or 16.4.5.

Read the advisories' own version fields with care. On 4 November most of them listed no patched version. The nested use cache advisory named 16.4.2, which the 16.4.5 release notes contradict, and three gave 16.4.2 as the last affected version, although 16.4.3 and 16.4.4 carry no security fix. None of the seven was in the global GitHub Advisory Database yet (its API answered 404 for each), and Dependabot alerts only on GitHub-reviewed advisories (opens in a new tab). So no Dependabot alert today doesn't mean you are patched. Go by the release notes: 16.4.5 and 15.5.29.

How to upgrade to Next.js 16.4.5 or 15.5.29

  1. Find the version you run

    Run npx next --version or npm ls next. In a monorepo, check every app: each one that resolves to a version below 16.4.5 on 16.x, or below 15.5.29 on 15.x, needs the upgrade.

  2. Install the patched version

    Run npm install next@16.4.5 on 16.x or npm install next@15.5.29 on 15.x (pnpm add and yarn add work the same). Node.js and the React peer range don't change, so react and react-dom stay as they are.

  3. Check what the lockfile resolved

    Run npm ls next again and deploy from a clean install. A caret range like ^16.4.4 in package.json only takes 16.4.5 once the lockfile is updated.

  4. Empty caches that outlive a deploy

    Entries written before the fix stay wrong after it: the unstable_cache leak keeps serving until the entry is revalidated or evicted, and a poisoned shell keeps its 404 across restarts. The advisories don't ask you to purge anything; our own advice is that if you use a shared cache handler or a persistent cache volume, you empty it after the upgrade. On Netlify, follow its changelog: purge branch deploys and Deploy Previews, which a production deploy doesn't clear.

  5. Use the workarounds only while you can't upgrade

    The unstable_cache advisory says that not calling a use cache function inside unstable_cache is a complete workaround. The shell advisory's workaround is partialPrefetching: true in next.config. The other five list none, so upgrade as soon as you can.

What to watch out for

  • 16.4.4 is not patched. It came out a day earlier and is a bug-fix release. Close a security ticket only on 16.4.5 or 15.5.29.
  • The install comment says "16.5". In the Next.js post, the line npm install next@16.4.5 carries the comment # for 16.5. The command is right. 16.5 is still in canary (16.5.0-canary.40 on npm on 4 November), so don't go looking for a 16.5 release.
  • The release post doesn't link the shell advisory. It describes the shared shell poisoning without a link. GHSA-vvgp-ww4w-46vf is in the 16.4.5 release notes.
  • No exploitation reported. None of the sources mentions exploitation in the wild or a public proof of concept. With the advisories public since 3 November, that is no reason to wait.
  • When we read each source. The Next.js posts, both GitHub releases, the seven advisories, the npm registry, the support policy and Netlify's changelog, all on 4 November 2026. We did not run 16.4.5 on a demo or reproduce any advisory.
What vulnerabilities are fixed in Next.js 16.4.5?

Seven, all published as GitHub advisories on 3 November 2026: two cache leaks across root params (use cache called through unstable_cache, and nested use cache), shared fallback shell poisoning on self-hosted next start, cross-user cache keys for binary use cache arguments, response injection behind pipelining HTTP/1.1 proxies, an SVG bypass in image optimisation and HttpOnly cookie exposure on Edge routes. 16.4.5 contains the seven fixes and nothing else.

Is the November 2026 Next.js release high or medium severity?

It depends on the source. The Next.js blog rates GHSA-mfr8-8qww-v76h (use cache called through unstable_cache) High and the other six Medium. The GitHub advisories and both release notes rate all seven Moderate, with CVSS 4.0 scores between 6.0 and 6.9, and the advance notice of 27 October announced seven medium vulnerabilities.

Which Next.js versions are affected by the November 2026 vulnerabilities?

Every 16.x release before 16.4.5 carries at least one of them, including 16.4.4, which has no security fix. On 15.x, three advisories apply up to 15.5.28 and are fixed in 15.5.29. 16.2 and 16.3 got no new patch, so those apps move to 16.4.5. The response injection advisory's version field also covers versions below 16.0.0, and 14.x, which is unsupported, has no patched release.

How do I upgrade to Next.js 16.4.5 or 15.5.29?

Run npm install next@16.4.5 on 16.x or npm install next@15.5.29 on 15.x (pnpm add or yarn add work the same), then check the lockfile resolved that version. Node.js and React requirements are unchanged from 16.4.4 and 15.5.28. If your cache outlives a deploy, we also recommend emptying it after upgrading, since the advisories say affected entries persist until they are revalidated or evicted.

Are the Next.js CVEs from November 2026 being exploited?

Neither the Next.js post nor any of the seven advisories mentions exploitation in the wild or a public proof of concept, as of 4 November 2026. The advisories were published on 3 November with the patches, so the details are now public; patch rather than wait for reports.

Further reading

November 2026 Security Release (opens in a new tab)The Next.js post of 3 November 2026: the seven issues, their severity and the install commands.nextjs.org
Next.js v16.4.5 release (opens in a new tab)The release notes with all seven advisories, each linked.github.com
Next.js v15.5.29 release (opens in a new tab)The Maintenance LTS release with the three advisories that apply to 15.x.github.com
Next.js security advisories (opens in a new tab)Each advisory with its conditions, CVSS score, CVE and workaround, where one exists.github.com
next on the npm registry (opens in a new tab)Every version with its publish time, dependencies and dist-tags.registry.npmjs.org
Next.js support policy (opens in a new tab)Which major versions get security releases, and until when.nextjs.org
AI for developersDev digest: React and Next.js RCE fixes, Opus 5.5 fast modeNext.js news for 11 to 18 Oct 2026: patch React and Next.js for three critical RCEs, fast mode for Claude Opus 5.5 leaves preview and Python on Vercel goes GA.

Tell us what we’re building.

We reply within one business day.