{"id":"GHSA-f2pc-rwv3-69mv","aliases":["RUSTSEC-2021-0158"],"status":"published","title":"XSS in ammonia via SVG `animateMotion`, `animateTransform`, and/or `animateColor` tags","description":"The neutralization that ammonia applied to `animate` and `set` was not applied to other forms of SVG animation, which can be used for XSS.\n\nThe following SVG will produce a link with a javascript scheme.\nIf the user clicks this link, they will run it.\n\n```xml\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\"\u003e\n  \u003ca\u003e\n    \u003canimateMotion attributeName=\"href\" to=\"javascript:alert('SET_XSS')\"\u003e\u003c/animateMotion\u003e\n    \u003ctext y=\"30\"\u003eClick set\u003c/text\u003e\n  \u003c/a\u003e\n\u003c/svg\u003e\n```\n\nAmmonia did not apply attribute filters based on `attributeName`,\nso the contents of the `to`, `from`, and `values` tags were not sanitized as URLs.\n\nApplications that do not explicitly allow any of these tags should not be affected,\nsince none are allowed by default.\n\n---\n\nThis vulnerability was reported by [ucsurf](https://uc.surf).","facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"published":"2021-10-10T12:00:00Z","modified":"2026-10-13T07:30:02Z","fixes":[{"ecosystem":"crates.io","package":"ammonia","fixed_in":["4.1.7","4.2.3"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"crates.io","package":"ammonia","ranges":[{"type":"SEMVER","events":[{"introduced":"0.0.0-0"},{"fixed":"4.1.7"},{"introduced":"4.2.0"},{"fixed":"4.2.3"}]}]}],"references":[{"url":"https://crates.io/crates/ammonia","tags":["package"]},{"url":"https://rustsec.org/advisories/RUSTSEC-2021-0158.html","tags":["advisory"]},{"url":"https://github.com/rust-ammonia/ammonia/pull/261","tags":["web"]}],"sources":{"osv":[{"id":"RUSTSEC-2021-0158","title":"XSS in ammonia via SVG `animateMotion`, `animateTransform`, and/or `animateColor` tags","description":"The neutralization that ammonia applied to `animate` and `set` was not applied to other forms of SVG animation, which can be used for XSS.\n\nThe following SVG will produce a link with a javascript scheme.\nIf the user clicks this link, they will run it.\n\n```xml\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\"\u003e\n  \u003ca\u003e\n    \u003canimateMotion attributeName=\"href\" to=\"javascript:alert('SET_XSS')\"\u003e\u003c/animateMotion\u003e\n    \u003ctext y=\"30\"\u003eClick set\u003c/text\u003e\n  \u003c/a\u003e\n\u003c/svg\u003e\n```\n\nAmmonia did not apply attribute filters based on `attributeName`,\nso the contents of the `to`, `from`, and `values` tags were not sanitized as URLs.\n\nApplications that do not explicitly allow any of these tags should not be affected,\nsince none are allowed by default.\n\n---\n\nThis vulnerability was reported by [ucsurf](https://uc.surf).","status":"published","published":"2021-10-10T12:00:00Z","modified":"2026-10-13T07:30:02.289306454Z","updated_at":"2026-11-02T15:53:39.971022Z"}]}}
