CVE-2026-63430: ammonia: mXSS via MathML `annotation-xml` encoding strip
If a certain set of MathML tags are enabled, an attacker can inject arbitrary JavaScript code into the user’s browser.
The annotation-xml tag has slightly different behavior than the other “integration point”
tags in MathML and SVG, but ammonia didn’t handle it, so it didn’t correctly
strip the namespace-incompatible tags.
This vulnerability only has an effect when the math and annotation-xml tags
are both enabled, but the encoding attribute is disabled, because it relies
on the following sequence of steps:
- User writes code like
<math><annotation-xml encoding="text/html"><gadget></annotation-xml></math>. - Namespace filtering checks the DOM, and it passes.
<gadget>is parsed as HTML. - Attribute filter strips it down to
<math><annotation-xml><gadget></annotation-xml></math>. Because the encoding attribute is gone,<gadget>is now parsed as MathML. - The gadget is written in such a way that it exploits the parsing differences between HTML and MathML.
Additionally, the gadget can only be written using 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.
References
- github.com/advisories/GHSA-9jh8-v38h-cvhr
- github.com/rust-ammonia/ammonia/commit/004bf2cee4288f74a6ee619d589e3e90c24c09ca
- github.com/rust-ammonia/ammonia/commit/7ac3fd3145236f28857eeecbadb544c8659cba31
- github.com/rust-ammonia/ammonia/commit/b51bf4f9749ed3cd518330105f20a2c39c9ee274
- github.com/rust-ammonia/ammonia/pull/243
- github.com/rust-ammonia/ammonia/pull/244
- github.com/rust-ammonia/ammonia/pull/245
- github.com/rust-ammonia/ammonia/releases/tag/v3.3.2
- github.com/rust-ammonia/ammonia/releases/tag/v4.0.2
- github.com/rust-ammonia/ammonia/releases/tag/v4.1.3
- github.com/rust-ammonia/ammonia/security/advisories/GHSA-9jh8-v38h-cvhr
- ivan09999.github.io/ammonia-mxss
- nvd.nist.gov/vuln/detail/CVE-2026-63430
- rustsec.org/advisories/RUSTSEC-2026-0193.html
Code Behaviors & Features
Detect and mitigate CVE-2026-63430 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Dependency Scanning using SBOM also detects vulnerabilities from proprietary advisories that this site does not include. Learn more about Dependency Scanning using SBOM →