GitHub Advisoryadvisory · crates.io

GHSA-mm7x-qfjj-5g2c Ammonia incorrectly handles embedded SVG and MathML leading to mutation XSS after removal

LOW Published 2025-09-22 Modified 2025-09-22 Official page ↗
Ecosystem
crates.io
Packages
ammonia
Severity
Low
CVSS vector
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N/E:U
Weaknesses
CWE-79
Reviewed
2025-09-22

Affected packages

• crates.io ammonia: >= 4.1.0, < 4.1.2 → fixed in 4.1.2 • crates.io ammonia: >= 4.0.0, < 4.0.1 → fixed in 4.0.1 • crates.io ammonia: < 3.3.1 → fixed in 3.3.1

Description

Affected versions of this crate did not correctly strip namespace-incompatible tags in certain situations, causing it to incorrectly account for differences between HTML, SVG, and MathML. This vulnerability only has an effect when the `svg` or `math` tag is allowed, because it relies on a tag being parsed as html during the cleaning process, but serialized in a way that causes in to be parsed as xml by the browser. Additionally, the application using this library must allow a tag that is parsed as raw text in HTML. These [elements] are: • title • textarea • xmp • iframe • noembed • noframes • plaintext • noscript • style • script Applications that do not explicitly allow any of these tags should not be affected, since none are allowed by default. [elements]: https://github.com/servo/html5ever/blob/57eb334c0ffccc6f88d563419f0fbeef6ff5741c/html5ever/src/tree_builder/rules.rs

Related

Weakness · CWE (1)

  • CWE-79 Improper Neutralization of Input During Web Page Generation weakness

References