You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It was discovered that the fix for CVE-2025-55184 in React Server Components was incomplete and did not fully mitigate denial-of-service conditions across all payload types. As a result, certain crafted inputs could still trigger excessive resource consumption.
This vulnerability affects React versions 19.0.2, 19.1.3, and 19.2.2, as well as frameworks that bundle or depend on these versions, including Next.js 13.x, 14.x, 15.x, and 16.x when using the App Router. The issue is tracked upstream as CVE-2025-67779.
A malicious actor can send a specially crafted HTTP request to a Server Function endpoint that, when deserialized, causes the React Server Components runtime to enter an infinite loop. This can lead to sustained CPU consumption and cause the affected server process to become unresponsive, resulting in a denial-of-service condition in unpatched environments.
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.
When Next.js rewrites proxy traffic to an external backend, a crafted DELETE/OPTIONS request using Transfer-Encoding: chunked could 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: 0 is added only when both content-length and transfer-encoding are absent, and transfer-encoding is no longer removed in that code path.
Workarounds
If upgrade is not immediately possible:
Block chunked DELETE/OPTIONS requests on rewritten routes at your edge/proxy.
Enforce authentication/authorization on backend routes per our security guidance.
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.
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 .rsc and 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.
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 RSC request 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.
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.
Applications that use beforeInteractive scripts 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 beforeInteractive script 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 beforeInteractive scripts. If that pattern is unavoidable, sanitize or escape the content before embedding it.
Applications using the Pages Router with i18n configured and middleware/proxy-based authorization can allow unauthorized access to protected page data through locale-less /_next/data/<buildId>/<page>.json requests. 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.
Next.js uses the x-nextjs-data request 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 Location redirect header with the internal x-nextjs-redirect header. Browsers do not follow x-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 Location header, causing a denial of service for that redirect path until the cache entry expired or was purged.
Affected scenarios
This affects applications that:
use middleware or proxy redirects
are deployed behind a caching CDN or reverse proxy
allow 3xx responses on those paths to be cached without differentiating internal data requests from normal requests
Fix
The fix stops trusting x-nextjs-data by 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:
configuring the CDN or reverse proxy to vary its cache key on x-nextjs-data for affected responses
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 _rsc cache-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 _rsc cache-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 Vary for RSC-related request headers, or disable shared caching for affected RSC responses until you can deploy a patched release.
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-Policy request headers from untrusted traffic.
Crafted requests targeting Next.js applications using App Router with at least one Server Action can lead to excessive CPU usage blocking processing of further requests in the same process.
Workarounds
No workaround exists besides upgrading. Applications using Pages Router or not using Server Actions are not vulnerable.
In Next.js applications using App Router, Server Actions (use server) or use cache endpoints can be disclosed bypassing any authentication on the pages where these endpoints are usually used.
Server Action IDs can be disclosed to unauthenticated users via publicly served client artifacts (for example, static chunks containing action references).
Affected users are applications using App Router + Server Actions.
By itself, this disclosure is typically a recon/enumeration primitive; however, it can increase risk when combined with other weaknesses.
Workarounds
Never assume any authentication claims at the use cache or use server boundary. Always authenticate within the boundary.
When self-hosting Next.js with the default image loader, the Image Optimization API can optimize remotely hosted images if configured (not enabled by default). If those images contain malicious content, they can cause CPU exhaustion in /_next/image endpoints.
If you are using config.images.remotePatterns, only the patterns in that array are impacted.
If you are using config.images.unoptimized: true, you are NOT impacted.
If you are using config.images.loader: 'custom', you are NOT impacted.
If you are using Vercel, you are NOT impacted.
Workarounds
If you cannot upgrade immediately, you can avoid the expensive work by setting config.experimental.imgOptSkipMetadata : true.
A rewrites() or redirects() rule that builds its external destination hostname from request-controlled input can be pointed at an arbitrary hostname, regardless of the rule's hostname suffix. For a rewrite, Next.js proxies the request to that arbitrary host and serves the response from the application's origin, leading to Server-Side Request forgery. A redirects() rule configured this way is vulnerable to an Open Redirect.
This affects any destination that puts a dynamic segment in the hostname, whether from the path:
If you cannot upgrade immediately, do not build the hostname of an external rewrites() or redirects() destination from user-controlled input. If a dynamic subdomain is required, constrain the value to hostname-safe characters: value: '(?<region>[a-z0-9-]+)'.
A server-side fetch with a request body may return a cached response body from a different request to the same URL but different body. Confidential data in the POST's response body would then leak to unauthorized requests. Though the request itself will not be deduped.
This is only an issue when receiving request bodies with a content type charset other than UTF-8. For example, the UTF-16 byte sequences for 삃삃 and 섄섄 in the request body would share the same cache.
Workarounds
If you cannot upgrade, consider only making fetch requests with UTF-8 bodies (default in Next.js). Applications using Pages Router are not vulnerable.
A server-side fetch with a request body may return a cached response body from a different request to the same URL but different body. Confidential data in the POST's response body would then leak to unauthorized requests. Though the request itself will not be deduped.
This only applies to fetch calls with a request that has a different init than the one passed to fetch.
Safe: fetch(new Request(init), init)
Unsafe: fetch(new Request(init), aDifferentInit)
Workarounds
No workaround exists besides upgrading. Applications using Pages Router are not vulnerable.
When a Server Action forwards or redirects a request, an attacker can cause the server to send that outbound request to a malicious host (Server-Side Request Forgery). This requires the attacker's request to control Host-associated headers. In some configurations, it's also possible to obtain internal values that weaken middleware/proxy authorization.
Applications that use Server Actions are affected when the incoming host header is not fixed to a trusted value. This typically occurs on custom servers, or on deployments not behind a proxy that pins the host. Managed hosting pins the host upstream and is not affected; next start and standalone output do the same from version 14.2 onward.
Workarounds
If you cannot upgrade, ensure clients do not control the host header your application receives. Pin or validate Host and X-Forwarded-Host at your edge or proxy. On version 14.2.0 and later, you can additionally set the __NEXT_PRIVATE_ORIGIN environment variable to your deployment's real origin:
__NEXT_PRIVATE_ORIGIN=https://www.example.com node server.js
#### Severity
- CVSS Score: 8.3 / 10 (High)
- Vector String: `CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N`#### References
- [https://github.com/vercel/next.js/security/advisories/GHSA-89xv-2m56-2m9x](https://redirect.github.com/vercel/next.js/security/advisories/GHSA-89xv-2m56-2m9x)
- [https://github.com/vercel/next.js/commit/b51206321854193208c0805ba42acc49287f942b](https://redirect.github.com/vercel/next.js/commit/b51206321854193208c0805ba42acc49287f942b)
- [https://github.com/vercel/next.js/commit/e3e5666ccead3a15162793d697af5e48b7cc0498](https://redirect.github.com/vercel/next.js/commit/e3e5666ccead3a15162793d697af5e48b7cc0498)
- [https://github.com/vercel/next.js/releases/tag/v15.5.21](https://redirect.github.com/vercel/next.js/releases/tag/v15.5.21)
- [https://github.com/vercel/next.js/releases/tag/v16.2.11](https://redirect.github.com/vercel/next.js/releases/tag/v16.2.11)
- [https://github.com/advisories/GHSA-89xv-2m56-2m9x](https://redirect.github.com/advisories/GHSA-89xv-2m56-2m9x)
This data is provided by the [GitHub Advisory Database](https://redirect.github.com/advisories/GHSA-89xv-2m56-2m9x) ([CC-BY 4.0](https://redirect.github.com/github/advisory-database/blob/main/LICENSE.md)).
</details>
---
### Release Notes<details><summary>vercel/next.js (next)</summary>### [`v15.5.21`](https://redirect.github.com/vercel/next.js/compare/v15.5.20...v15.5.21)
[Compare Source](https://redirect.github.com/vercel/next.js/compare/v15.5.20...v15.5.21)
### [`v15.5.20`](https://redirect.github.com/vercel/next.js/releases/tag/v15.5.20)
[Compare Source](https://redirect.github.com/vercel/next.js/compare/v15.5.19...v15.5.20)
Contains no changes except publishing `@next/swc-wasm-web` which was accidentally not published since 15.5.15.
### [`v15.5.19`](https://redirect.github.com/vercel/next.js/releases/tag/v15.5.19): 15.5.19
[Compare Source](https://redirect.github.com/vercel/next.js/compare/v15.5.18...v15.5.19)
>\[!NOTE]
> This release is backporting bug fixes. It does **not** include all pending features/changes on canary.
##### Core Changes
- \[15.5.x] Don't drop `FormData` entries ([#​94244](https://redirect.github.com/vercel/next.js/issues/94244))##### Other- \[15.5.x] Fix CI ([#​94281](https://redirect.github.com/vercel/next.js/issues/94281))##### CreditsHuge thanks to [@​eps1lon](https://redirect.github.com/eps1lon) for helping!### [`v15.5.18`](https://redirect.github.com/vercel/next.js/releases/tag/v15.5.18)[Compare Source](https://redirect.github.com/vercel/next.js/compare/v15.5.16...v15.5.18)This release contains security fixes for the following advisories:High:- [GHSA-8h8q-6873-q5fj: Denial of Service with Server Components](https://redirect.github.com/vercel/next.js/security/advisories/GHSA-8h8q-6873-q5fj)- [GHSA-267c-6grr-h53f: Middleware / Proxy bypass in App Router applications via segment-prefetch routes](https://redirect.github.com/vercel/next.js/security/advisories/GHSA-267c-6grr-h53f)- [GHSA-26hh-7cqf-hhc6: Middleware / Proxy bypass in App Router applications via segment-prefetch routes - Incomplete Fix Follow-Up](https://redirect.github.com/vercel/next.js/security/advisories/GHSA-26hh-7cqf-hhc6)- [GHSA-mg66-mrh9-m8jx: Denial of Service via connection exhaustion in applications using Cache Components](https://redirect.github.com/vercel/next.js/security/advisories/GHSA-mg66-mrh9-m8jx)- [GHSA-492v-c6pp-mqqv: Middleware / Proxy bypass through dynamic route parameter injection](https://redirect.github.com/vercel/next.js/security/advisories/GHSA-492v-c6pp-mqqv)- [GHSA-c4j6-fc7j-m34r: Server-side request forgery in applications using WebSocket upgrades](https://redirect.github.com/vercel/next.js/security/advisories/GHSA-c4j6-fc7j-m34r)- [GHSA-36qx-fr4f-26g5: Middleware / Proxy bypass in Pages Router applications using i18n](https://redirect.github.com/vercel/next.js/security/advisories/GHSA-36qx-fr4f-26g5)Moderate:- [GHSA-ffhc-5mcf-pf4q: Cross-site scripting in App Router applications using CSP nonces](https://redirect.github.com/vercel/next.js/security/advisories/GHSA-ffhc-5mcf-pf4q)- [GHSA-gx5p-jg67-6x7h: Cross-site scripting in beforeInteractive scripts with untrusted input](https://redirect.github.com/vercel/next.js/security/advisories/GHSA-gx5p-jg67-6x7h)- [GHSA-h64f-5h5j-jqjh: Denial of Service in the Image Optimization API](https://redirect.github.com/vercel/next.js/security/advisories/GHSA-h64f-5h5j-jqjh)- [GHSA-wfc6-r584-vfw7: Cache poisoning in React Server Component responses](https://redirect.github.com/vercel/next.js/security/advisories/GHSA-wfc6-r584-vfw7)Low:- [GHSA-vfv6-92ff-j949: Cache poisoning via collisions in React Server Component cache-busting](https://redirect.github.com/vercel/next.js/security/advisories/GHSA-vfv6-92ff-j949)- [GHSA-3g8h-86w9-wvmq: Middleware / Proxy redirects can be cache-poisoned](https://redirect.github.com/vercel/next.js/security/advisories/GHSA-3g8h-86w9-wvmq)### [`v15.5.16`](https://redirect.github.com/vercel/next.js/releases/tag/v15.5.16)[Compare Source](https://redirect.github.com/vercel/next.js/compare/v15.5.15...v15.5.16)This release contains security fixes for the following advisories:High:- [GHSA-8h8q-6873-q5fj: Denial of Service with Server Components](https://redirect.github.com/vercel/next.js/security/advisories/GHSA-8h8q-6873-q5fj)- [GHSA-267c-6grr-h53f: Middleware / Proxy bypass in App Router applications via segment-prefetch routes](https://redirect.github.com/vercel/next.js/security/advisories/GHSA-267c-6grr-h53f)- [GHSA-mg66-mrh9-m8jx: Denial of Service via connection exhaustion in applications using Cache Components](https://redirect.github.com/vercel/next.js/security/advisories/GHSA-mg66-mrh9-m8jx)- [GHSA-492v-c6pp-mqqv: Middleware / Proxy bypass through dynamic route parameter injection](https://redirect.github.com/vercel/next.js/security/advisories/GHSA-492v-c6pp-mqqv)- [GHSA-c4j6-fc7j-m34r: Server-side request forgery in applications using WebSocket upgrades](https://redirect.github.com/vercel/next.js/security/advisories/GHSA-c4j6-fc7j-m34r)- [GHSA-36qx-fr4f-26g5: Middleware / Proxy bypass in Pages Router applications using i18n](https://redirect.github.com/vercel/next.js/security/advisories/GHSA-36qx-fr4f-26g5)Moderate:- [GHSA-ffhc-5mcf-pf4q: Cross-site scripting in App Router applications using CSP nonces](https://redirect.github.com/vercel/next.js/security/advisories/GHSA-ffhc-5mcf-pf4q)- [GHSA-gx5p-jg67-6x7h: Cross-site scripting in beforeInteractive scripts with untrusted input](https://redirect.github.com/vercel/next.js/security/advisories/GHSA-gx5p-jg67-6x7h)- [GHSA-h64f-5h5j-jqjh: Denial of Service in the Image Optimization API](https://redirect.github.com/vercel/next.js/security/advisories/GHSA-h64f-5h5j-jqjh)- [GHSA-wfc6-r584-vfw7: Cache poisoning in React Server Component responses](https://redirect.github.com/vercel/next.js/security/advisories/GHSA-wfc6-r584-vfw7)Low:- [GHSA-vfv6-92ff-j949: Cache poisoning via collisions in React Server Component cache-busting](https://redirect.github.com/vercel/next.js/security/advisories/GHSA-vfv6-92ff-j949)- [GHSA-3g8h-86w9-wvmq: Middleware / Proxy redirects can be cache-poisoned](https://redirect.github.com/vercel/next.js/security/advisories/GHSA-3g8h-86w9-wvmq)### [`v15.5.15`](https://redirect.github.com/vercel/next.js/releases/tag/v15.5.15)[Compare Source](https://redirect.github.com/vercel/next.js/compare/v15.5.14...v15.5.15)Please refer the following changelogs for more information about this security release:<https://vercel.com/changelog/summary-of-cve-2026-23869>### [`v15.5.14`](https://redirect.github.com/vercel/next.js/releases/tag/v15.5.14)[Compare Source](https://redirect.github.com/vercel/next.js/compare/v15.5.13...v15.5.14)> \[!NOTE]> This release is backporting bug fixes. It does **not** include all pending features/changes on canary.##### Core Changes- feat(next/image): add lru disk cache and images.maximumDiskCacheSize ([#​91660](https://redirect.github.com/vercel/next.js/issues/91660))- Fix(pages-router): restore Content-Length and ETag for /\_next/data/ JSON responses ([#​90304](https://redirect.github.com/vercel/next.js/issues/90304))##### CreditsHuge thanks to [@​styfle](https://redirect.github.com/styfle) and [@​lllomh](https://redirect.github.com/lllomh) for helping!### [`v15.5.13`](https://redirect.github.com/vercel/next.js/releases/tag/v15.5.13)[Compare Source](https://redirect.github.com/vercel/next.js/compare/v15.5.12...v15.5.13)> \[!NOTE]> This release is backporting bug fixes. It does **not** include all pending features/changes on canary.##### Core Changes- fix: patch http-proxy to prevent request smuggling in rewrites (See: [CVE-2026-29057](https://redirect.github.com/vercel/next.js/security/advisories/GHSA-ggv3-7p47-pfv8))##### CreditsHuge thanks to [@​ztanner](https://redirect.github.com/ztanner) for helping!### [`v15.5.12`](https://redirect.github.com/vercel/next.js/releases/tag/v15.5.12)[Compare Source](https://redirect.github.com/vercel/next.js/compare/v15.5.11...v15.5.12)> \[!NOTE]> This release is backporting bug fixes. It does **not** include all pending features/changes on canary.- fix unlock in publish-nativeThis is a re-release of [v15.5.11](https://redirect.github.com/vercel/next.js/releases/tag/v15.5.11) applying the turbopack changes.### [`v15.5.11`](https://redirect.github.com/vercel/next.js/releases/tag/v15.5.11)[Compare Source](https://redirect.github.com/vercel/next.js/compare/v15.5.10...v15.5.11)> \[!NOTE]> This release is backporting bug fixes. It does **not** include all pending features/changes on canary.##### Core Changes- Tracing: Fix memory leak in span map ([#​85529](https://redirect.github.com/vercel/next.js/issues/85529))- fix: ensure LRU cache items have minimum size of 1 to prevent unbounded growth ([#​89134](https://redirect.github.com/vercel/next.js/issues/89134))- Turbopack: fix NFT tracing of sharp 0.34 ([#​82340](https://redirect.github.com/vercel/next.js/issues/82340))- Turbopack: support pattern into exports field ([#​82757](https://redirect.github.com/vercel/next.js/issues/82757))- NFT tracing fixes ([#​84155](https://redirect.github.com/vercel/next.js/issues/84155) and [#​85323](https://redirect.github.com/vercel/next.js/issues/85323))- Turbopack: validate CSS without computing all paths ([#​83810](https://redirect.github.com/vercel/next.js/issues/83810))- feat: implement LRU cache with invocation ID scoping for minimal mode response cache ([#​89129](https://redirect.github.com/vercel/next.js/issues/89129))##### CreditsHuge thanks to [@​timneutkens](https://redirect.github.com/timneutkens), [@​mischnic](https://redirect.github.com/mischnic), [@​ztanner](https://redirect.github.com/ztanner), and [@​wyattjoh](https://redirect.github.com/wyattjoh) for helping!### [`v15.5.10`](https://redirect.github.com/vercel/next.js/releases/tag/v15.5.10)[Compare Source](https://redirect.github.com/vercel/next.js/compare/v15.5.9...v15.5.10)Please refer the following changelogs for more information about this security release:- <https://vercel.com/changelog/summaries-of-cve-2025-59471-and-cve-2025-59472>- <https://vercel.com/changelog/summary-of-cve-2026-23864>### [`v15.5.9`](https://redirect.github.com/vercel/next.js/releases/tag/v15.5.9)[Compare Source](https://redirect.github.com/vercel/next.js/compare/v15.5.8...v15.5.9)Please see the [Next.js Security Update](https://nextjs.org/blog/security-update-2025-12-11) for information about this security patch.</details>---### Configuration📅 **Schedule**: (UTC)- Branch creation - At any time (no schedule defined)- Automerge - At any time (no schedule defined)🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Mend Renovate](https://www.mend.io/renovate/) using a [curated preset](https://redirect.github.com/sanity-io/renovate-config#readme) maintained by [<picture><source media="(prefers-color-scheme: dark)" srcset="https://www.sanity.io/static/images/logo_white.svg?v=3"><img alt="Sanity" src="https://www.sanity.io/static/images/logo_black.svg?v=3" height="22" align="top"></picture>](https://www.sanity.io/?utm_source=github&utm_medium=referral&utm_campaign=ecosystem-renovate-preset). View repository job log [here](https://developer.mend.io/github/sanity-io/client)
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41OS4wIiwidXBkYXRlZEluVmVyIjoiNDMuMjgwLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbIvCfk6YgZGVwcyIsIvCfpJYgYm90Il19-->
renovateBot
changed the title
chore(deps): update dependency next to v15.5.9 [security]
chore(deps): update dependency next to v15.5.10 [security]
Feb 3, 2026
renovateBot
changed the title
chore(deps): update dependency next to v15.5.10 [security]
chore(deps): update dependency next to v15.5.13 [security]
Mar 18, 2026
renovateBot
changed the title
chore(deps): update dependency next to v15.5.13 [security]
chore(deps): update dependency next to v15.5.16 [security]
May 12, 2026
Next steps: Take a moment to review the security alert above. Review
the linked package source code to understand the potential risk. Ensure the
package is not malicious before proceeding. If you're unsure how to proceed,
reach out to your security team or ask the Socket team for help at
[email protected].
Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.
Mark the package as acceptable risk. To ignore this alert only
in this pull request, reply with the comment
@SocketSecurity ignore npm/[email protected]. You can
also ignore all packages with @SocketSecurity ignore-all.
To ignore an alert for all future pull requests, use Socket's Dashboard to
change the triage state of this alert.
renovateBot
changed the title
chore(deps): update dependency next to v15.5.16 [security]
chore(deps): update dependency next to v15.5.18 [security]
May 13, 2026
renovateBot
changed the title
chore(deps): update dependency next to v15.5.18 [security]
chore(deps): update dependency next to v15.5.21 [security]
Jul 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
15.5.8→15.5.21Next has a Denial of Service with Server Components - Incomplete Fix Follow-Up
GHSA-5j59-xgg2-r9c4
More information
Details
It was discovered that the fix for CVE-2025-55184 in React Server Components was incomplete and did not fully mitigate denial-of-service conditions across all payload types. As a result, certain crafted inputs could still trigger excessive resource consumption.
This vulnerability affects React versions 19.0.2, 19.1.3, and 19.2.2, as well as frameworks that bundle or depend on these versions, including Next.js 13.x, 14.x, 15.x, and 16.x when using the App Router. The issue is tracked upstream as CVE-2025-67779.
A malicious actor can send a specially crafted HTTP request to a Server Function endpoint that, when deserialized, causes the React Server Components runtime to enter an infinite loop. This can lead to sustained CPU consumption and cause the affected server process to become unresponsive, resulting in a denial-of-service condition 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 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 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 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 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 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:NReferences
This data is provided by 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 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 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 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 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 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 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 the GitHub Advisory Database (CC-BY 4.0).
Next.js: Denial of Service in App Router using Server Actions
CVE-2026-64641 / GHSA-m99w-x7hq-7vfj
More information
Details
Impact
Crafted requests targeting Next.js applications using App Router with at least one Server Action can lead to excessive CPU usage blocking processing of further requests in the same process.
Workarounds
No workaround exists besides upgrading. Applications using Pages Router or not using Server Actions are not vulnerable.
Severity
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Next.js: Unauthenticated disclosure of internal Server Function endpoints
CVE-2026-64643 / GHSA-955p-x3mx-jcvp
More information
Details
Impact
In Next.js applications using App Router, Server Actions (
use server) oruse cacheendpoints can be disclosed bypassing any authentication on the pages where these endpoints are usually used.Server Action IDs can be disclosed to unauthenticated users via publicly served client artifacts (for example, static chunks containing action references).
Affected users are applications using App Router + Server Actions.
By itself, this disclosure is typically a recon/enumeration primitive; however, it can increase risk when combined with other weaknesses.
Workarounds
Never assume any authentication claims at the
use cacheoruse serverboundary. Always authenticate within the boundary.Severity
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Next.js: Denial of Service in the Image Optimization API using SVGs
CVE-2026-64644 / GHSA-q8wf-6r8g-63ch
More information
Details
Impact
When self-hosting Next.js with the default image loader, the Image Optimization API can optimize remotely hosted images if configured (not enabled by default). If those images contain malicious content, they can cause CPU exhaustion in
/_next/imageendpoints.config.images.remotePatterns, only the patterns in that array are impacted.config.images.unoptimized: true, you are NOT impacted.config.images.loader: 'custom', you are NOT impacted.Workarounds
If you cannot upgrade immediately, you can avoid the expensive work by setting
config.experimental.imgOptSkipMetadata : true.Severity
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Next.js: Server-Side Request Forgery in rewrites via attacker-controlled destination hostname
CVE-2026-64645 / GHSA-p9j2-gv94-2wf4
More information
Details
Impact
A
rewrites()orredirects()rule that builds its external destination hostname from request-controlled input can be pointed at an arbitrary hostname, regardless of the rule's hostname suffix. For a rewrite, Next.js proxies the request to that arbitrary host and serves the response from the application's origin, leading to Server-Side Request forgery. Aredirects()rule configured this way is vulnerable to an Open Redirect.This affects any destination that puts a dynamic segment in the hostname, whether from the path:
or from a
hascapture:Workarounds
If you cannot upgrade immediately, do not build the hostname of an external
rewrites()orredirects()destination from user-controlled input. If a dynamic subdomain is required, constrain the value to hostname-safe characters:value: '(?<region>[a-z0-9-]+)'.Severity
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:L/VA:N/SC:L/SI:L/SA:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Next.js: Cache confusion of response bodies for requests with bodies containing invalid UTF-8 byte sequences
CVE-2026-64647 / GHSA-4633-3j49-mh5q
More information
Details
Impact
A server-side
fetchwith a request body may return a cached response body from a different request to the same URL but different body. Confidential data in thePOST's response body would then leak to unauthorized requests. Though the request itself will not be deduped.This is only an issue when receiving request bodies with a content type charset other than UTF-8. For example, the UTF-16 byte sequences for
삃삃and섄섄in the request body would share the same cache.Workarounds
If you cannot upgrade, consider only making fetch requests with UTF-8 bodies (default in Next.js). Applications using Pages Router are not vulnerable.
Severity
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Next.js: Cache confusion of response bodies for requests with bodies
CVE-2026-64648 / GHSA-68g3-v927-f742
More information
Details
Impact
A server-side
fetchwith a request body may return a cached response body from a different request to the same URL but different body. Confidential data in thePOST's response body would then leak to unauthorized requests. Though the request itself will not be deduped.This only applies to
fetchcalls with a request that has a different init than the one passed tofetch.Safe:
fetch(new Request(init), init)Unsafe:
fetch(new Request(init), aDifferentInit)Workarounds
No workaround exists besides upgrading. Applications using Pages Router are not vulnerable.
Severity
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:L/VA:N/SC:N/SI:N/SA:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Next.js: Server-Side Request Forgery in Server Actions on custom servers
CVE-2026-64649 / GHSA-89xv-2m56-2m9x
More information
Details
Impact
When a Server Action forwards or redirects a request, an attacker can cause the server to send that outbound request to a malicious host (Server-Side Request Forgery). This requires the attacker's request to control Host-associated headers. In some configurations, it's also possible to obtain internal values that weaken middleware/proxy authorization.
Applications that use Server Actions are affected when the incoming host header is not fixed to a trusted value. This typically occurs on custom servers, or on deployments not behind a proxy that pins the host. Managed hosting pins the host upstream and is not affected;
next startand standalone output do the same from version 14.2 onward.Workarounds
If you cannot upgrade, ensure clients do not control the host header your application receives. Pin or validate
HostandX-Forwarded-Hostat your edge or proxy. On version 14.2.0 and later, you can additionally set the__NEXT_PRIVATE_ORIGINenvironment variable to your deployment's real origin: