EEF-CVE-2026-92106
lazy_html serializes SVG and MathML style and script text unescaped, allowing mutation XSS
Quick fix
EEF-CVE-2026-92106 — lazy_html: upgrade to the fixed version with the command below.
mix deps.update lazy_htmlDetails
## Summary
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.
`LazyHTML.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 `</style><img src=x onerror=...>` inside `<svg><style>` 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.
This issue affects lazy_html: from 0.1.0 before 0.1.13.
## Impact
An attacker who can submit HTML to an application that sanitizes it with lazy_html can run script in the browsers of users who view the sanitized output.
Are you affected?
Enter the version of the package you're using.
Affected packages
References
- https://github.com/dashbitco/lazy_html/security/advisories/GHSA-8rqp-v692-v82q[ADVISORY]
- https://cna.erlef.org/cves/CVE-2026-92106.html[WEB]
- https://github.com/dashbitco/lazy_html/commit/1dee15746c024916b3110af8b168c2f3b3065fbd[WEB]
- https://github.com/dashbitco/lazy_html/commit/f32c7fd6223225b68bc8691c78b6d4a77972f1d5[FIX]
- https://hex.pm/packages/lazy_html[PACKAGE]