{"id":"CVE-2026-92106","summary":"lazy_html serializes SVG and MathML style and script text unescaped, allowing mutation XSS","details":"Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') vulnerability in dashbitco lazy_html allows mutation XSS via a parse and serialize round-trip of attacker-supplied HTML.\n\nLazyHTML.to_html/2 and LazyHTML.Tree.to_html/2 decide whether to escape an element's text from its tag name alone. A style or script element inside SVG or MathML foreign content is parsed with character references decoded, but is serialized as an HTML raw-text element, so its text is emitted unescaped. Encoded markup such as &lt;/style&gt;&lt;img src=x onerror=...&gt; inside \u003csvg\u003e\u003cstyle\u003e therefore closes the element on re-parse and becomes live markup. Applications that parse untrusted HTML with lazy_html, filter the document or tree, and serialize it for display are affected, since the payload is a plain text node that no element or attribute filter sees.\n\nThis issue affects lazy_html: from 0.1.0 before 0.1.13.","aliases":["EEF-CVE-2026-92106","GHSA-8rqp-v692-v82q"],"modified":"2026-10-22T16:37:53.229657334Z","published":"2026-09-25T09:33:13.051Z","database_specific":{"cwe_ids":["CWE-79"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/92xxx/CVE-2026-92106.json","cna_assigner":"EEF"},"references":[{"type":"WEB","url":"https://cna.erlef.org/cves/CVE-2026-92106.html"},{"type":"WEB","url":"https://github.com"},{"type":"WEB","url":"https://osv.dev/vulnerability/EEF-CVE-2026-92106"},{"type":"WEB","url":"https://repo.hex.pm"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/92xxx/CVE-2026-92106.json"},{"type":"ADVISORY","url":"https://github.com/dashbitco/lazy_html/security/advisories/GHSA-8rqp-v692-v82q"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-92106"},{"type":"FIX","url":"https://github.com/dashbitco/lazy_html/commit/1dee15746c024916b3110af8b168c2f3b3065fbd"},{"type":"FIX","url":"https://github.com/dashbitco/lazy_html/commit/f32c7fd6223225b68bc8691c78b6d4a77972f1d5"},{"type":"PACKAGE","url":"https://github.com/dashbitco/lazy_html"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/dashbitco/lazy_html","events":[{"introduced":"1dee15746c024916b3110af8b168c2f3b3065fbd"},{"fixed":"f32c7fd6223225b68bc8691c78b6d4a77972f1d5"},{"introduced":"76bfe57827882c9c9902eef76033def1dbb085a1"},{"fixed":"30ca456da183c9c34e74b5b2d11df4fc77a0e679"},{"fixed":"1dee15746c024916b3110af8b168c2f3b3065fbd"}],"database_specific":{"extracted_events":[{"range":[{"introduced":"1dee15746c024916b3110af8b168c2f3b3065fbd"},{"fixed":"f32c7fd6223225b68bc8691c78b6d4a77972f1d5"}],"source":"AFFECTED_FIELD","strategy":"StandardRange"},{"source":"AFFECTED_FIELD","strategy":"StandardRange","range":[{"introduced":"0.1.0"},{"fixed":"0.1.13"}]},{"source":"REFERENCES_COMMIT","range":[{"fixed":"1dee15746c024916b3110af8b168c2f3b3065fbd"}]},{"source":"REFERENCES_COMMIT","range":[{"fixed":"f32c7fd6223225b68bc8691c78b6d4a77972f1d5"}]}]}}],"versions":["v0.1.12","v0.1.11","v0.1.10","v0.1.9","v0.1.8","v0.1.7","v0.1.6","v0.1.5","v0.1.4","v0.1.3","v0.1.2","v0.1.1","v0.1.0"],"database_specific":{"source":"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-92106.json","vanir_signatures":[{"digest":{"line_hashes":["90580969371312759060218553849842762155","280370715495015491356308257904647850745","313156110902979146990051129963006853764","76688445630280347675906510080577143580"],"threshold":0.9},"id":"CVE-2026-92106-3b362797","signature_type":"Line","signature_version":"v1","source":"https://github.com/dashbitco/lazy_html/commit/f32c7fd6223225b68bc8691c78b6d4a77972f1d5","target":{"file":"c_src/lazy_html.cpp"},"deprecated":false},{"signature_version":"v1","source":"https://github.com/dashbitco/lazy_html/commit/f32c7fd6223225b68bc8691c78b6d4a77972f1d5","target":{"function":"is_noescape_text_node","file":"c_src/lazy_html.cpp"},"deprecated":false,"digest":{"function_hash":"310579417436848425715483271822210258623","length":301},"id":"CVE-2026-92106-48a8e963","signature_type":"Function"}],"vanir_signatures_modified":"2026-10-22T16:37:53Z"}}],"schema_version":"1.9.2","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:L/SI:L/SA:N"}]}