CVE-2026-94545 json
Satori-generated SVG has improper escaping
published last mo. modified 13d ago also EUVD-2026-89994 , GHSA-vcvr-r3jv-pc5j , GHSA-wx4j-mvgx-mqwp
- cvss
- 5.3
- version 4.0, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 1.1%
- EPSS 1.1% chance of exploitation in 30 days, percentile 65%
- public exploits
- 0
- none known
Summary
Satori is a library to convert HTML and CSS to SVG. Starting in version 0.0.27 and prior to version 0.33.5, Satori does not properly escape certain values before including them in generated SVG output. This can allow crafted values to be interpreted as SVG markup. The impact depends on how the generated SVG is consumed. Version 0.33.5 contains a patch. No complete workaround exists besides upgrading. Applications that cannot immediately upgrade should not render attacker-controlled content with Satori.
Patch / fix
- npm next 16.3.6
- npm satori 0.33.5
- github.com/vercel/next.js@868fad3 commit
- github.com/vercel/satori@26a52af commit
- github.com/vercel/satori#814 pull request
- github.com/vercel/next.js/releases/tag/v16.3.6 release
Is CVE-2026-94545 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerCISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- last mo.
Exploit prediction
1.08% chance of exploitation in the next 30 days, higher than 65% of all scored CVEs (FIRST EPSS, 2026-11-09).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 5.3 | CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:N/VI:N/VA:N/SC:H/SI:H/SA:N |
| CNA | 4.0 | 5.3 | CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:N/VI:N/VA:N/SC:H/SI:H/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| npm | next | >=16.2.0, <16.3.6 |
16.3.6 |
| npm | satori | >=0.0.27, <0.33.5 |
0.33.5 |
Affected products
- vercel satori
- vercel next
Classification
- Weakness
- Technology feeds
References
-
github.com
/vercel/satori/pull/814
web
-
github.com
/vercel/next.js/commit/868fad38690d72088868f299fa2bef339b26838e
web
-
github.com
/vercel/satori/commit/26a52affc031216fee5882b6e965c8dbc7ac1782
web
-
github.com
/vercel/satori/security/advisories/GHSA-wx4j-mvgx-mqwp
web
-
github.com
/vercel/next.js/security/advisories/GHSA-vcvr-r3jv-pc5j
web, advisory
-
github.com
/vercel/next.js/releases/tag/v16.3.6
web
-
github.com
/vercel/next.js
package
-
nvd.nist.gov
/vuln/detail/CVE-2026-94545
advisory
-
github.com
/vercel/satori
package
Sources
- CVE List CVE-2026-94545
- GitHub Advisory GHSA-vcvr-r3jv-pc5j
- GitHub Advisory GHSA-wx4j-mvgx-mqwp
- NVD CVE-2026-94545
- Maintainer advisory GHSA-vcvr-r3jv-pc5j
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
The maintainers of vercel/next.js published their own advisory on GitHub. Reviewed sources take precedence over it.