As reported by The Hacker News, Vercel disclosed a critical server-side code execution vulnerability in Next.js's ImageResponse feature on September 22, 2026. The flaw — CVE-2026-94545, rated CVSS 9.5 — is the kind of vulnerability that should make security teams pause, not because the attack vector is exotic, but because it sits in functionality that developers routinely feed user-controlled data into without a second thought.
Vulnerability Summary
| Field | Detail |
|---|---|
| CVE | CVE-2026-94545 |
| CVSS | 9.5 (Critical) |
| Affected | Next.js 16.2.0 – 16.3.5 (Node.js runtime only) |
| Not Affected | Edge runtime ImageResponse; Next.js 15.x |
| Patch | Next.js 16.3.6 (npm install next@16.3.6) |
| Hardening | Next.js 15.5.26 (for 15.5 line) |
| Active Exploitation | None observed as of Sep 23, 2026 |
| Vendor Advisory | Vercel security advisory (Sep 22, 2026) |
Why This Matters More Than It Looks
The vulnerability lives in ImageResponse from next/og, a feature widely used to dynamically generate Open Graph images — the social preview thumbnails that appear when links are shared on Slack, Twitter, LinkedIn, and elsewhere. The common pattern is to pull a slug, query parameter, or path segment from the request URL and inject it as text into the generated image. That is precisely the pattern Vercel's advisory flags as vulnerable.
What elevates this beyond a typical injection bug is the chain: ImageResponse uses Vercel's Satori library to convert layout definitions into SVG, which is then rasterized to PNG. If attacker-controlled strings can break out of the intended SVG structure and inject arbitrary SVG content, attributes, or styles, the resulting payload executes in the Node.js server context during rendering. Server-side code execution from a crafted URL is about as severe as web vulnerabilities get.
The danger is not theoretical — it is architectural. Any Next.js 16.2+ app that renders dynamic OG images from request data on the Node.js runtime is a candidate for exploitation.
Who Is Most Exposed
- Content platforms and CMS-driven sites that generate per-article OG images from URL slugs or titles
- E-commerce applications rendering product preview cards with user-generated product names or reviews
- Community and forum apps where usernames, post titles, or tags flow into social share images
- Any deployment running Next.js 16.2.0 through 16.3.5 on the Node.js runtime with
opengraph-imageroute handlers
Notably, the Edge runtime variant is unaffected — but Vercel has marked the Edge runtime as deprecated, making that escape hatch a poor long-term mitigation.
The Detection Gap
One of the more concerning aspects The Hacker News surfaced: as of September 23, npm audit did not flag Next.js 16.3.5 as vulnerable, the GitHub Advisory Database had no entry, and no CVE record had been published. This means automated dependency scanning tools — including Snyk, Dependabot, and similar platforms that rely on advisory feeds — may not alert on this flaw for hours or days. Security teams cannot rely on tooling alone right now; manual version checks are essential.
Shield53 Recommendations
Immediate Actions
- Patch now: Run
npm install next@16.3.6across all environments. This is the only fixed release; there is no patched 16.2.x version. - Audit your codebase: Search for
ImageResponseimports fromnext/ogin route handlers andopengraph-imagefiles. For each usage, trace whether any value derived from the request (URL params, query strings, headers, cookies) reaches the image content. - Apply input isolation as an interim control: If upgrading must wait, ensure no attacker-controlled values are passed into SVG content, attributes, or styles. Sanitize or hardcode dynamic text, or fetch it from trusted server-side stores rather than request data.
- Verify version manually: Check
package.jsonandnode_modules/next/package.jsondirectly — do not trustnpm auditat this time. - Inventory Satori exposure: Satori is bundled inside the Next.js package and will not appear as a separate dependency in your lockfile. Treat any Next.js 16.2–16.3.5 installation as potentially vulnerable regardless of lockfile appearance.
- Deploy WAF rules: If your OG image routes accept URL parameters, consider rate-limiting and input-length constraints on those endpoints as a compensating control until patching is verified.
Broader Implications
This vulnerability underscores a recurring pattern in modern web frameworks: features designed for developer convenience — dynamic image generation, server-side rendering, edge functions — expand the attack surface in ways that are easy to overlook during code review. The fact that a social preview image generator can become a server code execution vector illustrates how seemingly benign output paths can become injection points when they process untrusted input through complex rendering pipelines.
For organizations running Next.js at scale, this is also a reminder that the gap between vendor disclosure and advisory database propagation can be measured in days. Your incident response and patch management processes should account for that window — because adversaries certainly will.