CVE-2026-92106 json
lazy_html serializes SVG and MathML style and script text unescaped, allowing mutation XSS
published last mo. modified last mo. also EEF-CVE-2026-92106 , EUVD-2026-86828 , GHSA-8rqp-v692-v82q
- cvss
- 2.3
- version 4.0, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.4%
- EPSS 0.4% chance of exploitation in 30 days, percentile 34%
- public exploits
- 0
- none known
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.
Patch / fix
- hex lazy_html 0.1.13
- dashbitco lazy_html 0.1.13
Is CVE-2026-92106 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerCISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- last mo.
Exploit prediction
0.39% chance of exploitation in the next 30 days, higher than 34% of all scored CVEs (FIRST EPSS, 2026-11-11).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 2.3 | 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 |
| CNA | 4.0 | 2.3 | 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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| hex | lazy_html | >=0.1.0, <0.1.13 |
0.1.13 |
Affected products
- dashbitco lazy_html
Classification
- Weakness
-
- CWE-79 Improper Neutralization of Input During Web Page Generation
References
-
github.com
/dashbitco/lazy_html/commit/1dee15746c024916b3110af8b168c2f3b3065fbd
related, web
-
github.com
/dashbitco/lazy_html/commit/f32c7fd6223225b68bc8691c78b6d4a77972f1d5
patch
-
github.com
/dashbitco/lazy_html/security/advisories/GHSA-8rqp-v692-v82q
related, vendor-advisory, advisory
-
cna.erlef.org
/cves/CVE-2026-92106.html
related, web
-
osv.dev
/vulnerability/EEF-CVE-2026-92106
related
-
hex.pm
/packages/lazy_html
package
Sources
- CVE List CVE-2026-92106
- NVD CVE-2026-92106
- OSV EEF-CVE-2026-92106
- Maintainer advisory GHSA-8rqp-v692-v82q
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
The maintainers of dashbitco/lazy_html published their own advisory on GitHub. Reviewed sources take precedence over it.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.