{"id":"CVE-2026-49458","revision":"2d29ecd72ba640e69186ad360f80691e","records":[{"revision":"2d29ecd72ba640e69186ad360f80691e","observedAt":"2026-10-23T15:48:27.903+00:00","statement":{"source":"cve-program","id":"CVE-2026-49458","aliases":[],"title":"DOMPurify: Cross-realm IN_PLACE sanitization leaves executable markup intact via realm-bound `instanceof` checks","description":"DOMPurify is a DOM-only cross-site scripting sanitizer for HTML, MathML, and SVG. Prior to 3.4.6, DOMPurify.sanitize(node, { IN_PLACE: true }) accepted same-origin foreign-realm DOM nodes while follow-on checks used parent-realm constructors, causing instanceof checks for forms, named node maps, document fragments, and elements to fail and skip clobber, template-content, and shadow-DOM sanitization branches so executable markup could survive. This issue is fixed in version 3.4.6.","state":0,"publishedAt":"2026-07-14T19:58:50.397+00:00","modifiedAt":"2026-07-15T13:03:02.384+00:00","affected":[{"ecosystem":"Vendor product","name":"DOMPurify","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"vendor\": \"cure53\",\n                    \"product\": \"DOMPurify\",\n                    \"versions\": [\n                        {\n                            \"version\": \"< 3.4.6\",\n                            \"status\": \"affected\"\n                        }\n                    ]\n                }"}],"metrics":[{"system":"CVSS 3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","score":6.1,"severity":"MEDIUM"}],"references":["https://github.com/cure53/DOMPurify/security/advisories/GHSA-hpcv-96wg-7vj8","https://github.com/cure53/DOMPurify/commit/bb7739e5bccec7e1ab3dae3f3e42d02db3acaaae","https://github.com/cure53/DOMPurify/releases/tag/3.4.6"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-49458","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-49458","identifiers":["CVE-2026-49458"]},"retained":false,"historicalAffected":[]}],"coverage":[]}