-
Notifications
You must be signed in to change notification settings - Fork 2
fix(deps): update dependency next to v15.4.10 [security] #581
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
|
|
The latest updates on your projects. Learn more about Vercel for GitHub.
1 Skipped Deployment
|
cb3e889 to
ec9b7b8
Compare
ec9b7b8 to
905fd2a
Compare
1a8df68 to
6831874
Compare
6831874 to
41443a4
Compare
41443a4 to
3cca751
Compare
| "fast-average-color": "9.3.0", | ||
| "lucide-react": "^0.468.0", | ||
| "next": "14.2.35", | ||
| "next": "15.4.10", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Next.js was upgraded from 14.2.35 to 15.4.10, but eslint-config-next was not updated from 14.2.14. These versions should be kept in sync to ensure ESLint uses the correct configuration rules for the Next.js version being used.
View Details
📝 Patch Details
diff --git a/apps/namegraph.dev/package.json b/apps/namegraph.dev/package.json
index a866c60..e1789d3 100644
--- a/apps/namegraph.dev/package.json
+++ b/apps/namegraph.dev/package.json
@@ -52,7 +52,7 @@
"@types/react": "18.3.1",
"@types/react-dom": "18.3.1",
"eslint": "8.57.1",
- "eslint-config-next": "14.2.14",
+ "eslint-config-next": "15.4.10",
"postcss": "8.4.47",
"tailwindcss": "3.4.13",
"typescript": "5.6.2"
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 325f9f8..190448a 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -43,7 +43,7 @@ importers:
version: 5.0.5
next:
specifier: 15.4.10
- version: 15.4.10(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 15.4.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react:
specifier: 18.3.1
version: 18.3.1
@@ -285,8 +285,8 @@ importers:
specifier: 8.57.1
version: 8.57.1
eslint-config-next:
- specifier: 14.2.14
- version: 14.2.14(eslint@8.57.1)(typescript@5.6.2)
+ specifier: 15.4.10
+ version: 15.4.10(eslint@8.57.1)(typescript@5.6.2)
postcss:
specifier: 8.4.47
version: 8.4.47
@@ -331,7 +331,7 @@ importers:
version: 5.0.5
next:
specifier: 15.4.10
- version: 15.4.10(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 15.4.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react:
specifier: 18.3.1
version: 18.3.1
@@ -416,7 +416,7 @@ importers:
version: 2.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
next:
specifier: 15.4.10
- version: 15.4.10(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 15.4.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react:
specifier: 18.3.1
version: 18.3.1
@@ -504,7 +504,7 @@ importers:
version: 2.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
next:
specifier: 15.4.10
- version: 15.4.10(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 15.4.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react:
specifier: 18.3.1
version: 18.3.1
@@ -620,7 +620,7 @@ importers:
version: 5.0.5
next:
specifier: 15.4.10
- version: 15.4.10(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 15.4.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react:
specifier: 18.3.1
version: 18.3.1
@@ -657,7 +657,7 @@ importers:
devDependencies:
next:
specifier: 15.4.10
- version: 15.4.10(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 15.4.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react:
specifier: 18.3.1
version: 18.3.1
@@ -2120,6 +2120,9 @@ packages:
'@next/eslint-plugin-next@15.1.9':
resolution: {integrity: sha512-H7CuatO2RXQQmm40cX3C6kFPNh/v6Dx2oEy1iKZKfubL0mhuuDMBLSUdwu5JgCP1mtuPBufK1h7WSIVjBADZtw==}
+ '@next/eslint-plugin-next@15.4.10':
+ resolution: {integrity: sha512-WXbIDBQ+IVnsSe5BSfOpj48pZigOp2SIaq3JcQ9DEoqm7fcSsqEFcLBU4xtnoDpWzGx4pNTchCxRcDaItO73aA==}
+
'@next/swc-darwin-arm64@15.4.8':
resolution: {integrity: sha512-Pf6zXp7yyQEn7sqMxur6+kYcywx5up1J849psyET7/8pG2gQTVMjU3NzgIt8SeEP5to3If/SaWmaA6H6ysBr1A==}
engines: {node: '>= 10'}
@@ -4168,6 +4171,15 @@ packages:
typescript:
optional: true
+ eslint-config-next@15.4.10:
+ resolution: {integrity: sha512-iJLJPTWkXlQo07mdJ+861c3I0T5UXDv9iE/dYJwceRW5a9OqXzcLwCHW4aBfOqHa0aJRWife64snHbQgLXamOA==}
+ peerDependencies:
+ eslint: ^7.23.0 || ^8.0.0 || ^9.0.0
+ typescript: '>=3.3.1'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
eslint-import-resolver-node@0.3.9:
resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
@@ -8138,7 +8150,7 @@ snapshots:
'@ethereumjs/tx': 4.2.0
'@types/debug': 4.1.12
debug: 4.4.0
- semver: 7.6.3
+ semver: 7.7.3
superstruct: 1.0.4
transitivePeerDependencies:
- supports-color
@@ -8152,7 +8164,7 @@ snapshots:
'@types/debug': 4.1.12
debug: 4.4.0
pony-cause: 2.1.11
- semver: 7.6.3
+ semver: 7.7.3
uuid: 9.0.1
transitivePeerDependencies:
- supports-color
@@ -8166,7 +8178,7 @@ snapshots:
'@types/debug': 4.1.12
debug: 4.4.0
pony-cause: 2.1.11
- semver: 7.6.3
+ semver: 7.7.3
uuid: 9.0.1
transitivePeerDependencies:
- supports-color
@@ -8301,6 +8313,10 @@ snapshots:
dependencies:
fast-glob: 3.3.1
+ '@next/eslint-plugin-next@15.4.10':
+ dependencies:
+ fast-glob: 3.3.1
+
'@next/swc-darwin-arm64@15.4.8':
optional: true
@@ -10898,8 +10914,8 @@ snapshots:
'@typescript-eslint/parser': 8.19.1(eslint@8.57.1)(typescript@5.6.2)
eslint: 8.57.1
eslint-import-resolver-node: 0.3.9
- eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0)(eslint@8.57.1)
- eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.19.1(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1)
+ eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.19.1(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1)
+ eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.19.1(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.19.1(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1)
eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1)
eslint-plugin-react: 7.37.3(eslint@8.57.1)
eslint-plugin-react-hooks: 5.0.0-canary-7118f5dd7-20230705(eslint@8.57.1)
@@ -10918,8 +10934,28 @@ snapshots:
'@typescript-eslint/parser': 8.19.1(eslint@8.57.1)(typescript@5.6.2)
eslint: 8.57.1
eslint-import-resolver-node: 0.3.9
+ eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.19.1(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1)
+ eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.19.1(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.19.1(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1)
+ eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1)
+ eslint-plugin-react: 7.37.3(eslint@8.57.1)
+ eslint-plugin-react-hooks: 5.2.0(eslint@8.57.1)
+ optionalDependencies:
+ typescript: 5.6.2
+ transitivePeerDependencies:
+ - eslint-import-resolver-webpack
+ - eslint-plugin-import-x
+ - supports-color
+
+ eslint-config-next@15.4.10(eslint@8.57.1)(typescript@5.6.2):
+ dependencies:
+ '@next/eslint-plugin-next': 15.4.10
+ '@rushstack/eslint-patch': 1.10.5
+ '@typescript-eslint/eslint-plugin': 8.19.1(@typescript-eslint/parser@8.19.1(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2)
+ '@typescript-eslint/parser': 8.19.1(eslint@8.57.1)(typescript@5.6.2)
+ eslint: 8.57.1
+ eslint-import-resolver-node: 0.3.9
eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0)(eslint@8.57.1)
- eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.19.1(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1)
+ eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.19.1(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)
eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1)
eslint-plugin-react: 7.37.3(eslint@8.57.1)
eslint-plugin-react-hooks: 5.2.0(eslint@8.57.1)
@@ -10938,6 +10974,22 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.19.1(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1):
+ dependencies:
+ '@nolyfill/is-core-module': 1.0.39
+ debug: 4.4.0
+ enhanced-resolve: 5.18.0
+ eslint: 8.57.1
+ fast-glob: 3.3.3
+ get-tsconfig: 4.8.1
+ is-bun-module: 1.3.0
+ is-glob: 4.0.3
+ stable-hash: 0.0.4
+ optionalDependencies:
+ eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.19.1(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.19.1(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1)
+ transitivePeerDependencies:
+ - supports-color
+
eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0)(eslint@8.57.1):
dependencies:
'@nolyfill/is-core-module': 1.0.39
@@ -10950,22 +11002,22 @@ snapshots:
is-glob: 4.0.3
stable-hash: 0.0.4
optionalDependencies:
- eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.19.1(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1)
+ eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.19.1(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)
transitivePeerDependencies:
- supports-color
- eslint-module-utils@2.12.0(@typescript-eslint/parser@8.19.1(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1):
+ eslint-module-utils@2.12.0(@typescript-eslint/parser@8.19.1(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.19.1(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1):
dependencies:
debug: 3.2.7
optionalDependencies:
'@typescript-eslint/parser': 8.19.1(eslint@8.57.1)(typescript@5.6.2)
eslint: 8.57.1
eslint-import-resolver-node: 0.3.9
- eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0)(eslint@8.57.1)
+ eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.19.1(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1)
transitivePeerDependencies:
- supports-color
- eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.19.1(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1):
+ eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.19.1(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.19.1(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1):
dependencies:
'@rtsao/scc': 1.1.0
array-includes: 3.1.8
@@ -10976,7 +11028,36 @@ snapshots:
doctrine: 2.1.0
eslint: 8.57.1
eslint-import-resolver-node: 0.3.9
- eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.19.1(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1)
+ eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.19.1(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.19.1(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1)
+ hasown: 2.0.2
+ is-core-module: 2.16.1
+ is-glob: 4.0.3
+ minimatch: 3.1.2
+ object.fromentries: 2.0.8
+ object.groupby: 1.0.3
+ object.values: 1.2.1
+ semver: 6.3.1
+ string.prototype.trimend: 1.0.9
+ tsconfig-paths: 3.15.0
+ optionalDependencies:
+ '@typescript-eslint/parser': 8.19.1(eslint@8.57.1)(typescript@5.6.2)
+ transitivePeerDependencies:
+ - eslint-import-resolver-typescript
+ - eslint-import-resolver-webpack
+ - supports-color
+
+ eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.19.1(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1):
+ dependencies:
+ '@rtsao/scc': 1.1.0
+ array-includes: 3.1.8
+ array.prototype.findlastindex: 1.2.5
+ array.prototype.flat: 1.3.3
+ array.prototype.flatmap: 1.3.3
+ debug: 3.2.7
+ doctrine: 2.1.0
+ eslint: 8.57.1
+ eslint-import-resolver-node: 0.3.9
+ eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.19.1(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.19.1(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1)
hasown: 2.0.2
is-core-module: 2.16.1
is-glob: 4.0.3
@@ -11670,7 +11751,7 @@ snapshots:
is-bun-module@1.3.0:
dependencies:
- semver: 7.6.3
+ semver: 7.7.3
is-callable@1.2.7: {}
@@ -12160,7 +12241,7 @@ snapshots:
postcss: 8.4.31
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
- styled-jsx: 5.1.6(@babel/core@7.26.0)(react@18.3.1)
+ styled-jsx: 5.1.6(react@18.3.1)
optionalDependencies:
'@next/swc-darwin-arm64': 15.4.8
'@next/swc-darwin-x64': 15.4.8
@@ -12174,7 +12255,6 @@ snapshots:
transitivePeerDependencies:
- '@babel/core'
- babel-plugin-macros
- optional: true
next@15.4.10(react-dom@19.0.1(react@19.0.1))(react@19.0.1):
dependencies:
@@ -12918,8 +12998,7 @@ snapshots:
semver@7.6.3: {}
- semver@7.7.3:
- optional: true
+ semver@7.7.3: {}
send@0.19.0:
dependencies:
@@ -13302,6 +13381,11 @@ snapshots:
optionalDependencies:
'@babel/core': 7.26.0
+ styled-jsx@5.1.6(react@18.3.1):
+ dependencies:
+ client-only: 0.0.1
+ react: 18.3.1
+
styled-jsx@5.1.6(react@19.0.1):
dependencies:
client-only: 0.0.1
Analysis
ESLint configuration version mismatch with Next.js 15.4.10
What fails: eslint-config-next@14.2.14 provides ESLint rules tailored for Next.js 14.x, but Next.js has been upgraded to 15.4.10. This causes ESLint to miss Next.js 15-specific linting rules, allowing code that violates Next.js 15 best practices to pass linting.
How to reproduce:
cd apps/namegraph.dev
pnpm lintCurrent behavior: With eslint-config-next@14.2.14, the linter does not report an error on line 50 of app/layout.tsx which uses an HTML <a> tag for navigation instead of Next.js <Link> component.
Expected behavior: ESLint should enforce Next.js 15-specific rules from @next/eslint-plugin-next@15.4.10. With the fix, running lint now correctly reports:
./app/layout.tsx
50:21 Error: Do not use an `<a>` element to navigate to `/`. Use `<Link />` from `next/link` instead. See: https://nextjs.org/docs/messages/no-html-link-for-pages @next/next/no-html-link-for-pages
Why this matters: The official Next.js 15 upgrade guide explicitly recommends updating eslint-config-next alongside Next.js, and this pattern has been identified as a bug by other projects (e.g., Nx issue #30257 with merged fix).
Fix: Update eslint-config-next from 14.2.14 to 15.4.10 in apps/namegraph.dev/package.json to match the installed Next.js version.
| "@vercel/speed-insights": "1.0.12", | ||
| "classcat": "5.0.5", | ||
| "next": "14.2.35", | ||
| "next": "15.4.10", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Next.js was upgraded from 14.2.35 to 15.4.10, but eslint-config-next was not updated from 14.2.14. These versions should be kept in sync to ensure ESLint uses the correct configuration rules for the Next.js version being used.
View Details
📝 Patch Details
diff --git a/apps/nameguard.io/package.json b/apps/nameguard.io/package.json
index b54aa48..99ed69e 100644
--- a/apps/nameguard.io/package.json
+++ b/apps/nameguard.io/package.json
@@ -30,7 +30,7 @@
"@types/react-dom": "18.3.1",
"autoprefixer": "10.4.20",
"eslint": "8.57.1",
- "eslint-config-next": "14.2.14",
+ "eslint-config-next": "15.4.10",
"postcss": "8.4.47",
"tailwind-scrollbar-hide": "1.1.7",
"tailwindcss": "3.4.13",
Analysis
ESLint Config Version Mismatch in apps/nameguard.io
What fails: eslint-config-next@14.2.14 in apps/nameguard.io/package.json is incompatible with next@15.4.10. The ESLint configuration does not include Next.js 15-specific rules and enforcement patterns, potentially missing linting errors specific to the newer framework version.
How to reproduce:
# In a Next.js 15.4.10 project with eslint-config-next 14.2.14:
npm run lint # or next lint
# ESLint runs with configuration rules designed for Next.js 14.2, not 15.4Result: ESLint configuration rules are based on Next.js 14.2, missing newer rules and patterns introduced in Next.js 15.4
Expected: Per Next.js 15 upgrade guide, when upgrading Next.js, eslint-config-next should be updated to the same major.minor version. The correct dependency should be eslint-config-next@15.4.10 to match next@15.4.10.
Additional context: This pattern was also identified and fixed in the Nx workspace generator (https://github.com/nrwl/nx/pull/30258), which had the same issue of installing Next.js 15 with eslint-config-next 14. The fix is to maintain version parity between the packages.
This PR contains the following updates:
14.2.35→15.4.1015.1.11→15.4.10GitHub Vulnerability Alerts
CVE-2025-29927
Impact
It is possible to bypass authorization checks within a Next.js application, if the authorization check occurs in middleware.
Patches
15.2.314.2.25Note: Next.js deployments hosted on Vercel are automatically protected against this vulnerability.
Workaround
If patching to a safe version is infeasible, we recommend that you prevent external user requests which contain the
x-middleware-subrequestheader from reaching your Next.js application.Credits
CVE-2025-48068
Summary
A low-severity vulnerability in Next.js has been fixed in version 15.2.2. This issue may have allowed limited source code exposure when the dev server was running with the App Router enabled. The vulnerability only affects local development environments and requires the user to visit a malicious webpage while
npm run devis active.Because the mitigation is potentially a breaking change for some development setups, to opt-in to the fix, you must configure
allowedDevOriginsin your next config after upgrading to a patched version. Learn more.Learn more: https://vercel.com/changelog/cve-2025-48068
Credit
Thanks to sapphi-red and Radman Siddiki for responsibly disclosing this issue.
CVE-2025-55173
A vulnerability in Next.js Image Optimization has been fixed in v15.4.5 and v14.2.31. The issue allowed attacker-controlled external image sources to trigger file downloads with arbitrary content and filenames under specific configurations. This behavior could be abused for phishing or malicious file delivery.
All users relying on
images.domainsorimages.remotePatternsare encouraged to upgrade and verify that external image sources are strictly validated.More details at Vercel Changelog
CVE-2025-57822
A vulnerability in Next.js Middleware has been fixed in v14.2.32 and v15.4.7. The issue occurred when request headers were directly passed into
NextResponse.next(). In self-hosted applications, this could allow Server-Side Request Forgery (SSRF) if certain sensitive headers from the incoming request were reflected back into the response.All users implementing custom middleware logic in self-hosted environments are strongly encouraged to upgrade and verify correct usage of the
next()function.More details at Vercel Changelog
CVE-2025-57752
A vulnerability in Next.js Image Optimization has been fixed in v15.4.5 and v14.2.31. When images returned from API routes vary based on request headers (such as
CookieorAuthorization), these responses could be incorrectly cached and served to unauthorized users due to a cache key confusion bug.All users are encouraged to upgrade if they use API routes to serve images that depend on request headers and have image optimization enabled.
More details at Vercel Changelog
Release Notes
vercel/next.js (next)
v15.4.10Compare Source
v15.4.9Compare Source
v15.4.8Compare Source
v15.4.7Compare Source
Core Changes
Credits
Huge thanks to @ztanner for helping!
v15.4.6Compare Source
Core Changes
_errorpage'sreq.urlcan be overwritten to dynamic param on minimal mode (#82347)?dplto fonts in/_next/static/media(#82384)Credits
Huge thanks to @devjiwonchoi, @ijjk, and @styfle for helping!
v15.4.5Compare Source
Core Changes
Credits
Huge thanks to @ijjk, @sokra, and @styfle for helping!
v15.4.4Compare Source
Core Changes
Credits
Huge thanks to @bgw @mischnic @huozhi @lukesandberg and @ijjk for helping!
v15.4.3Compare Source
Core Changes
Credits
Huge thanks to @mischnic for helping!
v15.4.2Compare Source
Core Changes
Credits
Huge thanks to @huozhi, @ijjk, and @ztanner for helping!
v15.4.1Compare Source
Core Changes
+,-or.: #779323fbfb9ba-20250409toc44e4a25-20250409: #78031c44e4a25-20250409to1d6c8168-20250411: #78067image-size@1.2.1: #78149strictNullChecksin test utils: #78142eslint-plugin-next: #781091d6c8168-20250411to39cad7af-20250411: #7815239cad7af-20250411tob04254fd-20250415: #78253@next/mdx: Use stable turbopack config options: #78261b04254fd-20250415to4a36d3ea-20250416: #78297next start --turbopack: #783844a36d3ea-20250416tobc6184dd-20250417: #78322experimental.turbois set: #77998bc6184dd-20250417to914319ae-20250423: #78468914319ae-20250423to197d6a04-20250424: #78516error.nameto label: #78198prerenderfunction for"use cache"with Dynamic IO: #78382node:prefixed in ESM emit of standalone server.js: #78624widthtransition logic: #78635@swc/counter: #78674197d6a04-20250424to5dc00d6b-20250428: #786405dc00d6b-20250428to408d055a-20250430: #78715draft.isEnabledsetter from exotic draftMode wrappers: #77972408d055a-20250430to197d6a04-20250424: #78834@swc/corenpm package tov1.11.24: #77668extensionregex in@next/mdx: #78734max-old-space-size: #78712runInCleanSnapshotto Work Store: #78930--no-manglingfor"use cache"functions: #78993"use cache"timeout errors from being caught in userland code: #78998LinkPropsin emitted declarations: #78773define-env-plugin.tstodefine-env.ts: #79224CacheHandler.getmethod: #79213onPostponeto determine if segment prefetch is partial: #79299pprwhendynamicIOis enabled: #79302app-render.tsx: #79303experimental.enablePrerenderSourceMapsis enabled: #79109@changesets/changelog-githubfor changelog format: #79040compiler.defineServerfor server-only constants: #79225@changesets/changelog-githubfor changelog format: #79040compiler.defineServerfor server-only constants: #79225someFunc(): void) type for client boundary warnings: #79144"use cache": #78882"use cache": #78882clientInstrumentationHooktype: #79701tscruns inpackages/nextwithout having to build first: #79782tscin watch mode duringpnpm dev: #79785vary(#79939)subissuesfromIssue: #79988taskrtasks: #80020@ts-expect-error: #80065get*Stackimplementation: #79789<option>in Preferences dropdowns: #80025require()instead ofnext/dist/if possible: #80054isRecoverableErrorimplementation: #80003wrapRequestHandler: #80055getSquashedHydrationErrorDetailsimplementation: #80046onErrorin /pages: #79982server-inserted-metadatamodule: #80143regionsproperty to the Functions Config Manifest file: #80104require()calls: #80056/.well-known/appspecific/com.chrome.devtools.jsonendpoint in dev: #80260Infinityexpiration for implicit tags: #80387config.allowedDevOrigins(#80410) (Learn More)"use cache": #80463404for unknown server actions: [#80613](https://redirect.github.com/Configuration
📅 Schedule: Branch creation - "" (UTC), 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 these updates again.
This PR was generated by Mend Renovate. View the repository job log.