The July 2026 Next.js security release shipped on July 21 — the first drop of Vercel's new pre-announced, roughly-monthly security release program — patching nine CVEs, four of them rated High, in Next.js 16.2.11 and 15.5.21. Six days later, on Monday July 27, Node.js ships its own pre-announced HIGH-severity security release across all three active lines: 22.x, 24.x, and 26.x.
Every piece of coverage we found treats these as two separate stories on two separate blogs for two separate audiences. But if you run a JavaScript stack in production — and if you deploy Next.js, you run both — they land in the same seven-day window, and they call for one combined response, not two. Notably, in the searches we ran this week, no mainstream tech outlet appears to have covered the Next.js release at all: teams that don't watch vendor blogs directly will not hear about this from the news.
This guide puts both drops on a single timeline, walks the nine Next.js CVEs with their exact affected ranges, decodes what a Node.js "HIGH severity" pre-announcement has historically turned into, and closes with a concrete before-Monday checklist. Every CVE detail below is sourced from the official advisories.
- 01Next.js shipped its first scheduled security release.Announced July 13, originally targeted for July 20, shipped July 21 — nine CVEs (4 High, 5 Medium) patched in 16.2.11 (Active LTS) and 15.5.21 (Maintenance LTS), with fixes back-ported into 16.3 canary and preview builds.
- 02The worst issues are DoS, middleware bypass, and SSRF.CVE-2026-64641 (CVSS 8.2) enables CPU-exhaustion DoS via Server Actions; CVE-2026-64642 (CVSS 8.3) bypasses middleware auth checks in a specific Turbopack + single-locale i18n config; CVE-2026-64645 (CVSS 8.3) enables SSRF through request-controlled rewrites().
- 03Several of the nine are configuration-specific, not default-on.The middleware bypass needs the legacy middleware.ts convention with a single-locale i18n config on Turbopack; the SVG image-DoS needs self-hosting with the default loader optimizing remote images. Check config before panicking — or dismissing.
- 04Node.js pre-announced HIGH fixes for Monday, July 27.Only the affected lines (22.x, 24.x, 26.x) and the HIGH ceiling are public — zero CVE details exist yet. Precedent from June: a HIGH pre-announcement turned into 12 CVEs, 2 of them High. Plan the window now, read details Monday.
- 05Security patching just became a calendar item.Pre-announced severity counts a week ahead, a published monthly cadence, and an emergency lane for actively-exploited issues. The teams that benefit are the ones that turn the calendar into a standing ops routine — that is what this playbook is for.
01 — The New ProgramA pre-announced security cadence — and a one-day slip.
On July 13, 2026, Vercel announced a formal security release program for Next.js: roughly monthly, pre-announced on the Next.js blog, with the expected timeline and the highest anticipated severity disclosed ahead of each drop. The July 13 announcement pre-disclosed the shape of this first release a week before any patch existed publicly — four high-severity and five medium-severity vulnerabilities, no CVE numbers, no technical detail. We covered the announcement itself in our earlier look at the program's July 13 announcement; this post covers what actually shipped.
"Today we are moving to a formal security release program, with updates that teams can plan around."— Andrew Imm & Josh Story, Next.js team, July 13, 2026
The program's first test came before its first patch: the release originally targeted Monday, July 20, and slipped one day. An update banner added to the announcement post on July 20 reads: "July 20, 2026: The July security release originally targeted for July 20 is now expected on July 21, 2026." The GitHub Security Advisories and Netlify's changelog entry both carry July 21 dates, confirming the actual ship date.
A one-day slip on a program's first-ever scheduled release could read as a stumble. We'd argue the opposite: the slip is the kind of event a pre-announced program is designed to make survivable. Teams that had scheduled a Monday patch window got a dated, public notice the same day — nobody's on-call rotation broke, and the release still landed within 24 hours of a target set a week in advance. Under the old ad-hoc model, there was no target to miss and no notice to give.
Vercel's stated motivation for the program is worth a paragraph of context. The announcement cites the industry-wide rise of LLM-assisted vulnerability discovery — including Mozilla's April 2026 disclosure of 271 Firefox issues surfaced in a single release by an early version of Anthropic's Claude Mythos Preview — and says Vercel runs the same class of tooling against Next.js via its own open-source scanner, deepsec, alongside an expanded bug bounty. Those figures are Mozilla's and Vercel's own framing rather than something we've independently verified, but the direction is consistent with what we're seeing across the ecosystem — AI-driven security scanning tools like Claude Code's are finding more, faster, which means more CVEs per release and a stronger case for a predictable patch rhythm.
02 — One CalendarTwo vendors, one patch week.
The table below is the artifact this post is built around: both vendors' July security events on a single ops calendar. Next.js's pre-announced program is brand-new — this is its first release. Node.js's July 27 pre-announcement, by contrast, is routine practice on a cadence the project has run for years. Two different programs, one week, one checklist.
| Date | Vendor | Event | What became known | Action for teams |
|---|---|---|---|---|
| Mon Jul 13 | Next.js | Program announced | 4 High + 5 Medium CVEs pre-disclosed; release targeted for Jul 20; no technical details | Schedule a patch window |
| Mon Jul 20 | Next.js | Slip notice | Dated update banner: release now expected Jul 21 | Move the window one day |
| Tue Jul 21 | Next.js | Release shipped | 9 CVEs published with GHSA advisories; 16.2.11 and 15.5.21 released; fixes back-ported to 16.3 canary/preview | Upgrade and redeploy |
| Tue Jul 21 | Node.js | Pre-announcement | Security release scheduled for Jul 27 "or shortly after"; 22.x, 24.x, 26.x all flagged HIGH; no CVE details | Schedule a second window |
| Sat Jul 25 | — | Today | Next.js details fully public; Node.js details still sealed | Run the checklist in section 07 |
| Mon Jul 27 | Node.js | Release scheduled | CVE numbers, descriptions, and patched versions publish on release day | Read advisories, patch runtimes |
03 — High SeverityThe four HIGH CVEs, decoded.
The four high-severity issues cluster into three families: denial of service against App Router request processing, server-side request forgery through request-controlled routing, and a middleware bypass that skips the auth checks the middleware performs. Affected version ranges differ per CVE — check each against your lockfile rather than assuming one range covers all nine.
Server Actions DoS
Crafted requests to App Router apps using Server Actions drive excessive CPU usage (CWE-834, Excessive Iteration) that blocks further request processing in the same process. Broad range — every 13.x, 14.x, and unpatched 15.x/16.x App Router app with Server Actions is in scope.
Middleware bypass
App Router apps built with Turbopack that use the legacy middleware.ts convention with a single entry in config.i18n.locales can have their middleware skipped entirely — any auth or security check it performs is bypassed. Webpack builds and the newer proxy.ts convention are unaffected.
SSRF via rewrites
When a rewrites() or redirects() rule builds its external destination hostname from request-controlled input, the destination can be pointed at an arbitrary hostname regardless of the rule's hostname suffix — SSRF via rewrites, open redirect via redirects. The widest affected range of the nine, reaching back to Next.js 12.
SSRF on custom servers
When a Server Action forwards or redirects a request on a custom-server deployment, an attacker who controls Host-associated headers can redirect the outbound request to a malicious host. Primarily relevant to self-managed deployments running a custom server in front of Next.js.
The middleware bypass deserves the most careful read. It is the joint-highest CVSS in the release, and "your auth middleware silently doesn't run" is about as bad as a framework bug gets — but it only fires in a specific configuration: Turbopack builds, the legacy middleware.ts convention, and a single-locale i18n config, all at once. Do not generalize it to "Next.js middleware is broken." Equally, do not skip the patch because your current config looks safe: configs drift, and the fix costs one version bump.
04 — Medium SeverityThe five MEDIUM CVEs — mostly conditional.
The medium set is a mix of resource-exhaustion, information disclosure, and two related cache-confusion bugs. Several apply only under specific configurations — the table notes when a CVE is conditional rather than default-on.
| CVE | Weakness class | Exposed when | Notes |
|---|---|---|---|
| Resource exhaustion | |||
| CVE-2026-64644 | Image Optimization DoS via SVG | Self-hosting with the default image loader configured to optimize remotely-hosted images — not on by default | Malicious image content can exhaust CPU in the /_next/image endpoint |
| CVE-2026-64646 | Unbounded Server Action payload (Edge runtime) | Any App Router app with at least one Server Action running under the Edge runtime | Crafted requests drive memory consumption |
| Information disclosure | |||
| CVE-2026-64643 | Server Function endpoint-ID disclosure | Apps using use server / use cache functions | Internal endpoint IDs globally disclosed, unauthenticated — reconnaissance value in a broader attack chain |
| Cache confusion | |||
| CVE-2026-64648 | Response-body cache confusion | Server-side fetch with a request body, in fetch(new Request(init), aDifferentInit) call shapes | A cached response body from a different request to the same URL with a different body can be returned |
| CVE-2026-64647 | Cache confusion — invalid UTF-8 bodies | Request bodies containing invalid UTF-8 byte sequences | Related bug; the advisory's examples show byte sequences that collide in the cache key |
The two cache-confusion bugs are the subtle ones. Serving one user a response body generated for a different request is the failure mode that turns into a data-exposure incident rather than an outage — if your server components POST to internal APIs with per-user request bodies, treat these two as your priority among the mediums even though the severity label says otherwise.
05 — ExposureWho is actually exposed — and who has no patch.
Two versions carry the fixes, and one large population gets nothing. Following the precedent set by the May 2026 coordinated release, there are no back-patches for Next.js 13.x or 14.x — apps on those majors are told to upgrade directly to a patched 15.5.x or 16.2.x.
The primary patch target
All nine CVEs fixed. The same fixes are back-ported into the 16.3 canary (v16.3.0-canary.92) and preview (v16.3.0-preview.7) builds, so pre-release users are covered too.
For teams still on 15.x
Receives the fixes applicable to the 15.x line — including the Server Actions DoS and the rewrites/redirects SSRF, whose ranges reach back to 13.0.0 and 12.0.0 respectively.
No back-patch path
Same as May 2026: older majors get no security back-ports. Two of the four HIGH CVEs affect these versions with no fix available on them — the only remediation is a major-version upgrade.
If you're in that third column, the patch-week framing changes: this is no longer a version bump, it's a migration project with a security deadline attached. Our 15-to-16 migration playbook covers the mechanics, and what's new in Next.js 16.2 makes the case that the destination is worth it beyond the CVE math. Every month you stay on an unpatchable major, the gap between you and the fix compounds.
Hosting platform matters too, but less than you might hope. Netlify assessed the same nine CVEs and stated that its edge/autoscaling architecture inherently mitigates some of the DoS and image-optimization exploits — but not all nine ("Netlify- hosted sites are not affected by three of these"). It also recommended manually purging public deploy previews and branch deploys that remain vulnerable until automatic cleanup runs — a reminder that preview environments are production attack surface even when the main site is patched. Whatever your platform absorbs, the fix that covers all nine is the version bump.
06 — Node.js · Jul 27Node.js lands Monday — what "HIGH" usually means.
On July 21 — the same day Next.js shipped — Node.js pre-announced a security release for Monday, July 27, 2026, "or shortly after." What's public is deliberately minimal, per standard Node.js practice: all three active release lines (22.x, 24.x, 26.x) are affected, the maximum severity is HIGH, and nothing else — no CVE numbers, no vulnerability descriptions, no patched version numbers. Anything more specific you read before Monday is speculation.
One more line from the pre-announcement deserves attention: Node.js's own convention states that "End-of-Life versions are always affected when a security release occurs." If you are still running Node 18 or earlier anywhere, assume it is vulnerable to whatever publishes Monday — with no patch coming.
What we can do before Monday is calibrate. The June 18, 2026 Node.js release — covered in our June Node.js security release guide — followed the same pre-announcement pattern, and turned into 12 CVEs, only 2 of them rated High: a WebCrypto process-crash bug and a TLS hostname-verification bypass, patched as v22.23.0, v24.17.0, and v26.3.1. Serious, patch-worthy, not wormable. That is the base rate to hold in mind — not a prediction.
CVE volume per release · recent JavaScript security drops
Sources: Node.js blog (Jun 18, 2026 release) · Next.js blog + GitHub Security Advisories (Jul 21, 2026)| Release | CVEs disclosed | High count | What "High" meant in practice | Status as of Jul 25 |
|---|---|---|---|---|
| Node.js · Jun 18, 2026 | 12 | 2 | WebCrypto subtle.encrypt() process crash; TLS hostname-verification bypass | Shipped — v22.23.0 / v24.17.0 / v26.3.1 |
| Next.js · Jul 21, 2026 | 9 | 4 | Server Actions DoS; middleware bypass; SSRF via rewrites/redirects; SSRF on custom servers | Shipped — 16.2.11 / 15.5.21 |
| Node.js · Jul 27, 2026 | Unknown | Not disclosed (max severity HIGH; 22.x, 24.x, 26.x affected) | Unknown — details publish on release day | Pre-announced, not yet shipped |
07 — Ops ChecklistThe before-Monday checklist.
Four postures, four action sets. Find your row, run it this weekend — the goal is to walk into Monday with the Next.js side fully closed, so the Node.js drop is the only thing on the board.
Vercel / Netlify-hosted Next.js
Bump next to 16.2.11 (or 15.5.21), redeploy every production project, then purge or redeploy public preview and branch deployments — Netlify explicitly recommends purging previews that remain vulnerable until automatic cleanup runs. Platform mitigations cover some DoS vectors, not all nine CVEs.
Self-hosted or custom-server Next.js
Highest exposure: the custom-server SSRF (CVE-2026-64649) and the SVG image-DoS (CVE-2026-64644, if your default loader optimizes remote images) apply here specifically. Patch Next.js, audit rewrites()/redirects() for request-controlled destinations, and check whether middleware.ts + single-locale i18n + Turbopack matches your build.
Still on Next.js 13.x / 14.x
No back-patch exists and two HIGH CVEs affect you. Scope the upgrade to 15.5.21 or 16.2.11 as a project this week, and mitigate meanwhile: audit rewrites/redirects for request-controlled hostnames and rate-limit Server Action endpoints.
Every Node.js deployment
Inventory Node versions across services, containers, CI images, and lambdas today. Confirm each is on a current 22.x/24.x/26.x so Monday is a minor bump, not a major migration. Flag anything on EOL majors (18.x and earlier) — Node's convention says EOL versions are always affected, and they get no patch.
This is our own stack — Digital Applied builds and operates Next.js applications on exactly these versions, so this checklist is the one we're running ourselves this weekend. If your team doesn't have a standing owner for dependency security windows, that's the real gap the new cadence exposes: our web development team bakes monthly patch windows into every retainer, and our AI transformation engagements increasingly include AI-assisted dependency and vulnerability scanning as standing infrastructure rather than an annual audit.
Looking one quarter out: if the monthly cadence holds, expect the interesting question to shift from "did you hear about the patch" to "how fast is your patch pipeline." A pre-announced program removes the information asymmetry — from here on, attackers and defenders learn the severity count on the same day, a week before details. The teams that convert that week of notice into a scheduled, rehearsed window will spend less time exposed than the teams that still treat every advisory as a surprise. Predictability is only an advantage if you use it.
08 — ConclusionPatching becomes a calendar item.
Two drops, one week, one routine — patch Next.js now, patch Node.js Monday.
The July 2026 patch week is the first time the JavaScript stack's two most important release trains have run pre-announced security drops in the same seven-day window. Next.js shipped nine CVEs on July 21 — four High, headlined by a middleware bypass and a rewrites-based SSRF, patched in 16.2.11 and 15.5.21. Node.js ships Monday, July 27, with HIGH severity confirmed across 22.x, 24.x, and 26.x and every detail sealed until release day.
The honest read on the Next.js release: several of the nine CVEs are conditional, two of the four Highs require specific configurations, and the one-day slip was communicated with a dated public notice. That is what a functioning security program looks like in its first month. The equally honest read on your own stack: conditional today does not mean conditional after the next refactor, and the patch costs one version bump.
The larger shift is the one worth internalizing. With AI-assisted discovery pushing vulnerability volume up across the industry, ad-hoc patching was already breaking down; the pre-announced cadence is the ecosystem's answer. Security patching is now a calendar item — a monthly rhythm you can staff, rehearse, and measure. Treat it like one, and this week's two drops are an hour of scheduled work. Ignore it, and you're betting your uptime on nobody aiming a published CVE at an unpatched stack.