Skip to content

chore(deps): update dependency next to v16.2.6 [security]#534

Open
svc-secops wants to merge 1 commit into
mainfrom
renovate/npm-next-vulnerability
Open

chore(deps): update dependency next to v16.2.6 [security]#534
svc-secops wants to merge 1 commit into
mainfrom
renovate/npm-next-vulnerability

Conversation

@svc-secops

@svc-secops svc-secops commented Dec 24, 2025

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
next (source) ^15.2.3 || ^16.0.0^16.2.6 ^16.2.6 age adoption passing confidence
next (source) 16.0.816.2.6 age adoption passing confidence
next (source) ^15.2.3^15.2.3 || ^16.0.0 age adoption passing confidence

GitHub 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 remotePatterns configured 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 that remotePatterns is 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: 1 header and processes attacker-controlled postponed state data. Two closely related vulnerabilities allow an attacker to crash the server process through memory exhaustion:

  1. 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.

  2. 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: true or cacheComponents: true configured 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 Score: 7.5 / 10 (High)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

References

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 Score: 5.3 / 10 (Medium)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N

References

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 Score: 7.5 / 10 (High)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

References

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: 1 header and processes attacker-controlled postponed state data. Two closely related vulnerabilities allow an attacker to crash the server process through memory exhaustion:

  1. 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.

  2. 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: true or cacheComponents: true configured 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 Score: 5.9 / 10 (Medium)
  • Vector String: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H

References

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 remotePatterns configured 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 that remotePatterns is 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 Score: 5.9 / 10 (Medium)
  • Vector String: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H

References

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. Setting maximumDiskCacheSize: 0 disables disk caching.

Workarounds

If upgrade is not immediately possible:

  • Periodically clean .next/cache/images.
  • Reduce variant cardinality (e.g., tighten values for images.localPatterns, images.remotePatterns, and images.qualities)

Severity

  • CVSS Score: 6.9 / 10 (Medium)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N

References

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/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.

Severity

  • CVSS Score: 6.3 / 10 (Medium)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N

References

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: 1 header (corresponding with a PPR resume request) would buffer request bodies without consistently enforcing maxPostponedStateSize in 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.ppr or cacheComponents), an attacker could send oversized next-resume POST 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:

  • Block requests containing the next-resume header, as this is never valid to be sent from an untrusted client.

Severity

  • CVSS Score: 6.9 / 10 (Medium)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N

References

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 treat Origin: null as a bypass case even when allowedDevOrigins is 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 dev server with allowedDevOrigins configured, 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: null through the same cross-site origin-allowance checks used for other origins on internal development endpoints.

Workarounds

If upgrade is not immediately possible:

  • Do not expose next dev to untrusted networks.
  • If you use allowedDevOrigins, reject requests and websocket upgrades with Origin: null for internal dev endpoints at your proxy.

Severity

  • CVSS Score: 2.3 / 10 (Low)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N

References

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: null was 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 in experimental.serverActions.allowedOrigins.

Workarounds

If upgrade is not immediately possible:

  • Add CSRF tokens for sensitive Server Actions.
  • Prefer SameSite=Strict on sensitive auth cookies.
  • Do not allow 'null' in serverActions.allowedOrigins unless intentionally required and additionally protected.

Severity

  • CVSS Score: 5.3 / 10 (Medium)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N

References

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 Score: 7.5 / 10 (High)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

References

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 .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.

Severity

  • CVSS Score: 7.5 / 10 (High)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

References

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 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.

Severity

  • CVSS Score: 7.5 / 10 (High)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

References

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-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

Severity

  • CVSS Score: 3.7 / 10 (Low)
  • Vector String: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L

References

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 Score: 8.1 / 10 (High)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N

References

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 Score: 7.5 / 10 (High)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

References

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 Score: 8.6 / 10 (High)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N

References

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-Policy request headers from untrusted traffic.

Severity

  • CVSS Score: 4.7 / 10 (Medium)
  • Vector String: CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N

References

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 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.

Severity

  • CVSS Score: 6.1 / 10 (Medium)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N

References

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/image endpoint that match the images.localPatterns configuration (by default, all patterns are allowed).

  • If you are using images.localPatterns, only the patterns in that array are impacted.
  • If you are using images.unoptimized: true, you are NOT impacted.
  • If you are using images.loader: 'custom', you are NOT impacted.
  • If you are using Vercel, 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.maximumResponseBody configuration.

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 Score: 5.9 / 10 (Medium)
  • Vector String: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H

References

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-Resume header at the edge.

Severity

  • CVSS Score: 7.5 / 10 (High)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

References

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 _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.

Severity

  • CVSS Score: 3.7 / 10 (Low)
  • Vector String: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N

References

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 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.

Severity

  • CVSS Score: 5.4 / 10 (Medium)
  • Vector String: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:L/A:L

References

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.ts with Turbopack. Refer to CVE-2026-44575 for further details.

References

Severity

  • CVSS Score: 7.5 / 10 (High)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

@svc-secops svc-secops requested a review from a team as a code owner December 24, 2025 15:47
@svc-secops svc-secops added dependencies Pull requests that update a dependency file vulnerability labels Dec 24, 2025
@svc-secops

svc-secops commented Dec 24, 2025

Copy link
Copy Markdown
Contributor Author

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: yarn.lock
➤ YN0000: · Yarn 4.9.1
➤ YN0000: ┌ Resolution step
➤ YN0000: └ Completed in 1s 388ms
➤ YN0000: ┌ Post-resolution validation
➤ YN0060: │ @types/react is listed by your project with version 19.2.7 (peddff), which doesn't satisfy what react-focus-lock (via @chakra-ui/react) and other dependencies request (but they have non-overlapping ranges!).
➤ YN0060: │ @yarnpkg/core is listed by your project with version 4.2.0 (p4e948), which doesn't satisfy what @yarnpkg/cli and other dependencies request (^4.4.1).
➤ YN0060: │ graphql is listed by your project with version 17.0.0-alpha.2 (p1eb2e), which doesn't satisfy what @apollo/client and other dependencies request (^16.0.0).
➤ YN0060: │ graphql is listed by your project with version 17.0.0-alpha.2 (p1ecf7), which doesn't satisfy what @apollo/client and other dependencies request (^16.0.0).
➤ YN0060: │ graphql is listed by your project with version 17.0.0-alpha.2 (p2be3d), which doesn't satisfy what @apollo/client and other dependencies request (^16.0.0).
➤ YN0060: │ graphql is listed by your project with version 17.0.0-alpha.2 (p38093), which doesn't satisfy what @apollo/client and other dependencies request (^16.6.0).
➤ YN0060: │ graphql is listed by your project with version 17.0.0-alpha.2 (p4b3c5), which doesn't satisfy what @apollo/client and other dependencies request (^16.6.0).
➤ YN0060: │ graphql is listed by your project with version 17.0.0-alpha.2 (p74662), which doesn't satisfy what @apollo/client and other dependencies request (^16.0.0).
➤ YN0060: │ graphql is listed by your project with version 17.0.0-alpha.2 (p7c14e), which doesn't satisfy what @apollo/client and other dependencies request (^16.0.0).
➤ YN0060: │ graphql is listed by your project with version 17.0.0-alpha.2 (p9d845), which doesn't satisfy what @apollo/client and other dependencies request (^16.0.0).
➤ YN0060: │ graphql is listed by your project with version 17.0.0-alpha.2 (pa1182), which doesn't satisfy what @apollo/client and other dependencies request (^16.0.0).
➤ YN0060: │ graphql is listed by your project with version 17.0.0-alpha.2 (pc1d15), which doesn't satisfy what @apollo/client and other dependencies request (^16.0.0).
➤ YN0060: │ graphql is listed by your project with version 17.0.0-alpha.2 (pc49da), which doesn't satisfy what @apollo/client and other dependencies request (^16.0.0).
➤ YN0060: │ graphql is listed by your project with version 17.0.0-alpha.2 (pd4beb), which doesn't satisfy what @apollo/client and other dependencies request (^16.6.0).
➤ YN0060: │ graphql is listed by your project with version 17.0.0-alpha.2 (pd9955), which doesn't satisfy what @apollo/client and other dependencies request (^16.0.0).
➤ YN0060: │ graphql is listed by your project with version 17.0.0-alpha.2 (pf0659), which doesn't satisfy what @apollo/client and other dependencies request (^16.0.0).
➤ YN0060: │ next is listed by your project with version 16.0.8 (p27d9f), which doesn't satisfy what @apollo/client-integration-nextjs and other dependencies request (but they have non-overlapping ranges!).
➤ YN0060: │ next is listed by your project with version 16.0.8 (p39b21), which doesn't satisfy what @apollo/client-integration-nextjs requests (^16.2.6).
➤ YN0060: │ next is listed by your project with version 16.0.8 (p79233), which doesn't satisfy what @apollo/client-integration-nextjs and other dependencies request (^16.2.6).
➤ YN0060: │ next is listed by your project with version 16.0.8 (pc1717), which doesn't satisfy what @apollo/client-integration-nextjs and other dependencies request (but they have non-overlapping ranges!).
➤ YN0060: │ react is listed by your project with version 19.2.3 (pd410a), which doesn't satisfy what framer-motion and other dependencies request (but they have non-overlapping ranges!).
➤ YN0060: │ react is listed by your project with version 19.2.3 (pf06e9), which doesn't satisfy what ssr-only-secrets and other dependencies request (but they have non-overlapping ranges!).
➤ YN0060: │ react-dom is listed by your project with version 19.2.3 (p21a4c), which doesn't satisfy what framer-motion and other dependencies request (^18.2.0).
➤ YN0002: │ @apollo/client-integration-tanstack-start@workspace:packages/tanstack-start doesn't provide vite (p58222), requested by @tanstack/react-start.
➤ YN0002: │ @apollo/client-react-streaming@workspace:packages/client-react-streaming [fc55e] doesn't provide webpack (p25bda), requested by react-server-dom-webpack.
➤ YN0002: │ @apollo/client-react-streaming@workspace:packages/client-react-streaming doesn't provide webpack (p5ca41), requested by react-server-dom-webpack.
➤ YN0002: │ @integration-test/jest@workspace:integration-test/jest doesn't provide @testing-library/dom (p47416), requested by @testing-library/react and other dependencies.
➤ YN0002: │ @integration-test/vitest@workspace:integration-test/vitest doesn't provide @testing-library/dom (p1caec), requested by @testing-library/react.
➤ YN0002: │ @integration-test/vitest@workspace:integration-test/vitest doesn't provide vite (pc1d9a), requested by @vitejs/plugin-react.
➤ YN0002: │ @internal/test-utils@workspace:packages/test-utils doesn't provide @jest/globals (pc7d0f), requested by @testing-library/react-render-stream.
➤ YN0002: │ @internal/test-utils@workspace:packages/test-utils doesn't provide expect (p25412), requested by @testing-library/react-render-stream.
➤ YN0002: │ @internal/test-utils@workspace:packages/test-utils doesn't provide jsdom (p35d94), requested by global-jsdom.
➤ YN0002: │ monorepo@workspace:. doesn't provide webpack (p5bc50), requested by @size-limit/webpack-why.
➤ YN0002: │ packages-shared@workspace:packages doesn't provide typescript (p496ab), requested by @typescript-eslint/eslint-plugin and other dependencies.
➤ YN0086: │ Some peer dependencies are incorrectly met by your project; run yarn explain peer-requirements <hash> for details, where <hash> is the six-letter p-prefixed code.
➤ YN0086: │ Some peer dependencies are incorrectly met by dependencies; run yarn explain peer-requirements for details.
➤ YN0000: └ Completed
➤ YN0000: ┌ Fetch step

@changeset-bot

changeset-bot Bot commented Dec 24, 2025

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: e64350e

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@vercel

vercel Bot commented Dec 24, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
apollo__client-integration-react-router Error Error Jun 4, 2026 12:05pm
apollo__client-integration-tanstack-start Error Error Jun 4, 2026 12:05pm
apollo__experimental-nextjs-app-support Building Building Preview Jun 4, 2026 12:05pm

@netlify

netlify Bot commented Dec 24, 2025

Copy link
Copy Markdown

Deploy Preview for apollo-client-nextjs-docmodel failed.

Name Link
🔨 Latest commit e64350e
🔍 Latest deploy log https://app.netlify.com/projects/apollo-client-nextjs-docmodel/deploys/6a216784bab57b00081ca9a4

@coderabbitai

coderabbitai Bot commented Mar 2, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

Updated Next.js peer dependency ranges in two packages: experimental-nextjs-app-support now accepts ^15.2.3 || ^16.0.0; nextjs replaces its previous multi-range with a duplicated/pinned-style "^16.2.6 ^16.2.6".

Changes

Next.js peer dependency updates

Layer / File(s) Summary
Expand support in experimental-nextjs-app-support
packages/experimental-nextjs-app-support/package.json
Changed peerDependencies.next from ^15.2.3 to `^15.2.3
Change spec in nextjs package
packages/nextjs/package.json
Replaced peerDependencies.next value `^15.2.3

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately reflects the main change: updating Next.js dependency to v16.2.6 for security reasons, which matches the PR's primary objective of addressing multiple security vulnerabilities.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch renovate/npm-next-vulnerability

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 43b0a18 and a9c701a.

📒 Files selected for processing (2)
  • packages/experimental-nextjs-app-support/package.json
  • packages/nextjs/package.json

"peerDependencies": {
"@apollo/client": "^4.0.0",
"next": "^15.2.3",
"next": "^15.2.3 || ^16.0.0",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 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:

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:

  1. 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]
  2. 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:


🌐 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:


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.

Comment thread packages/nextjs/package.json Outdated
"peerDependencies": {
"@apollo/client": "^4.0.0",
"next": "^15.2.3 || ^16.0.0",
"next": "^16.1.5 ^16.1.5",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

cat -n packages/nextjs/package.json | head -120 | tail -20

Repository: apollographql/apollo-client-integrations

Length of output: 664


🏁 Script executed:

# Check the full context around line 107
sed -n '100,115p' packages/nextjs/package.json

Repository: 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 -10

Repository: 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 -20

Repository: 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 -60

Repository: 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 -30

Repository: 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 -5

Repository: 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 -50

Repository: 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 -100

Repository: 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 -20

Repository: 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.json

Repository: 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 -10

Repository: 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 -10

Repository: 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 -50

Repository: 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.

Suggested change
"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.

@svc-secops svc-secops force-pushed the renovate/npm-next-vulnerability branch from a9c701a to 02109df Compare April 16, 2026 11:44
@svc-secops svc-secops changed the title chore(deps): update dependency next [security] chore(deps): update dependency next to v16.2.3 [security] Apr 16, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

♻️ Duplicate comments (1)
packages/nextjs/package.json (1)

107-107: ⚠️ Potential issue | 🟠 Major

Restore the next peer 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

📥 Commits

Reviewing files that changed from the base of the PR and between a9c701a and 02109df.

📒 Files selected for processing (2)
  • packages/experimental-nextjs-app-support/package.json
  • packages/nextjs/package.json
✅ Files skipped from review due to trivial changes (1)
  • packages/experimental-nextjs-app-support/package.json

@svc-secops svc-secops changed the title chore(deps): update dependency next to v16.2.3 [security] chore(deps): update dependency next [security] Apr 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file vulnerability

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant