On this page · 5 sections
  1. Cache Components on Next.js 16: Four Advisories Without a 15.x Range
  2. Self-Hosted Next.js and Edge Routes: Three Advisories on 15.x and 16.x
  3. Upgrading to Next.js 16.4.5, 16.4.6 or 15.5.29
  4. Checking a Next.js Project for the Affected Version and Features
  5. Sources

Warning

Next.js 16.4.5 fixes seven security advisories for 16.x releases up to and including 16.4.4, and 15.5.29 fixes the three of them that also reach 15.x releases up to and including 15.5.28. Each advisory carries a CVE ID and a CVSS 4.0 score between 6.0 and 6.9, rated medium in the Next.js advisories. The Next.js security post calls the cross-tenant cache disclosure, GHSA-mfr8-8qww-v76h, High severity.

Cache Components on Next.js 16: Four Advisories Without a 15.x Range #

Four advisories concern Cache Components and the 'use cache' directive, and none of them lists a 15.x version as affected. Their ranges start at different 16.x releases and all end at 16.4.4, so the fix for every one of them is 16.4.5. A 15.5 application is outside all four whatever features it uses; a 16.x application with Cache Components should read each condition below, because the four reach different code paths.

GHSA-mfr8-8qww-v76h (CVE-2026-119790, CVSS 4.0 6.3, from 16.3.0 up to and including 16.4.4) needs one 'use cache' function that reads a root param and is called both directly during rendering and through unstable_cache(). During the first fill after a process start, an unstable_cache() call can join the in-flight fill of a concurrent direct call and store its result under a key without root params. Requests for other root param values, such as another tenant or locale, then receive that entry until it is revalidated or evicted.

"Outside this race, the nesting already throws an error: 'use cache' inside unstable_cache() is unsupported, and avoiding it is a complete workaround." (GHSA-mfr8-8qww-v76h)

GHSA-vc7v-qv4w-wrv8 (CVE-2026-119351, 6.3, from 16.2.0 up to and including 16.4.4) affects nested 'use cache' functions. When the inner function reads a root param through next/root-params and returns a value that still holds pending promises, the outer function can finish first, and its entry is stored under a key that omits that root param. The advisory calls it a variant of GHSA-h694-7cp9-m8p3 that the fix for that earlier advisory does not cover, so an application patched for the earlier one still needs 16.4.5.

GHSA-rhh4-g77r-r9qj (CVE-2026-119349, 6.3, from 16.0.0 up to and including 16.4.4) is about binary arguments: distinct Uint8Array or Blob values passed to a 'use cache' function can produce identical cache keys. If those arguments distinguish users or accounts, one user can receive another user's cached result or have their own result served to someone else. The security post adds that it does not permit arbitrary access to unrelated cache entries.

GHSA-vvgp-ww4w-46vf (CVE-2026-119350, 6.3, from 16.4.0 up to and including 16.4.4) is the shared fallback shell issue, which the security post lists without an advisory ID. It needs cacheComponents: true with partialPrefetching unset or false, serving with next start, and a route shape with a prerenderable param requested with a value not generated at build time and two never-prerenderable params below it. One unauthenticated GET request can then store a persistent 404 or a substituted param value in the shell that a family of routes shares.

Self-Hosted Next.js and Edge Routes: Three Advisories on 15.x and 16.x #

The other three advisories reach both lines, and 15.5.29 is the fixed release on 15.x. GHSA-pc58-hwjq-p385 (CVE-2026-119348, 6.3) affects self-hosted applications whose route handlers or fetch cache return a fetched upstream response unchanged. The response can carry the framing headers of the original compressed response with decompressed bytes, and behind an HTTP/1.1 reverse proxy that queues pipelined requests on a shared backend connection, responses can reach the wrong clients. The security post stresses that it needs that proxy behavior and does not apply to every reverse-proxy configuration.

GHSA-f3mh-rxg3-f5g2 (CVE-2026-119346, 6.0) affects Edge runtime routes, App Router route handlers and Pages Router Edge API routes, that set cookies through NextResponse. They send an internal x-middleware-set-cookie header that duplicates the cookie, so HttpOnly cookies such as session tokens become readable by same-origin JavaScript. Impact needs a sensitive cookie on an affected response and attacker-controlled JavaScript on the same origin; the reproduced leak did not affect Node.js route handlers or cookies().set().

GHSA-7qx7-33qx-rqx2 (CVE-2026-119347, 6.9) lets the image optimizer at /_next/image on self-hosted deployments process an attacker-supplied SVG although dangerouslyAllowSVG: false, the default, should exclude it. The image is misclassified as AVIF and then decoded as SVG by a native backend that can decode SVG; the image-source allowlist still applies. The result is exposure to SVG parser resource exhaustion and decoder flaws, not demonstrated cross-site scripting or code execution.

Advisory (CVE)AffectedFixed inCVSS 4.0 (Next.js advisory)Exposed when
GHSA-mfr8-8qww-v76h (CVE-2026-119790)From 16.3.0 up to and including 16.4.416.4.56.3; the security post: HighA root-param 'use cache' function is also called through unstable_cache()
GHSA-vc7v-qv4w-wrv8 (CVE-2026-119351)From 16.2.0 up to and including 16.4.416.4.56.3Nested 'use cache' functions, inner one reading a root param
GHSA-rhh4-g77r-r9qj (CVE-2026-119349)From 16.0.0 up to and including 16.4.416.4.56.3Binary arguments to 'use cache'
GHSA-vvgp-ww4w-46vf (CVE-2026-119350)From 16.4.0 up to and including 16.4.416.4.56.3next start, cacheComponents: true, Partial Prefetching off
GHSA-pc58-hwjq-p385 (CVE-2026-119348)From 16.0.0 up to and including 16.4.4; up to and including 15.5.2816.4.5; 15.5.296.3Self-hosted, fetched responses returned unchanged, HTTP/1.1 pipelining proxy
GHSA-f3mh-rxg3-f5g2 (CVE-2026-119346)From 16.0.0 up to and including 16.4.4; from 15.0.0 up to and including 15.5.2816.4.5; 15.5.296.0Edge routes setting sensitive cookies through NextResponse
GHSA-7qx7-33qx-rqx2 (CVE-2026-119347)From 16.0.0 up to and including 16.4.4; from 15.0.0 up to and including 15.5.2816.4.5; 15.5.296.9Self-hosted image optimization with a native backend that decodes SVG

Upgrading to Next.js 16.4.5, 16.4.6 or 15.5.29 #

The severity labels disagree between sources: the security post rates GHSA-mfr8-8qww-v76h High, while its advisory rates it medium and the 16.4.5 release notes list all seven under Moderate. Whatever label a team goes by, the ranges decide who must act. Next.js 16.4.6, released on November 9, is a later backport release on the 16.4 line whose notes list no security fix, so 16.4.5 or 16.4.6 both sit outside every 16.x range.

  1. On 16.x, install next@16.4.5 or the later next@16.4.6; on 15.5, install next@15.5.29. The security post's own command for 16.4.5 carries the comment "for 16.5", but it installs 16.4.5.
  2. If a self-hosted 16.4 application with cacheComponents: true cannot upgrade at once, set partialPrefetching: true in next.config, the workaround GHSA-vvgp-ww4w-46vf gives.
  3. If a 'use cache' function is called inside unstable_cache(), remove that nesting: the advisory names avoiding it a complete workaround for GHSA-mfr8-8qww-v76h.
  4. After moving to 16.4.6, expect route handler responses to be compressed automatically when they are not compressed already, one of its backports alongside a Tailwind 4.3.3 pin in create-next-app and Turbopack garbage collection fixes for development.
Bash
npm install next@16.4.6   # 16.x line: 16.4.5 or later
npm install next@15.5.29  # 15.5 line

Checking a Next.js Project for the Affected Version and Features #

The installed version decides most of this: npm ls next prints the resolved next package, and anything from 16.0.0 up to and including 16.4.4 or up to and including 15.5.28 is inside at least one range. The features then decide which advisories apply. A search for the directive, the cache function, the root params import and the settings named above points to the four 16.x advisories; the cookie call points to the Edge advisory, and dangerouslyAllowSVG to the image advisory.

Bash
npm ls next
grep -rnE "use cache|unstable_cache|next/root-params|cacheComponents|partialPrefetching|NextResponse\.cookies\.set|dangerouslyAllowSVG" --include="*.ts" --include="*.tsx" --include="*.js" --include="*.jsx" --include="*.mjs" .

The Sentinel’s Call

Every Next.js 16 application on 16.4.4 or earlier should move to 16.4.5 or 16.4.6 now: the four Cache Components advisories have no 15.x range and no fix outside the 16.4 line. On 15.5, 15.5.29 closes the three advisories that reach that line. A self-hosted 16.4 application with Cache Components that cannot upgrade today can set partialPrefetching: true and remove any 'use cache' call inside unstable_cache() until it does.

Our judgement, drawn only from the facts and sources above.

Verified We installed Next.js 16.4.5, 15.5.29 and 16.4.6 from npm and ran them on Nov 12, 2026.

  • Next.js 16.4.5 node -e 'console.log(require("next/package.json").version)'

    16.4.5

    Full output and environment
    node:22-slimsha256:e9f565d32859…
    $ node -e 'console.log(require("next/package.json").version)'
    16.4.5
    $ node -e 'require("next"); console.log("require ok")'
    require ok
  • Next.js 15.5.29 node -e 'console.log(require("next/package.json").version)'

    15.5.29

    Full output and environment
    node:22-slimsha256:e9f565d32859…
    $ node -e 'console.log(require("next/package.json").version)'
    15.5.29
    $ node -e 'require("next"); console.log("require ok")'
    require ok
  • Next.js 16.4.6 node -e 'console.log(require("next/package.json").version)'

    16.4.6

    Full output and environment
    node:22-slimsha256:e9f565d32859…
    $ node -e 'console.log(require("next/package.json").version)'
    16.4.6
    $ node -e 'require("next"); console.log("require ok")'
    require ok

Isolated container: official image, network off, read-only, no host files. How we check

Sources

  1. November 2026 Security Release | Next.js nextjs.org · Nov 3, 2026
  2. vercel/next.js v16.4.5 github.com · Nov 3, 2026
  3. vercel/next.js v15.5.29 github.com · Nov 3, 2026
  4. vercel/next.js v16.4.6 github.com · Nov 9, 2026
  5. GHSA-f3mh-rxg3-f5g2: HttpOnly cookie exposure through internal response header on Next.js Edge runtime routes github.com · Nov 3, 2026
  6. GHSA-7qx7-33qx-rqx2: SVG rejection bypass in Next.js image optimization github.com · Nov 3, 2026
  7. GHSA-pc58-hwjq-p385: Cross-client response injection and disclosure in self-hosted Next.js applications forwarding fetched responses github.com · Nov 3, 2026
  8. GHSA-rhh4-g77r-r9qj: Cross-user cache disclosure and poisoning in Next.js use cache with binary arguments github.com · Nov 3, 2026
  9. GHSA-vvgp-ww4w-46vf: Cache poisoning of shared fallback shells in Cache Components via request-supplied placeholder route params github.com · Nov 3, 2026
  10. GHSA-vc7v-qv4w-wrv8: Cache leak across root param values in nested 'use cache' functions via delayed inner stream metadata github.com · Nov 3, 2026
  11. GHSA-mfr8-8qww-v76h: Information disclosure across root params in Next.js when a 'use cache' function is called through unstable_cache() github.com · Nov 3, 2026

More on Next.js

1 other article, newest first

Next reading

Edited and approved by Jarosław Krzemiński. Spotted a mistake? Report a correction or read the corrections policy.