🗓️ UPCOMING WEBINAR | OCTOBER 6TH: How CISOs Should Think About Offensive Security in the Age of AI Register Now 🗓️ UPCOMING WEBINAR | OCTOBER 6TH
Back to Blog

Emerging Threat: (CVE-2026-94545) Next.js Remote Code Execution via ImageResponse SVG Injection

What is CVE-2026-94545?

CVE-2026-94545 is a remote code execution vulnerability in the next/og ImageResponse API of Next.js, the React framework maintained by Vercel. ImageResponse generates images on the server, typically Open Graph preview cards, by rendering markup through the Satori library into SVG and then into a raster image. Satori does not correctly escape certain values before they reach the SVG output, so a value placed into SVG content, an attribute, or a style can break out of its context and be interpreted as SVG markup.

The vulnerability is rated Critical. Reporting on the vendor advisory places the CVSS v4.0 base score at 9.5. Exploitation requires no authentication where the affected image route is publicly reachable, which is the normal configuration for Open Graph image generation.

Exploitation is conditional in a way that matters for triage. The application has to use the Node.js implementation of ImageResponse, and it has to pass attacker-influenced data into SVG content, attributes, or styles during image generation. Values arriving from URL parameters, form fields, or API requests are the common path. Applications using the Edge implementation of ImageResponse are not affected, and applications that never place untrusted input into the generated image are not expected to be affected either.

Input validation on its own is not a reliable defense here. The escaping failure is in how values are serialized into SVG rather than in what the values contain, so filtering for obviously hostile strings does not close the path.

What assets are affected by CVE-2026-94545?

The vulnerability affects Next.js from 16.2.0 up to but not including 16.3.6. Version 16.3.6 carries the fix. A separate release, 15.5.26, was published as hardening for the 15 line rather than as a fix for the same remote code execution path, and no backport exists for the 16.2 line, so instances on 16.2.x have to move forward rather than sideways.

In practice an affected asset is a server-rendered Next.js application with a dynamic Open Graph image route. That pattern is close to ubiquitous on modern marketing sites, publishing platforms, documentation portals, and e-commerce product pages, because per-page social preview cards are generated from the page title, author, product name, or campaign slug. Those are exactly the values that come from a request and land inside the generated image.

Two things make this population hard to scope from the outside. Next.js applications rarely advertise their framework version in a response, so an external inventory can identify the framework but not the release. The ImageResponse usage pattern and the runtime it executes on are application code rather than server configuration, so neither is externally visible. An organization’s real exposure is the intersection of an affected version, the Node.js runtime, and untrusted input reaching the image generator, and only the first of those three is something a version check will answer.

What does our data show about exposure patterns?

Exposure in this set is led by Industrials at 19.7% of observed assets, with Consumer Discretionary contributing 14.8% and Information Technology 11.2%.

What stands out here is the flatness rather than any single peak. More than half the observed assets sit outside the top three sectors, spread across communication services, financials, consumer staples, energy, and health care without any one of them dominating. That is the expected shape for a general-purpose web framework. Next.js is not a vertical application tied to a particular business process, it is the layer a modern public-facing site is built on, so its footprint tracks the distribution of organizations that have rebuilt a customer-facing web property in the last few years rather than the distribution of any one industry’s technology stack.

The practical consequence is that this exposure does not belong to an identifiable owner inside most organizations. A vulnerable WebLogic server has an infrastructure team attached to it. A Next.js marketing site is often owned by a marketing or digital team, deployed through a managed hosting platform, and updated on the cadence of a content calendar rather than a patch cycle.

The assets in this set were identified by service fingerprint rather than by confirmed version detection, and the framework version is not the whole answer in any case. Knowing which of an organization’s Next.js properties generate images from request data is not information most external inventories carry, and in a portfolio of campaign sites and microsites it is frequently not tracked internally either.

Are fixes available?

Yes. Next.js 16.3.6 contains the fix and is the upgrade target for anything on the 16.2 or 16.3 lines. Next.js 15.5.26 was published alongside it as hardening for the 15 line. The releases went out on September 22, 2026.

There is no backport for the 16.2 line, so an instance running 16.2.x cannot take a patch release within that minor version and has to move to 16.3.6. For most applications this is a routine package upgrade, though teams pinned to 16.2 for a dependency reason should plan for the version bump rather than assume a drop-in patch exists.

Managed hosting platforms that build and run Next.js applications have published their own guidance on how the flaw behaves on their infrastructure, and in some environments the practical impact of a crafted request is narrower than a general server compromise. That does not substitute for the upgrade. Defenders should confirm the Next.js version their build actually ships rather than relying on a lockfile entry or a scanner’s inferred version, since neither reliably reflects what a deployed build contains.

Until patching is confirmed, defenders should:

  • Inventory internet-facing Next.js properties, including microsites and campaign sites
  • Identify which applications use next/og ImageResponse for dynamic image generation
  • Trace whether request data reaches SVG content, attributes, or styles in those routes
  • Move affected image routes to the Edge implementation where the application supports it
  • Remove untrusted values from generated images rather than relying on input filtering
  • Monitor Open Graph image routes for malformed or unusually long parameter values

How can CyCognito help your organization?

CyCognito published an Emerging Threat Advisory for CVE-2026-94545 in the CyCognito platform and is actively researching enhanced detection capabilities for this vulnerability.

To learn how CyCognito can help your organization reduce external exposure and manage emerging threats more effectively, contact us to request a demo.


Request a free scan

See Exactly What Attackers See

Get a free scan of your attack surface and gain valuable insight into your organization's risk posture by allowing CyCognito to discover, contextualize, and test externally .

Request a Scan
Top Attack Paths