VDB
Sign up
—

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_html

Details

## 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 `&lt;/style&gt;&lt;img src=x onerror=...&gt;` 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

Hex/lazy_html
Introduced in: 0.1.0Fixed in: 0.1.13
Fixmix deps.update lazy_html

References