Next.js shipped 16.3.7 and 16.3.8 a day apart. Only one of them is the security release.
Two patch releases a day apart, one of them a decoy if you are not reading carefully. And the 15.5 line does not get the high severity fix at all.
- 16.3.7, 29 September
- Bug fix only. No security content
- 16.3.8, 30 September
- Seven fixes: one high, five moderate, one low
- 15.5.27, 30 September
- Three of the seven. Not the SSRF fix
- Headline issue
- CVE-2026-94483, SSRF in Image Optimization, CVSS 8.3
- Still open
- One critical and one high, postponed, no version announced
- Also needed on 16.2.x
- The 22 September critical next/og RCE, fixed in 16.3.6
The version trap
Vercel published Next.js 16.3.7 on 29 September. Its release notes say it is "backporting bug fixes" and list a single change to the Turbopack backend. There is no security section, no CVE and no advisory. It is an ordinary patch release that happened to land the day before a scheduled security release.
The security release came on 30 September, as 16.3.8 on the Active LTS line and 15.5.27 on Maintenance LTS. Vercel saw the confusion coming and added a dated note to its pre-announcement saying that 16.3.7 "does not include the security fixes planned for September 30" and that those fixes were now expected in 16.3.8 and 15.5.27.
If you run automated dependency updates, there is a reasonable chance a bot opened a pull request for 16.3.7 on 29 September, someone merged it, and the team now believes it has patched. It has not. The check is one command: confirm the installed version is 16.3.8 or later, not merely newer than what you had.
The two lines do not get the same fixes
This is the detail most coverage flattens. The release post lists both versions in one sentence, which reads as though they are equivalent. They are not.
The release notes for 16.3.8 cover all seven issues: one high, five moderate and one low. The release notes for 15.5.27 list three, covering the metadata image route bypass and the two cache poisoning issues. The high severity server-side request forgery fix is not among them.
So "we are on the latest 15.5" does not mean what a 16.x reader would assume it means. If you are on 15.5 and you use Image Optimization with remote patterns, you should find out from Vercel what your position is rather than inferring it from a release post that was written about two lines at once.
What actually shipped
The headline issue is CVE-2026-94483, advisory GHSA-cjq9-62q9-8jv4, server-side request forgery in Image Optimization, rated high at CVSS 8.3. The advisory describes an attacker-controlled, allow-listed remote URL leading to requests against internal addresses during image optimization.
The exemption is unusually clean, and it is the first thing to check: the release post says that if no images.remotePatterns are configured, your application is not affected. If that config is populated, the advisory tells you to audit the allow-listed hosts for any whose DNS entries you do not control, because that is the route in.
The rest divide into cache correctness problems and one development-only leak. Two concern cache poisoning of statically generated and incrementally regenerated pages, one is a metadata image route bypass, one leaks across root parameter values in nested use cache, one lets Draft Mode content reach a regular response, and one exposes a Model Context Protocol endpoint in the development server.
Read the exemptions per issue, not as a blanket
Each of these carries its own scoping sentence, and they do not combine into a general exemption for anyone.
- One cache poisoning issue says applications deployed on Vercel are not affected. That is true of that issue only, and it is a moderate one
- The metadata image route bypass says applications built with Turbopack are not affected. Webpack builds are
- The development server issue says only applications run with next dev are affected, and that production deployments do not serve the endpoint
- The SSRF has no platform exemption. Its exemption is about configuration, not about where you host
- Nothing here exempts you from the 22 September critical if you are on 16.2.x. See below
The 22 September critical, and why 16.2.x needs 16.3.8
Eight days earlier, Vercel shipped an out-of-band fix for CVE-2026-94545, a critical remote code execution issue in the Node.js ImageResponse implementation of next/og, rated 9.5. Its affected range is 16.2.0 up to but not including 16.3.6.
One correction worth making, because it was widely reported wrongly: Next.js 15.x was never affected by that remote code execution issue. Vercel's post says so directly and labels the 15.5.26 release as hardening only. If you are on 15.x, that critical was never yours.
If you are on 16.2.x, you are inside both windows. You need 16.3.8, which is the newest release on the 16.3 line and covers the 22 September critical and the 30 September seven together. Stopping at 16.3.6 leaves the seven, and stopping at 16.3.7 leaves everything.
Two fixes are still outstanding
The release was originally scoped at nine vulnerabilities. A note dated 30 September on the pre-announcement says it "now addresses seven vulnerabilities instead of nine. The remaining two (one critical, one high) are pending upstream coordination and will be addressed in a later Next.js release." The release post gives the reason as upstream dependency delays.
That means upgrading to 16.3.8 does not close the book. A critical issue is known to exist and is unpatched as of 2 October, with no CVE, no advisory, no affected range and no target date published. We are not going to speculate about which component it touches, because nothing published supports a guess.
The actionable version of this is operational rather than technical. The last two Next.js criticals both came from upstream dependencies, and the stated reason for the delay is upstream coordination, so a dependency-level fix may surface before the Next.js release does. If your release process needs a day of QA before a framework bump can ship, that path is worth shortening now rather than during the next unscheduled patch.
A note on the advisory metadata
If you go looking at the advisories yourself to build a precise version matrix, you will hit something odd. Six of the seven advisory pages publish a placeholder where the patch digit should be, rendering as 16.3.? and 15.5.?, and two list an affected range starting at 16.0.0 despite a fix shipping on the 15.5 line.
We are therefore not publishing per-issue affected ranges, and we would suggest you do not build tooling on them this week either. The reliable instruction is the simple one: 16.3.8 on the 16.x line, 15.5.27 on the 15.5 line.
What to do
- 1Confirm your installed version is 16.3.8 or later on 16.x, or 15.5.27 on 15.5.x. Do not stop at 16.3.7.
- 2Check whether images.remotePatterns is configured. If it is empty you are not affected by the SSRF.
- 3If it is populated, audit the allow-listed hosts for any whose DNS you do not control.
- 4If you are on 16.2.x, go to 16.3.8 so you also pick up the 22 September next/og critical.
- 5Redeploy preview and branch deployments, which keep serving the old build.
- 6Put a watch on the Next.js security blog, because one critical and one high are still unfixed.
Common questions
Is Next.js 16.3.7 the security release?
No. Its release notes describe it as backporting bug fixes with a single Turbopack change and no security content. The security release is 16.3.8, published the following day, 30 September 2026.
Do 16.3.8 and 15.5.27 fix the same issues?
No. The 16.3.8 notes cover all seven issues. The 15.5.27 notes list three, and the high severity SSRF fix is not among them.
How do I know if the SSRF affects me?
The release post says that if no images.remotePatterns are configured, your application is not affected. If the setting is populated, audit the allow-listed hosts for any whose DNS entries you do not control.
Are applications on Vercel unaffected?
Only for one issue. The statement that applications deployed on Vercel are not affected appears for a single moderate cache poisoning issue, not for the release as a whole.
What is still unpatched?
One critical and one high severity vulnerability were postponed due to upstream dependency delays. As of 2 October 2026 there is no CVE, advisory, affected range or target version published for either.
I am on Next.js 15. Was I affected by the 22 September critical?
No. Vercel states that Next.js 15.x is not affected by that remote code execution issue, and that the 15.5.26 release contains related hardening only.
Sources
- Next.js: September 2026 security release
- Next.js: pre-announcement, with dated amendments
- Next.js: 16.3.7 release notes
- Advisory: GHSA-cjq9-62q9-8jv4 (SSRF)
- Next.js: 22 September security update
Read against the primary documentation rather than secondary coverage. Where a figure comes from a provider's own docs, it is quoted as published on 2026-10-02.
Related
More from Signals
Open the tool.
Ten production categories, three minutes, and a ranked list of what to fix first.
Check your own stack