GitHub Advisoryadvisory · crates.io
GHSA-mm7x-qfjj-5g2c Ammonia incorrectly handles embedded SVG and MathML leading to mutation XSS after removal
LOW
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