{"id":"CVE-2026-44990","revision":"a13cb817a77f49e9bcfdb486ef5bfc16","records":[{"revision":"a13cb817a77f49e9bcfdb486ef5bfc16","observedAt":"2026-10-23T15:48:27.903+00:00","statement":{"source":"cve-program","id":"CVE-2026-44990","aliases":[],"title":"Apostrophe has default XSS via `xmp` raw-text passthrough in `sanitize-html`","description":"ApostropheCMS is an open-source Node.js content management system, and sanitize-html provides a simple HTML sanitizer with a clear API. Under the default configuration, versions of `sanitize-html` prior to 2.17.4 can turn attacker-controlled content inside a disallowed `xmp` element into live HTML or JavaScript. This is a sanitizer bypass in the default `disallowedTagsMode: 'discard'` path and can lead to stored XSS in applications that render sanitized output back to users. Version 2.17.4 patches the issue.","state":0,"publishedAt":"2026-06-12T20:39:47.065+00:00","modifiedAt":"2026-09-10T12:05:09.696+00:00","affected":[{"ecosystem":"Vendor product","name":"sanitize-html","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"vendor\": \"apostrophecms\",\n                    \"product\": \"sanitize-html\",\n                    \"versions\": [\n                        {\n                            \"version\": \"< 2.17.4\",\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:H/I:H/A:N","score":9.3,"severity":"CRITICAL"}],"references":["https://github.com/apostrophecms/apostrophe/security/advisories/GHSA-rpr9-rxv7-x643"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-44990","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-44990","identifiers":["CVE-2026-44990"]},"retained":false,"historicalAffected":[]}],"coverage":[]}