SVG markup injection in Satori
CVE-2026-94545 is an output-escaping vulnerability in Satori, an HTML-and-CSS-to-SVG conversion library, affecting versions 0.0.27 through 0.33.4. Certain values are incorporated into generated SVG without proper escaping, allowing attacker-controlled input to be interpreted as SVG/XML markup rather than literal text. The security consequences depend on how the generated SVG is consumed. In Next.js 16.2.0 through 16.3.5, the Node.js ImageResponse implementation can pass injected markup to downstream image-rendering components, potentially enabling server-side code execution when those components are vulnerable. Satori 0.33.5 fixes the escaping flaw.
What it means and what to do now: patch path, interim mitigations, and the assume-compromise checklist.
What an attacker gets, and what they’ve been doing with it.
Attackers can alter the structure and content of generated SVG documents. Downstream consequences depend on the renderer, its vulnerabilities, and the application's execution environment; arbitrary code execution is not an inherent consequence of SVG injection alone. In affected Next.js Node.js ImageResponse rendering chains, malicious markup can potentially lead to code execution with the server process's privileges, exposing accessible secrets and application data, allowing content modification, disrupting services, or enabling further access to internal resources. The Next.js Edge ImageResponse implementation is not affected by the described server-side attack path.
If you can’t patch tonight, do this now.
No complete workaround substitutes for upgrading Satori. Until patching is possible, do not render attacker-controlled content with Satori, and prevent untrusted values from reaching SVG content, attributes, or CSS styles processed by Node.js ImageResponse. Disable exposed image-generation functionality if this separation cannot be guaranteed. Input validation alone should not be treated as a permanent fix.
Patch, then assume compromise.
Upgrade Satori to version 0.33.5 or later. For affected Next.js applications, upgrade Next.js to version 16.3.6 or a later patched release, then rebuild and redeploy production workloads. Updating a separately installed Satori package is insufficient when the application uses the copy bundled within Next.js. Verify the versions actually deployed and audit image-generation routes for untrusted values entering SVG content, attributes, or styles. Next.js 15.5.26 includes additional image-generation security hardening, although the 15.x line is described as unaffected by the specific Next.js exposure.
4 exploits validated by Mallory's analysis. Hidden: 2 rejected by Mallory's analysis as not a working exploit.
35 sources tracked across advisories, community write-ups, and news. New activity surfaces here as Mallory finds it.