chore(deps): update dependency next to v16.2.6 [security]#534
chore(deps): update dependency next to v16.2.6 [security]#534svc-secops wants to merge 1 commit into
Conversation
|
|
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
❌ Deploy Preview for apollo-client-nextjs-docmodel failed.
|
e155c20 to
a9c701a
Compare
📝 WalkthroughWalkthroughUpdated Next.js peer dependency ranges in two packages: ChangesNext.js peer dependency updates
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@packages/experimental-nextjs-app-support/package.json`:
- Line 97: The peer range for the "next" dependency in package.json is too low
and still allows vulnerable App Router versions; update the "next" version
string from "^15.2.3 || ^16.0.0" to "^15.2.9 || ^16.0.11" (the "next" key in
package.json), then regenerate the lockfile (npm/yarn/pnpm install) to pin the
updated range; ensure any CI or consumers respect the new peer range.
In `@packages/nextjs/package.json`:
- Line 107: The "next" peer dependency value is malformed ("next": "^16.1.5
^16.1.5") and must be replaced with a valid semver range; update the "next"
entry to a correct peer range that preserves compatibility (for example restore
the prior compatible range like "^15.2.3 || ^16.0.0" or use a broadened range
such as ">=15 <17"), ensuring the "next" key uses a single valid semver
expression separated by || for alternatives.
| "peerDependencies": { | ||
| "@apollo/client": "^4.0.0", | ||
| "next": "^15.2.3", | ||
| "next": "^15.2.3 || ^16.0.0", |
There was a problem hiding this comment.
🧩 Analysis chain
🌐 Web query:
Next.js 15.2.8 16.0.10 security vulnerability CVE
💡 Result:
Next.js 15.2.8 and 16.0.10 are security-fix releases, but they are not the latest safe versions today.
What CVEs are associated with 15.2.8 / 16.0.10?
Fixed by 15.2.8 and 16.0.10 (Dec 11, 2025 Next.js security update)
These versions were released to address React Server Components (App Router) issues:
- CVE-2025-55184 (DoS) and the follow-up CVE-2025-67779 (complete DoS fix)
- CVE-2025-55183 (source code exposure)
[1]
But 15.2.8 and 16.0.10 are still vulnerable to a newer CVE (Jan 26, 2026)
- CVE-2026-23864 (React Server Components DoS, CVSS 7.5) also affects Next.js App Router/RSC, and requires upgrading past 15.2.8 / 16.0.10. [2][3]
What to upgrade to (patched for CVE-2026-23864)
- From Next.js 15.2.8 → upgrade to 15.2.9
- From Next.js 16.0.10 → upgrade to 16.0.11
[2]
Applies when using React Server Components / App Router (Server Functions endpoints). [2][3]
Sources: Next.js security update (Dec 11, 2025) [1], React security post (updated Jan 26, 2026) [3], Vercel CVE-2026-23864 summary with fixed versions list [2].
🌐 Web query:
Next.js security advisory 15.2.3 15.2.7 16.0.0 16.0.9 vulnerability
💡 Result:
Which vulnerability applies to those Next.js versions?
There are two major Next.js advisories that commonly cause confusion with these exact version ranges:
- CVE-2025-29927 (Middleware authorization bypass) — disclosed March 21, 2025; fixed in 15.2.3 (and 14.2.25 / 13.5.9 / 12.3.5). If you’re >= 15.2.3, you’re patched for this one. [1]
- CVE-2025-66478 (React Server Components / App Router RCE; “React2Shell”) — disclosed December 3, 2025; affects Next.js 15.x and 16.x when using App Router + RSC; fixed for the relevant lines in 15.2.6+ and 16.0.7+. [2]
Status of the versions you listed (for these advisories)
| Next.js version | CVE-2025-29927 (middleware bypass) | CVE-2025-66478 (RSC/App Router RCE) |
|---|---|---|
| 15.2.3 | Not vulnerable (patched) [1] | Vulnerable (needs 15.2.6+) [2] |
| 15.2.7 | Not vulnerable [1] | Not vulnerable (>= 15.2.6) [2] |
| 16.0.0 | Not listed as affected (advisory is up to 15.2.3 line) [1] | Vulnerable (needs 16.0.7+) [2] |
| 16.0.9 | Not listed as affected (advisory is up to 15.2.3 line) [1] | Not vulnerable (>= 16.0.7) [2] |
What to do
- If you’re on 15.2.x, upgrade to 15.2.6+ (so 15.2.7 is fine). [2]
- If you’re on 16.0.x, upgrade to 16.0.7+ (so 16.0.9 is fine). [2]
Sources
[1] (github.com)
[2] (nextjs.org)
Citations:
- 1: https://github.com/advisories/GHSA-f82v-jwr5-mffw?utm_source=openai
- 2: https://nextjs.org/blog/CVE-2025-66478
🌐 Web query:
Next.js App Router vulnerability security fix 15.2.8 16.0.10
💡 Result:
Next.js 15.2.8 and 16.0.10 are the patched “fixed in” releases for App Router (React Server Components / RSC) vulnerabilities disclosed December 11, 2025:
- CVE-2025-55184 (High): pre-auth Denial of Service via a crafted request that can trigger an infinite loop during RSC deserialization and hang the server.
- CVE-2025-55183 (Medium): Source code exposure where a crafted request can cause a Server Function to return compiled source of other Server Functions (risking leakage of business logic and any secrets inlined into code).
- Addendum: the initial fix for CVE-2025-55184 was incomplete; the complete fix is tracked as CVE-2025-67779, and Next.js recommends upgrading to the “latest patched versions” (including 15.2.8 / 16.0.10) even if you upgraded earlier that day/week. [1]
What to do (per Next.js):
- If you are on 15.2.x → upgrade to
next@15.2.8 - If you are on 16.0.x → upgrade to
next@16.0.10
There is no workaround besides upgrading. [1]
Related context (earlier App Router RSC issue): React2Shell RCE (CVE-2025-66478 / upstream CVE-2025-55182) was disclosed December 3, 2025 and has separate patched versions (e.g., 15.2.6 / 16.0.7). [2]
Sources
[1] Next.js Security Update: December 11, 2025 (fixed-in table + addendum about CVE-2025-67779) (nextjs.org)
[2] Next.js Security Advisory: CVE-2025-66478 (React2Shell RCE; earlier patched versions) (nextjs.org)
Citations:
- 1: https://nextjs.org/blog/security-update-2025-12-11
- 2: https://nextjs.org/blog/CVE-2025-66478?utm_source=openai
Raise the minimum secure next peer range further.
The current range allows vulnerable App Router versions. The proposed fix to ^15.2.8 || ^16.0.10 addresses CVE-2025-55184 and CVE-2025-55183 but remains vulnerable to CVE-2026-23864 (RSC DoS, CVSS 7.5). Upgrade to ^15.2.9 || ^16.0.11 instead.
🔧 Proposed fix
- "next": "^15.2.3 || ^16.0.0",
+ "next": "^15.2.9 || ^16.0.11",🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@packages/experimental-nextjs-app-support/package.json` at line 97, The peer
range for the "next" dependency in package.json is too low and still allows
vulnerable App Router versions; update the "next" version string from "^15.2.3
|| ^16.0.0" to "^15.2.9 || ^16.0.11" (the "next" key in package.json), then
regenerate the lockfile (npm/yarn/pnpm install) to pin the updated range; ensure
any CI or consumers respect the new peer range.
| "peerDependencies": { | ||
| "@apollo/client": "^4.0.0", | ||
| "next": "^15.2.3 || ^16.0.0", | ||
| "next": "^16.1.5 ^16.1.5", |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
cat -n packages/nextjs/package.json | head -120 | tail -20Repository: apollographql/apollo-client-integrations
Length of output: 664
🏁 Script executed:
# Check the full context around line 107
sed -n '100,115p' packages/nextjs/package.jsonRepository: apollographql/apollo-client-integrations
Length of output: 387
🏁 Script executed:
# Check git history for this file to understand previous values
git log --oneline packages/nextjs/package.json | head -10Repository: apollographql/apollo-client-integrations
Length of output: 138
🏁 Script executed:
# Get the git diff to see what changed in this PR
git diff HEAD packages/nextjs/package.json 2>/dev/null || echo "No uncommitted changes or file not tracked"Repository: apollographql/apollo-client-integrations
Length of output: 66
🏁 Script executed:
# Get the previous version before the latest commit
git show HEAD~1:packages/nextjs/package.json 2>/dev/null | sed -n '100,115p'Repository: apollographql/apollo-client-integrations
Length of output: 66
🏁 Script executed:
# Also check the full diff of the latest commit to understand what changed
git show --stat HEAD 2>/dev/null | head -20Repository: apollographql/apollo-client-integrations
Length of output: 1152
🏁 Script executed:
# Get more details on the change
git show HEAD -- packages/nextjs/package.json 2>/dev/null | head -60Repository: apollographql/apollo-client-integrations
Length of output: 1805
🏁 Script executed:
# Continue reading the diff to see the peerDependencies section
git show HEAD -- packages/nextjs/package.json 2>/dev/null | tail -30Repository: apollographql/apollo-client-integrations
Length of output: 880
🏁 Script executed:
# Check if there are any other references or documentation about Next.js version support
find . -type f \( -name "*.md" -o -name "*.txt" \) | head -20 | xargs grep -l "next" 2>/dev/null | head -5Repository: apollographql/apollo-client-integrations
Length of output: 340
🏁 Script executed:
# Look at the README or any documentation for version guidance
fd -t f "README" | head -5 | xargs cat 2>/dev/null | head -50Repository: apollographql/apollo-client-integrations
Length of output: 2416
🏁 Script executed:
# Check if there's any documentation about Next.js version compatibility in the nextjs package
cat packages/nextjs/README.md 2>/dev/null | head -100Repository: apollographql/apollo-client-integrations
Length of output: 5127
🏁 Script executed:
# Check for any git history before this commit (check if there's a previous state)
git log --all --oneline -- packages/nextjs/package.json 2>/dev/null | head -20Repository: apollographql/apollo-client-integrations
Length of output: 871
🏁 Script executed:
# Verify the syntax issue - check if the space between versions is indeed the problem
grep -n "next" packages/nextjs/package.jsonRepository: apollographql/apollo-client-integrations
Length of output: 209
🏁 Script executed:
# Check what versions were previously specified
git show 1485efc:packages/nextjs/package.json 2>/dev/null | grep -A 5 '"peerDependencies"' | head -10Repository: apollographql/apollo-client-integrations
Length of output: 219
🏁 Script executed:
# Check earlier state with Next.js 15 support
git show 1957588:packages/nextjs/package.json 2>/dev/null | grep -A 5 '"peerDependencies"' | head -10Repository: apollographql/apollo-client-integrations
Length of output: 249
🏁 Script executed:
# Verify if there's any CHANGELOG or migration guide
find . -type f \( -name "CHANGELOG*" -o -name "MIGRATION*" \) | xargs cat 2>/dev/null | head -50Repository: apollographql/apollo-client-integrations
Length of output: 1527
Fix the malformed next peer range syntax; duplicated value must be corrected.
Line 107 contains "next": "^16.1.5 ^16.1.5" (duplicated range with space separator), which is invalid npm syntax and overly restrictive. This change regresses from the previous "^15.2.3 || ^16.0.0" specification, dropping Node.js 15.x support and excluding 16.0.x patch releases. A security-focused peer dependency should maintain compatibility across stable versions.
🔧 Proposed fix
- "next": "^16.1.5 ^16.1.5",
+ "next": "^15.2.8 || ^16.0.10",📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| "next": "^16.1.5 ^16.1.5", | |
| "next": "^15.2.8 || ^16.0.10", |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@packages/nextjs/package.json` at line 107, The "next" peer dependency value
is malformed ("next": "^16.1.5 ^16.1.5") and must be replaced with a valid
semver range; update the "next" entry to a correct peer range that preserves
compatibility (for example restore the prior compatible range like "^15.2.3 ||
^16.0.0" or use a broadened range such as ">=15 <17"), ensuring the "next" key
uses a single valid semver expression separated by || for alternatives.
a9c701a to
02109df
Compare
There was a problem hiding this comment.
♻️ Duplicate comments (1)
packages/nextjs/package.json (1)
107-107:⚠️ Potential issue | 🟠 MajorRestore the
nextpeer range to a real multi-version expression (Line 107).
"^16.2.3 ^16.2.3"is semver-AND and collapses to^16.2.3, so it unintentionally drops Next 15 support and conflicts with the sibling package that still advertises^15.2.3 || ^16.0.0.🔧 Proposed fix
- "next": "^16.2.3 ^16.2.3", + "next": "^15.2.3 || ^16.0.0",#!/bin/bash set -euo pipefail echo "== nextjs peerDependencies ==" sed -n '102,110p' packages/nextjs/package.json echo echo "== experimental-nextjs-app-support peerDependencies + dependency link ==" sed -n '76,90p' packages/experimental-nextjs-app-support/package.json echo echo "== all next peer declarations in workspace package manifests ==" rg -n --glob '**/package.json' '"next"\s*:\s*".*"' packages🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@packages/nextjs/package.json` at line 107, The peerDependency string for "next" in the packages/nextjs package.json is currently the malformed semver-AND value "^16.2.3 ^16.2.3" and should be replaced with a real multi-version expression that preserves Next 15 support; update the "next" entry in packages/nextjs package.json (the "next" peerDependencies declaration) to a proper union range such as "^15.2.3 || ^16.2.3" (or the exact same range used by the sibling package experimental-nextjs-app-support) so it matches the intended supported versions.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Duplicate comments:
In `@packages/nextjs/package.json`:
- Line 107: The peerDependency string for "next" in the packages/nextjs
package.json is currently the malformed semver-AND value "^16.2.3 ^16.2.3" and
should be replaced with a real multi-version expression that preserves Next 15
support; update the "next" entry in packages/nextjs package.json (the "next"
peerDependencies declaration) to a proper union range such as "^15.2.3 ||
^16.2.3" (or the exact same range used by the sibling package
experimental-nextjs-app-support) so it matches the intended supported versions.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 0103a6e0-a3bf-40d2-b880-520a5aca2f7d
📒 Files selected for processing (2)
packages/experimental-nextjs-app-support/package.jsonpackages/nextjs/package.json
✅ Files skipped from review due to trivial changes (1)
- packages/experimental-nextjs-app-support/package.json
02109df to
e64350e
Compare
This PR contains the following updates:
^15.2.3 || ^16.0.0→^16.2.6 ^16.2.616.0.8→16.2.6^15.2.3→^15.2.3 || ^16.0.0GitHub Vulnerability Alerts
GHSA-mwv6-3258-q52c
A vulnerability affects certain React packages for versions 19.0.0, 19.0.1, 19.1.0, 19.1.1, 19.1.2, 19.2.0, and 19.2.1 and frameworks that use the affected packages, including Next.js 15.x and 16.x using the App Router. The issue is tracked upstream as CVE-2025-55184.
A malicious HTTP request can be crafted and sent to any App Router endpoint that, when deserialized, can cause the server process to hang and consume CPU. This can result in denial of service in unpatched environments.
GHSA-w37m-7fhw-fmv9
A vulnerability affects certain React packages for versions 19.0.0, 19.0.1, 19.1.0, 19.1.1, 19.1.2, 19.2.0, and 19.2.1 and frameworks that use the affected packages, including Next.js 15.x and 16.x using the App Router. The issue is tracked upstream as CVE-2025-55183.
A malicious HTTP request can be crafted and sent to any App Router endpoint that can return the compiled source code of Server Functions. This could reveal business logic, but would not expose secrets unless they were hardcoded directly into Server Function code.
CVE-2025-59471
A DoS vulnerability exists in self-hosted Next.js applications that have
remotePatternsconfigured for the Image Optimizer. The image optimization endpoint (/_next/image) loads external images entirely into memory without enforcing a maximum size limit, allowing an attacker to cause out-of-memory conditions by requesting optimization of arbitrarily large images. This vulnerability requires thatremotePatternsis configured to allow image optimization from external domains and that the attacker can serve or control a large image on an allowed domain.Strongly consider upgrading to 15.5.10 and 16.1.5 to reduce risk and prevent availability issues in Next applications.
GHSA-h25m-26qc-wcjf
A vulnerability affects certain React Server Components packages for versions 19.0.x, 19.1.x, and 19.2.x and frameworks that use the affected packages, including Next.js 13.x, 14.x, 15.x, and 16.x using the App Router. The issue is tracked upstream as CVE-2026-23864.
A specially crafted HTTP request can be sent to any App Router Server Function endpoint that, when deserialized, may trigger excessive CPU usage, out-of-memory exceptions, or server crashes. This can result in denial of service in unpatched environments.
CVE-2025-59472
A denial of service vulnerability exists in Next.js versions with Partial Prerendering (PPR) enabled when running in minimal mode. The PPR resume endpoint accepts unauthenticated POST requests with the
Next-Resume: 1header and processes attacker-controlled postponed state data. Two closely related vulnerabilities allow an attacker to crash the server process through memory exhaustion:Unbounded request body buffering: The server buffers the entire POST request body into memory using
Buffer.concat()without enforcing any size limit, allowing arbitrarily large payloads to exhaust available memory.Unbounded decompression (zipbomb): The resume data cache is decompressed using
inflateSync()without limiting the decompressed output size. A small compressed payload can expand to hundreds of megabytes or gigabytes, causing memory exhaustion.Both attack vectors result in a fatal V8 out-of-memory error (
FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory) causing the Node.js process to terminate. The zipbomb variant is particularly dangerous as it can bypass reverse proxy request size limits while still causing large memory allocation on the server.To be affected, an application must run with
experimental.ppr: trueorcacheComponents: trueconfigured along with the NEXT_PRIVATE_MINIMAL_MODE=1 environment variable.Strongly consider upgrading to 15.6.0-canary.61 or 16.1.5 to reduce risk and prevent availability issues in Next applications.
Next Vulnerable to Denial of Service with Server Components
GHSA-mwv6-3258-q52c
More information
Details
A vulnerability affects certain React packages for versions 19.0.0, 19.0.1, 19.1.0, 19.1.1, 19.1.2, 19.2.0, and 19.2.1 and frameworks that use the affected packages, including Next.js 15.x and 16.x using the App Router. The issue is tracked upstream as CVE-2025-55184.
A malicious HTTP request can be crafted and sent to any App Router endpoint that, when deserialized, can cause the server process to hang and consume CPU. This can result in denial of service in unpatched environments.
Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:HReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Next Server Actions Source Code Exposure
GHSA-w37m-7fhw-fmv9
More information
Details
A vulnerability affects certain React packages for versions 19.0.0, 19.0.1, 19.1.0, 19.1.1, 19.1.2, 19.2.0, and 19.2.1 and frameworks that use the affected packages, including Next.js 15.x and 16.x using the App Router. The issue is tracked upstream as CVE-2025-55183.
A malicious HTTP request can be crafted and sent to any App Router endpoint that can return the compiled source code of Server Functions. This could reveal business logic, but would not expose secrets unless they were hardcoded directly into Server Function code.
Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:NReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Next.js HTTP request deserialization can lead to DoS when using insecure React Server Components
GHSA-h25m-26qc-wcjf
More information
Details
A vulnerability affects certain React Server Components packages for versions 19.0.x, 19.1.x, and 19.2.x and frameworks that use the affected packages, including Next.js 13.x, 14.x, 15.x, and 16.x using the App Router. The issue is tracked upstream as CVE-2026-23864.
A specially crafted HTTP request can be sent to any App Router Server Function endpoint that, when deserialized, may trigger excessive CPU usage, out-of-memory exceptions, or server crashes. This can result in denial of service in unpatched environments.
Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:HReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Next.js has Unbounded Memory Consumption via PPR Resume Endpoint
CVE-2025-59472 / GHSA-5f7q-jpqc-wp7h
More information
Details
A denial of service vulnerability exists in Next.js versions with Partial Prerendering (PPR) enabled when running in minimal mode. The PPR resume endpoint accepts unauthenticated POST requests with the
Next-Resume: 1header and processes attacker-controlled postponed state data. Two closely related vulnerabilities allow an attacker to crash the server process through memory exhaustion:Unbounded request body buffering: The server buffers the entire POST request body into memory using
Buffer.concat()without enforcing any size limit, allowing arbitrarily large payloads to exhaust available memory.Unbounded decompression (zipbomb): The resume data cache is decompressed using
inflateSync()without limiting the decompressed output size. A small compressed payload can expand to hundreds of megabytes or gigabytes, causing memory exhaustion.Both attack vectors result in a fatal V8 out-of-memory error (
FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory) causing the Node.js process to terminate. The zipbomb variant is particularly dangerous as it can bypass reverse proxy request size limits while still causing large memory allocation on the server.To be affected, an application must run with
experimental.ppr: trueorcacheComponents: trueconfigured along with the NEXT_PRIVATE_MINIMAL_MODE=1 environment variable.Strongly consider upgrading to 15.6.0-canary.61 or 16.1.5 to reduce risk and prevent availability issues in Next applications.
Severity
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:HReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Next.js self-hosted applications vulnerable to DoS via Image Optimizer remotePatterns configuration
CVE-2025-59471 / GHSA-9g9p-9gw9-jx7f
More information
Details
A DoS vulnerability exists in self-hosted Next.js applications that have
remotePatternsconfigured for the Image Optimizer. The image optimization endpoint (/_next/image) loads external images entirely into memory without enforcing a maximum size limit, allowing an attacker to cause out-of-memory conditions by requesting optimization of arbitrarily large images. This vulnerability requires thatremotePatternsis configured to allow image optimization from external domains and that the attacker can serve or control a large image on an allowed domain.Strongly consider upgrading to 15.5.10 and 16.1.5 to reduce risk and prevent availability issues in Next applications.
Severity
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:HReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Next.js: Unbounded next/image disk cache growth can exhaust storage
CVE-2026-27980 / GHSA-3x4c-7xq6-9pq8
More information
Details
Summary
The default Next.js image optimization disk cache (
/_next/image) did not have a configurable upper bound, allowing unbounded cache growth.Impact
An attacker could generate many unique image-optimization variants and exhaust disk space, causing denial of service. Note that this does not impact platforms that have their own image optimization capabilities, such as Vercel.
Patches
Fixed by adding an LRU-backed disk cache with
images.maximumDiskCacheSize, including eviction of least-recently-used entries when the limit is exceeded. SettingmaximumDiskCacheSize: 0disables disk caching.Workarounds
If upgrade is not immediately possible:
.next/cache/images.images.localPatterns,images.remotePatterns, andimages.qualities)Severity
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:NReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Next.js: HTTP request smuggling in rewrites
CVE-2026-29057 / GHSA-ggv3-7p47-pfv8
More information
Details
Summary
When Next.js rewrites proxy traffic to an external backend, a crafted
DELETE/OPTIONSrequest usingTransfer-Encoding: chunkedcould trigger request boundary disagreement between the proxy and backend. This could allow request smuggling through rewritten routes.Impact
An attacker could smuggle a second request to unintended backend routes (for example, internal/admin endpoints), bypassing assumptions that only the configured rewrite destination/path is reachable. This does not impact applications hosted on providers that handle rewrites at the CDN level, such as Vercel.
Patches
The vulnerability originated in an upstream library vendored by Next.js. It is fixed by updating that dependency’s behavior so
content-length: 0is added only when bothcontent-lengthandtransfer-encodingare absent, andtransfer-encodingis no longer removed in that code path.Workarounds
If upgrade is not immediately possible:
DELETE/OPTIONSrequests on rewritten routes at your edge/proxy.Severity
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:NReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Next.js: Unbounded postponed resume buffering can lead to DoS
CVE-2026-27979 / GHSA-h27x-g6w4-24gq
More information
Details
Summary
A request containing the
next-resume: 1header (corresponding with a PPR resume request) would buffer request bodies without consistently enforcingmaxPostponedStateSizein certain setups. The previous mitigation protected minimal-mode deployments, but equivalent non-minimal deployments remained vulnerable to the same unbounded postponed resume-body buffering behavior.Impact
In applications using the App Router with Partial Prerendering capability enabled (via
experimental.pprorcacheComponents), an attacker could send oversizednext-resumePOST payloads that were buffered without consistent size enforcement in non-minimal deployments, causing excessive memory usage and potential denial of service.Patches
Fixed by enforcing size limits across all postponed-body buffering paths and erroring when limits are exceeded.
Workarounds
If upgrade is not immediately possible:
next-resumeheader, as this is never valid to be sent from an untrusted client.Severity
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:NReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Next.js: null origin can bypass dev HMR websocket CSRF checks
CVE-2026-27977 / GHSA-jcc7-9wpm-mj36
More information
Details
Summary
In
next dev, cross-site protections for internal development endpoints could treatOrigin: nullas a bypass case even whenallowedDevOriginsis configured. This could allow privacy-sensitive or opaque browser contexts, such as sandboxed documents, to access privileged internal dev-server functionality unexpectedly.Impact
If a developer visits attacker-controlled content while running an affected
next devserver withallowedDevOriginsconfigured, attacker-controlled browser code may be able to connect to internal development endpoints and interact with sensitive dev-server functionality that should have remained blocked.This issue affects development mode only. It does not affect
next start, and it does not expose internal debugging functionality to the network by default.Patches
Fixed by validating
Origin: nullthrough the same cross-site origin-allowance checks used for other origins on internal development endpoints.Workarounds
If upgrade is not immediately possible:
next devto untrusted networks.allowedDevOrigins, reject requests and websocket upgrades withOrigin: nullfor internal dev endpoints at your proxy.Severity
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:L/VI:L/VA:N/SC:N/SI:N/SA:NReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Next.js: null origin can bypass Server Actions CSRF checks
CVE-2026-27978 / GHSA-mq59-m269-xvcx
More information
Details
Summary
origin: nullwas treated as a "missing" origin during Server Action CSRF validation. As a result, requests from opaque contexts (such as sandboxed iframes) could bypass origin verification instead of being validated as cross-origin requests.Impact
An attacker could induce a victim browser to submit Server Actions from a sandboxed context, potentially executing state-changing actions with victim credentials (CSRF).
Patches
Fixed by treating
'null'as an explicit origin value and enforcing host/origin checks unless'null'is explicitly allowlisted inexperimental.serverActions.allowedOrigins.Workarounds
If upgrade is not immediately possible:
SameSite=Stricton sensitive auth cookies.'null'inserverActions.allowedOriginsunless intentionally required and additionally protected.Severity
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:L/VA:N/SC:N/SI:N/SA:NReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Next.js has a Denial of Service with Server Components
GHSA-q4gf-8mx6-v5v3
More information
Details
A vulnerability affects certain React Server Components packages for versions 19.x and frameworks that use the affected packages, including Next.js 13.x, 14.x, 15.x, and 16.x using the App Router. The issue is tracked upstream as CVE-2026-23869. You can read more about this advisory our this changelog.
A specially crafted HTTP request can be sent to any App Router Server Function endpoint that, when deserialized, may trigger excessive CPU usage. This can result in denial of service in unpatched environments.
Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:HReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Next.js has a Middleware / Proxy bypass in App Router applications via segment-prefetch routes
CVE-2026-44575 / GHSA-267c-6grr-h53f
More information
Details
Impact
App Router applications that rely on middleware or proxy-based checks for authorization can allow unauthorized access through transport-specific route variants used for segment prefetching. In affected configurations, specially crafted
.rscand segment-prefetch URLs can resolve to the same page without being matched by the intended middleware rule, which can allow protected content to be reached without the expected authorization check.Fix
We now include App Router transport variants when generating middleware matchers, so middleware protections are applied consistently to those requests as well as to the normal page URL.
Workarounds
If you cannot upgrade immediately, enforce authorization in the underlying route or page logic instead of relying solely on middleware.
Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:NReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Next.js has a Middleware / Proxy bypass in Pages Router applications using i18n
CVE-2026-44573 / GHSA-36qx-fr4f-26g5
More information
Details
Impact
Applications using the Pages Router with
i18nconfigured and middleware/proxy-based authorization can allow unauthorized access to protected page data through locale-less/_next/data/<buildId>/<page>.jsonrequests. In affected configurations, middleware does not run for the unprefixed data route, allowing an attacker to retrieve SSR JSON for protected pages without passing the intended authorization checks.Fix
The matcher logic was updated to perform the same match as it would on a non-i18n data route.
Workarounds
If you cannot upgrade immediately, enforce authorization in the page's server-side data path instead of relying solely on middleware.
Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:NReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Next.js's Middleware / Proxy redirects can be cache-poisoned
CVE-2026-44572 / GHSA-3g8h-86w9-wvmq
More information
Details
Impact
Next.js uses the
x-nextjs-datarequest header for internal data requests. On affected versions, an external client could send this header on a normal request to a path handled by middleware that returns a redirect.When that happened, the middleware/proxy could treat the request as a data request and replace the standard
Locationredirect header with the internalx-nextjs-redirectheader. Browsers do not followx-nextjs-redirect, so the response became an unusable redirect for normal clients.If the application was deployed behind a CDN or reverse proxy that caches 3xx responses without varying on this header, a single attacker request could poison the cached redirect response for the affected path. Subsequent visitors could then receive a cached redirect response without a
Locationheader, causing a denial of service for that redirect path until the cache entry expired or was purged.Affected scenarios
This affects applications that:
Fix
The fix stops trusting
x-nextjs-databy itself for middleware redirect handling. A request is now treated as an internal data request only when it is validated as such by internal routing state, preserving legitimate data-request redirect behavior while preventing external header injection from changing normal redirect responses.Workarounds
Before upgrading, users can reduce risk by:
x-nextjs-datafor affected responsesSeverity
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:LReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Next.js has a Middleware / Proxy bypass through dynamic route parameter injection
CVE-2026-44574 / GHSA-492v-c6pp-mqqv
More information
Details
Impact
Applications that rely on middleware to protect dynamic routes can be vulnerable to authorization bypass. In affected deployments, specially crafted query parameters can alter the dynamic route value seen by the page while leaving the visible path unchanged, which can allow protected content to be rendered without passing the expected middleware check.
Fix
We now only honor internal route-parameter normalization in trusted routing flows and ignore externally supplied parameter encodings that should never have been accepted from ordinary requests.
Workarounds
If you cannot upgrade immediately, enforce authorization in route or page logic instead of relying solely on middleware path matching.
Severity
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:NReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Next.js Vulnerable to Denial of Service with Server Components
GHSA-8h8q-6873-q5fj
More information
Details
A vulnerability affects certain React Server Components packages for versions 19.x and frameworks that use the affected packages, including Next.js 13.x, 14.x, 15.x, and 16.x using the App Router. The issue is tracked upstream as CVE-2026-23870.
A specially crafted HTTP request can be sent to any App Router Server Function endpoint that, when deserialized, may trigger excessive CPU usage. This can result in denial of service in unpatched environments.
Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:HReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Next.js vulnerable to server-side request forgery in applications using WebSocket upgrades
CVE-2026-44578 / GHSA-c4j6-fc7j-m34r
More information
Details
Impact
Self-hosted applications using the built-in Node.js server can be vulnerable to server-side request forgery through crafted WebSocket upgrade requests. An attacker can cause the server to proxy requests to arbitrary internal or external destinations, which may expose internal services or cloud metadata endpoints. Vercel-hosted deployments are not affected.
Fix
We now apply the same safety checks to WebSocket upgrade handling that already existed for normal HTTP requests, so upgrade requests are only proxied when routing has explicitly marked them as safe external rewrites.
Workarounds
If you cannot upgrade immediately, do not expose the origin server directly to untrusted networks. If WebSocket upgrades are not required, block them at your reverse proxy or load balancer, and restrict origin egress to internal networks and metadata services where possible.
Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:NReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Next.js vulnerable to cross-site scripting in App Router applications using CSP nonces
CVE-2026-44581 / GHSA-ffhc-5mcf-pf4q
More information
Details
Impact
App Router applications that rely on CSP nonces can be vulnerable to stored cross-site scripting when deployed behind shared caches. In affected versions, malformed nonce values derived from request headers could be reflected into rendered HTML in an unsafe way, allowing an attacker to poison cached responses and cause script execution for later visitors.
Fix
We now reject or ignore malformed nonce values before they are embedded into HTML and apply stricter nonce sanitization so request-derived nonce data cannot break out of the intended attribute context.
Workarounds
If you cannot upgrade immediately, strip inbound
Content-Security-Policyrequest headers from untrusted traffic.Severity
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:NReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Next.js has cross-site scripting in beforeInteractive scripts with untrusted input
CVE-2026-44580 / GHSA-gx5p-jg67-6x7h
More information
Details
Impact
Applications that use
beforeInteractivescripts together with untrusted content can be vulnerable to cross-site scripting. In affected versions, serialized script content was not escaped safely before being embedded into the document, which could allow attacker-controlled input to break out of the intended script context and execute arbitrary JavaScript in a visitor's browser.Fix
We now HTML-escape serialized
beforeInteractivescript content before embedding it into the page, preventing attacker-controlled content from breaking out of the inline script boundary.Workarounds
If you cannot upgrade immediately, do not pass untrusted data into
beforeInteractivescripts. If that pattern is unavoidable, sanitize or escape the content before embedding it.Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:NReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Next.js has a Denial of Service in the Image Optimization API
CVE-2026-44577 / GHSA-h64f-5h5j-jqjh
More information
Details
Impact
When self-hosting Next.js with the default image loader, the Image Optimization API fetches local images entirely into memory without enforcing a maximum size limit. An attacker could cause out-of-memory conditions by requesting large local assets from the
/_next/imageendpoint that match theimages.localPatternsconfiguration (by default, all patterns are allowed).images.localPatterns, only the patterns in that array are impacted.images.unoptimized: true, you are NOT impacted.images.loader: 'custom', you are NOT impacted.Fix
We now apply response size limits consistently to internal image fetches, not just external ones, and fail oversized responses before they can exhaust process memory.
This can be adjusted using the
images.maximumResponseBodyconfiguration.Workarounds
If you cannot upgrade immediately, avoid routing large local assets through
/_next/image, disable image optimization for large or untrusted local files, or block image optimization access to those assets at the edge.You can disable using the
images.localPatterns: []configuration. This will still allow fetching remote images (which is not impacted).Severity
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:HReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Next.js vulnerable to Denial of Service via connection exhaustion in applications using Cache Components
CVE-2026-44579 / GHSA-mg66-mrh9-m8jx
More information
Details
Impact
Applications using Partial Prerendering through the Cache Components feature can be vulnerable to connection exhaustion through crafted POST requests to a server action. In affected configurations, a malicious request can trigger a request-body handling deadlock that leaves connections open for an extended period, consuming file descriptors and server capacity until legitimate users are denied service.
Fix
We now treat the header used for resuming Partial Prerendered requests as an internal-only header and strip it from untrusted incoming requests. This header should never be accepted directly from external clients.
Workarounds
If you cannot upgrade immediately, block requests that would be handled by Next.js if they contain the
Next-Resumeheader at the edge.Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:HReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Next.js vulnerable to cache poisoning via collisions in React Server Component cache-busting
CVE-2026-44582 / GHSA-vfv6-92ff-j949
More information
Details
Impact
React Server Component responses can be vulnerable to cache poisoning in deployments that rely on shared caches with insufficient response partitioning. In affected conditions, collisions in the
_rsccache-busting value can allow an attacker to poison cache entries so users receive the wrong response variant for a given URL.Fix
We strengthened the
_rsccache-busting mechanism to make practical collisions significantly harder and to better separate response variants that should not share cache entries.Workarounds
If you cannot upgrade immediately, ensure intermediary caches correctly honor
Varyfor RSC-related request headers, or disable shared caching for affected RSC responses until you can deploy a patched release.Severity
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:NReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Next.js vulnerable to cache poisoning in React Server Component responses
CVE-2026-44576 / GHSA-wfc6-r584-vfw7
More information
Details
Impact
Applications using React Server Components can be vulnerable to cache poisoning when shared caches do not correctly partition response variants. Under affected conditions, an attacker can cause an RSC response to be served from the original URL and poison shared cache entries so later visitors receive component payloads instead of the expected HTML.
Fix
We now validate and interpret
RSCrequest headers consistently across request classification and rendering, and we enforce the intended cache-busting behavior so RSC payloads are not unexpectedly served from the original URL.Workarounds
If you cannot upgrade immediately, ensure your CDN or reverse proxy keys on the relevant RSC request headers and honors
Vary, or disable shared caching for affected App Router and RSC responses.Severity
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:L/A:LReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Next.js has a Middleware / Proxy bypass in App Router applications via segment-prefetch routes - Incomplete Fix Follow-Up
CVE-2026-45109 / GHSA-26hh-7cqf-hhc6
More information
Details
Impact
It was found that the fix addressing CVE-2026-44575 did not apply to
middleware.tswith Turbopack. Refer to CVE-2026-44575 for further details.References
Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N