Lazy Html
Monthly
Mutation XSS in the Elixir library LazyHTML 0.1.0 through 0.1.12 lets attacker-supplied markup slip past element and attribute allowlist filters and turn into live HTML when the filtered document is serialized for display. The defect is in LazyHTML.to_html/2 and LazyHTML.Tree.to_html/2, which decide whether to escape an element's text from the tag name alone, so a style or script element inside SVG or MathML foreign content is parsed with character references decoded yet serialized as an unescaped HTML raw-text element; encoded markup such as </style><img src=x onerror=...> inside <svg><style> therefore closes the element on re-parse and executes. Exploitation is unauthenticated and remote but conditional: the consumer application must parse untrusted HTML with lazy_html, filter the document or tree, and serialize the result to a victim who views it (user interaction required), which keeps real-world impact low (scope change, low confidentiality and integrity, no availability impact); no public exploit identified at time of analysis, and the vendor has shipped a fix in 0.1.13.
Mutation XSS in the Elixir library LazyHTML 0.1.0 through 0.1.12 lets attacker-supplied markup slip past element and attribute allowlist filters and turn into live HTML when the filtered document is serialized for display. The defect is in LazyHTML.to_html/2 and LazyHTML.Tree.to_html/2, which decide whether to escape an element's text from the tag name alone, so a style or script element inside SVG or MathML foreign content is parsed with character references decoded yet serialized as an unescaped HTML raw-text element; encoded markup such as </style><img src=x onerror=...> inside <svg><style> therefore closes the element on re-parse and executes. Exploitation is unauthenticated and remote but conditional: the consumer application must parse untrusted HTML with lazy_html, filter the document or tree, and serialize the result to a victim who views it (user interaction required), which keeps real-world impact low (scope change, low confidentiality and integrity, no availability impact); no public exploit identified at time of analysis, and the vendor has shipped a fix in 0.1.13.