{"id":"CVE-2026-94545","summary":"Satori-generated SVG has improper escaping","details":"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.","modified":"2026-10-01T03:48:04.170965377Z","published":"2026-09-30T14:53:34.961Z","related":["GHSA-vcvr-r3jv-pc5j","GHSA-wx4j-mvgx-mqwp"],"database_specific":{"cwe_ids":["CWE-116"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/94xxx/CVE-2026-94545.json","cna_assigner":"GitHub_M"},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/94xxx/CVE-2026-94545.json"},{"type":"FIX","url":"https://github.com/vercel/next.js/commit/868fad38690d72088868f299fa2bef339b26838e"},{"type":"WEB","url":"https://github.com/vercel/next.js/releases/tag/v16.3.6"},{"type":"ADVISORY","url":"https://github.com/vercel/next.js/security/advisories/GHSA-vcvr-r3jv-pc5j"},{"type":"FIX","url":"https://github.com/vercel/satori/commit/26a52affc031216fee5882b6e965c8dbc7ac1782"},{"type":"FIX","url":"https://github.com/vercel/satori/pull/814"},{"type":"ADVISORY","url":"https://github.com/vercel/satori/security/advisories/GHSA-wx4j-mvgx-mqwp"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-94545"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/vercel/next.js","events":[{"introduced":"c5c94dffbf084e66b172a9c6ff23d80c24973764"},{"fixed":"a758ffcf501f6f1ddb03175bd1033508424c261e"}],"database_specific":{"extracted_events":[{"introduced":"16.2.0"},{"fixed":"16.3.6"}],"source":"AFFECTED_FIELD"}}],"versions":["v16.3.5","v16.3.3","v16.3.4","v16.3.2","v16.3.1","v16.3.0","v16.3.0-canary.97","v16.3.0-canary.106","v16.3.0-canary.107","v16.3.0-canary.105","v16.3.0-canary.104","v16.3.0-canary.103","v16.3.0-canary.102","v16.3.0-canary.98","v16.3.0-canary.101","v16.3.0-canary.99","v16.3.0-canary.100","v16.3.0-preview.10","v16.3.0-canary.96","v16.3.0-canary.95","v16.3.0-preview.9","v16.3.0-canary.94","v16.3.0-preview.8","v16.3.0-canary.93","v16.3.0-preview.7","v16.3.0-canary.92","v16.3.0-canary.91","v16.3.0-canary.90","v16.3.0-canary.89","v16.3.0-canary.88","v16.3.0-canary.87","v16.3.0-canary.86","v16.3.0-canary.85","v16.3.0-preview.6","v16.3.0-canary.84","v16.3.0-canary.83","v16.3.0-canary.82","v16.3.0-canary.81","v16.3.0-canary.76","v16.3.0-canary.80","v16.3.0-canary.79","v16.3.0-canary.78","v16.3.0-canary.77","v16.3.0-canary.75","v16.3.0-canary.74","v16.3.0-canary.73","v16.3.0-canary.72","v16.3.0-canary.70","v16.3.0-canary.71","v16.3.0-canary.69","v16.3.0-canary.65","v16.3.0-canary.68","v16.3.0-preview.5","v16.3.0-canary.67","v16.3.0-canary.66","v16.3.0-preview.4","v16.3.0-canary.64","v16.3.0-canary.63","v16.3.0-canary.62","v16.3.0-canary.61","v16.3.0-canary.60","v16.3.0-canary.59","v16.3.0-canary.58","v16.3.0-canary.56","v16.3.0-canary.57","v16.3.0-canary.54","v16.3.0-canary.55","v16.3.0-canary.53","v16.3.0-canary.52","v16.3.0-canary.51","v16.3.0-canary.50","v16.3.0-canary.49","v16.3.0-canary.48","v16.3.0-canary.47","v16.3.0-canary.46","v16.3.0-canary.45","v16.3.0-canary.44","v16.3.0-canary.43","v16.3.0-canary.42","v16.3.0-canary.41","v16.3.0-canary.40","v16.3.0-canary.39","v16.3.0-canary.38","v16.3.0-canary.37","v16.3.0-canary.36","v16.3.0-canary.35","v16.3.0-canary.34","v16.3.0-canary.33","v16.3.0-canary.32","v16.3.0-canary.31","v16.3.0-canary.30","v16.3.0-canary.29","v16.3.0-canary.28","v16.3.0-canary.27","v16.3.0-canary.26","v16.3.0-canary.25","v16.3.0-canary.24","v16.3.0-canary.23","v16.3.0-canary.22","v16.3.0-canary.21","v16.3.0-canary.20","v16.3.0-canary.19","v16.3.0-canary.18","v16.3.0-canary.17","v16.3.0-canary.16","v16.3.0-canary.15","v16.3.0-canary.12","v16.3.0-canary.14","v16.3.0-canary.13","v16.3.0-canary.11","v16.3.0-canary.10","v16.3.0-canary.9","v16.3.0-canary.8","v16.3.0-canary.7","v16.3.0-canary.6","v16.3.0-canary.4","v16.3.0-canary.5","v16.3.0-canary.3","v16.3.0-canary.2","v16.3.0-canary.1","v16.3.0-canary.0","v16.2.1-canary.46","v16.2.1-canary.45","v16.2.1-canary.44","v16.2.1-canary.43","v16.2.1-canary.42","v16.2.1-canary.41","v16.2.1-canary.40","v16.2.1-canary.39","v16.2.1-canary.38","v16.2.1-canary.37","v16.2.1-canary.36","v16.2.1-canary.35","v16.2.1-canary.34","v16.2.1-canary.33","v16.2.1-canary.32","v16.2.1-canary.31","v16.2.1-canary.30","v16.2.1-canary.29","v16.2.1-canary.28","v16.2.1-canary.27","v16.2.1-canary.26","v16.2.1-canary.25","v16.2.1-canary.24","v16.2.1-canary.23","v16.2.1-canary.22","v16.2.1-canary.21","v16.2.1-canary.20","v16.2.1-canary.19","v16.2.1-canary.18","v16.2.1-canary.17","v16.2.1-canary.16","v16.2.1-canary.15","v16.2.1-canary.14","v16.2.1-canary.13","v16.2.1-canary.11","v16.2.1-canary.12","v16.2.1-canary.10","v16.2.1-canary.9","v16.2.1-canary.8","v16.2.1-canary.7","v16.2.1-canary.6","v16.2.1-canary.5","v16.2.1-canary.4","v16.2.1-canary.3","v16.2.1-canary.2","v16.2.1-canary.1","v16.2.1-canary.0","v16.2.0"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-94545.json"}},{"ranges":[{"type":"GIT","repo":"https://github.com/vercel/satori","events":[{"introduced":"0"},{"fixed":"26a52affc031216fee5882b6e965c8dbc7ac1782"}],"database_specific":{"extracted_events":[{"introduced":"0.0.27"},{"fixed":"0.33.5"}],"source":"AFFECTED_FIELD"}}],"versions":["0.33.4","0.33.3","0.33.2","0.33.1","0.33.0","0.32.0","0.31.0","0.30.0","0.29.1","0.29.0","0.28.2","0.28.1","0.28.0","0.27.2","0.27.1","0.27.0","0.26.0","0.25.0","0.24.1","0.24.0","0.23.0","0.22.0","0.21.0","0.20.0","0.19.3","0.19.2","0.19.1","0.19.0","0.18.4","0.18.3","0.18.2","0.18.1","0.18.0","0.17.0","0.16.2","0.16.1","0.16.0","0.15.2","0.15.1","0.15.0","0.14.1","0.14.0","0.13.2","0.13.1","0.13.0","0.12.2","0.12.1","0.12.0","0.11.3","0.11.2","0.11.1","0.11.0","0.10.14","0.10.13","0.10.12","0.10.11","0.10.10","0.10.9","0.10.8","0.10.7","0.10.6","0.10.5","0.10.4","0.10.3","0.10.2","0.10.1","0.10.0","0.9.1","0.9.0","0.8.1","0.8.0","0.7.4","0.7.3","0.7.2","0.7.1","0.7.0","0.6.0","0.5.0","0.4.14","0.4.13","0.4.12","0.4.11","0.4.10","0.4.9","0.4.8","0.4.7","0.4.6","0.4.5","0.4.4","0.4.3","0.4.2","0.4.1","0.4.0","0.3.2","0.3.1","0.3.0","0.2.5","0.2.4","0.2.3","0.2.2","0.2.1","0.2.0","0.1.2","0.1.1","0.1.0","0.0.46","0.0.45","0.0.44","0.0.43","0.0.42","0.0.41","0.0.40"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-94545.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V4","score":"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"}]}