lazy_html serializes SVG and MathML style and script text unescaped, allowing mutation XSS
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
CVE-2026-92106
Primary source · Revision 1
Imported from structured advisory data. Source references identify upstream records or fields; verify affected versions and your deployed configuration.
Security context
Source reference: cve:CVE-2026-92106
lazy_html
Source reference: /containers/cna/affected/0/product
- Affected versions
- Not stated in this record
- Fixed versions
- Not stated in this record
- Prerequisites
- Not stated in this record
lazy_html
Source reference: /containers/cna/affected/1/product
- Affected versions
- Not stated in this record
- Fixed versions
- Not stated in this record
- Prerequisites
- Not stated in this record
Structured affected-version data
Original package identities and version rules from this source.
[
{
"cpes": [
"cpe:2.3:a:dashbitco:lazy_html:*:*:*:*:*:*:*:*"
],
"repo": "https://github.com/dashbitco/lazy_html",
"vendor": "dashbitco",
"modules": [
"'Elixir.LazyHTML.Tree'",
"'Elixir.LazyHTML'",
"'Elixir.LazyHTML.NIF'"
],
"product": "lazy_html",
"versions": [
{
"status": "affected",
"version": "0.1.0",
"lessThan": "0.1.13",
"versionType": "semver"
}
],
"packageURL": "pkg:hex/lazy_html",
"packageName": "lazy_html",
"programFiles": [
"lib/lazy_html/tree.ex",
"lib/lazy_html.ex",
"c_src/lazy_html.cpp"
],
"collectionURL": "https://repo.hex.pm",
"defaultStatus": "unaffected",
"programRoutines": [
{
"name": "'Elixir.LazyHTML.Tree':to_html/2"
},
{
"name": "'Elixir.LazyHTML':to_html/2"
},
{
"name": "is_noescape_text_node"
}
]
},
{
"cpes": [
"cpe:2.3:a:dashbitco:lazy_html:*:*:*:*:*:*:*:*"
],
"repo": "https://github.com/dashbitco/lazy_html",
"vendor": "dashbitco",
"modules": [
"'Elixir.LazyHTML.Tree'",
"'Elixir.LazyHTML'",
"'Elixir.LazyHTML.NIF'"
],
"product": "lazy_html",
"versions": [
{
"status": "affected",
"version": "1dee15746c024916b3110af8b168c2f3b3065fbd",
"lessThan": "f32c7fd6223225b68bc8691c78b6d4a77972f1d5",
"versionType": "git"
}
],
"packageURL": "pkg:github/dashbitco/lazy_html",
"packageName": "dashbitco/lazy_html",
"programFiles": [
"lib/lazy_html/tree.ex",
"lib/lazy_html.ex",
"c_src/lazy_html.cpp"
],
"collectionURL": "https://github.com",
"defaultStatus": "unaffected",
"programRoutines": [
{
"name": "'Elixir.LazyHTML.Tree':to_html/2"
},
{
"name": "'Elixir.LazyHTML':to_html/2"
},
{
"name": "is_noescape_text_node"
}
]
}
]- Related CVEs
- CVE-2026-92106
Source reference:
/cveMetadata/cveId
Publisher severity
low
Source reference: /containers/cna/metrics
- Event
- #2032 · Revision 1
- Added to Heist Feed
- Publisher date