{"id":"CVE-2020-26870","aliases":["CLSA-2026-1792601061","DLA-2419-1","EUVD-2020-1486","GHSA-63q7-h895-m982","UBUNTU-CVE-2020-26870"],"status":"published","title":"Cross-site Scripting in dompurify","description":"Cure53 DOMPurify before 2.0.17 allows mutation XSS. This occurs because a serialize-parse roundtrip does not necessarily return the original DOM tree, and a namespace can change from HTML to MathML, as demonstrated by nesting of FORM elements.","severity":{"version":"3.1","score":6.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","level":"medium","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-11","score":0.04881,"percentile":0.92175,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-79"],"published":"2020-10-07T15:50:09Z","modified":"2026-10-21T20:30:50Z","fixes":[{"ecosystem":"npm","package":"dompurify","fixed_in":["2.0.17"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"dompurify","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.0.17"}]}]},{"source":"osv","ecosystem":"TuxCare:npm","package":"dompurify","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.0.8-tuxcare.0"},{"fixed":"2.0.8-tuxcare.4"}]}],"versions":["2.0.8","2.0.8-tuxcare.1","2.0.8-tuxcare.2","2.0.8-tuxcare.3"],"bundled":2},{"source":"osv","ecosystem":"Debian:9","package":"dompurify.js","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.8.2~dfsg1-1+deb9u1"}]}],"versions":["0.8.2~dfsg1-1"],"bundled":2},{"source":"osv","ecosystem":"npm","package":"dompurify","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"2.0.17"}]}]},{"source":"osv","ecosystem":"Ubuntu:16.04:LTS","package":"dompurify.js","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.7.3~dfsg1-1","0.7.3~dfsg1-2"]},{"source":"osv","ecosystem":"Ubuntu:18.04:LTS","package":"dompurify.js","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.9.0~dfsg1-1","0.9.0~dfsg1-2"]}],"products":[{"vendor":"cure53","product":"dompurify"},{"vendor":"debian","product":"debian_linux"},{"vendor":"microsoft","product":"visual_studio_2017"},{"vendor":"microsoft","product":"visual_studio_2019"},{"vendor":"oracle","product":"application_express"}],"references":[{"url":"https://research.securitum.com/mutation-xss-via-mathml-mutation-dompurify-2-0-17-bypass/","tags":["x_refsource_MISC","x_transferred","Exploit","Third Party Advisory","evidence","report"]},{"url":"https://github.com/cure53/DOMPurify/commit/02724b8eb048dd219d6725b05c3000936f11d62d","tags":["x_refsource_MISC","x_transferred","Patch","Third Party Advisory","fix","web","report"]},{"url":"https://github.com/cure53/DOMPurify/compare/2.0.16...2.0.17","tags":["x_refsource_MISC","x_transferred","Patch","Third Party Advisory","fix","web"]},{"url":"https://lists.debian.org/debian-lts-announce/2020/10/msg00029.html","tags":["mailing-list","x_refsource_MLIST","x_transferred","Mailing List","Third Party Advisory","advisory","web"]},{"url":"https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-26870","tags":["vendor-advisory","x_refsource_MS","x_transferred","Patch","Vendor Advisory","fix","web"]},{"url":"https://www.oracle.com//security-alerts/cpujul2021.html","tags":["x_refsource_MISC","x_transferred","Patch","Third Party Advisory","fix","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-26870","tags":["advisory"]},{"url":"https://snyk.io/vuln/SNYK-JS-DOMPURIFY-1016634","tags":["web"]},{"url":"https://github.com/advisories/GHSA-63q7-h895-m982"},{"url":"https://github.com/cure53/DOMPurify","tags":["package"]},{"url":"https://research.securitum.com/mutation-xss-via-mathml-mutation-dompurify-2-0-17-bypass","tags":["web"]},{"url":"https://ubuntu.com/security/CVE-2020-26870","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2020-26870","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2020-26870","description":"Cure53 DOMPurify before 2.0.17 allows mutation XSS. This occurs because a serialize-parse roundtrip does not necessarily return the original DOM tree, and a namespace can change from HTML to MathML, as demonstrated by nesting of FORM elements.","status":"published","published":"2020-10-07T15:50:09Z","modified":"2024-08-04T16:03:22.865Z","updated_at":"2026-11-02T14:35:46.129376Z"}],"euvd":[{"id":"EUVD-2020-1486","description":"Cure53 DOMPurify before 2.0.17 allows mutation XSS. This occurs because a serialize-parse roundtrip does not necessarily return the original DOM tree, and a namespace can change from HTML to MathML, as demonstrated by nesting of FORM elements.","status":"published","published":"2020-10-07T15:50:09Z","modified":"2024-08-04T16:03:22Z","updated_at":"2026-11-03T03:07:14.653267Z"}],"ghsa":[{"id":"GHSA-63q7-h895-m982","title":"Cross-site Scripting in dompurify","description":"Cure53 DOMPurify before 2.0.17 allows mutation XSS. This occurs because a serialize-parse roundtrip does not necessarily return the original DOM tree, and a namespace can change from HTML to MathML, as demonstrated by nesting of FORM elements.","status":"published","published":"2020-12-18T22:51:40Z","modified":"2023-02-01T05:05:07Z","cvss":[{"version":"3.1","score":6.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","level":"medium"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T14:36:32.918681Z"}],"nvd":[{"id":"CVE-2020-26870","description":"Cure53 DOMPurify before 2.0.17 allows mutation XSS. This occurs because a serialize-parse roundtrip does not necessarily return the original DOM tree, and a namespace can change from HTML to MathML, as demonstrated by nesting of FORM elements.","status":"published","published":"2020-10-07T16:15:18.03Z","modified":"2026-06-17T03:08:26.847Z","cvss":[{"version":"3.1","score":6.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","level":"medium","assessor":"primary"},{"version":"2.0","score":4.3,"vector":"AV:N/AC:M/Au:N/C:N/I:P/A:N","level":"medium","assessor":"primary"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T14:06:17.70091Z"}],"osv":[{"id":"CVE-2020-26870","description":"Cure53 DOMPurify before 2.0.17 allows mutation XSS. This occurs because a serialize-parse roundtrip does not necessarily return the original DOM tree, and a namespace can change from HTML to MathML, as demonstrated by nesting of FORM elements.","status":"published","published":"2020-10-07T16:15:18.03Z","modified":"2026-10-20T10:52:58.617018534Z","cvss":[{"version":"3.1","score":6.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","level":"medium"}],"updated_at":"2026-11-02T15:44:16.248747Z"},{"id":"GHSA-63q7-h895-m982","title":"Cross-site Scripting in dompurify","description":"Cure53 DOMPurify before 2.0.17 allows mutation XSS. This occurs because a serialize-parse roundtrip does not necessarily return the original DOM tree, and a namespace can change from HTML to MathML, as demonstrated by nesting of FORM elements.","status":"published","published":"2020-12-18T22:51:40Z","modified":"2023-11-08T04:03:20.09689Z","cvss":[{"version":"3.1","score":6.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","level":"medium"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T15:46:38.911014Z"},{"id":"UBUNTU-CVE-2020-26870","description":"Cure53 DOMPurify before 2.0.17 allows mutation XSS. This occurs because a serialize-parse roundtrip does not necessarily return the original DOM tree, and a namespace can change from HTML to MathML, as demonstrated by nesting of FORM elements.","status":"published","published":"2020-10-07T16:15:00Z","modified":"2025-10-24T04:48:49Z","cvss":[{"version":"3.1","score":6.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","level":"medium"}],"updated_at":"2026-11-02T15:54:24.541803Z"},{"id":"CLSA-2026-1792601061","title":"TuxCare security update for dompurify (2 CVEs)","description":"TuxCare rebuilt dompurify to address 2 CVEs. Fixed in 2.0.8-tuxcare.4.","status":"published","published":"2026-10-21T16:44:21Z","modified":"2026-10-21T20:30:50.501154271Z","updated_at":"2026-11-02T15:43:54.672859Z"},{"id":"DLA-2419-1","title":"dompurify.js - security update","status":"published","published":"2020-10-29T00:00:00Z","modified":"2026-03-09T01:21:54.64281Z","updated_at":"2026-11-02T15:46:10.712745Z"}]}}
