{"id":"CVE-2026-113654","title":"ApostropheCMS sanitize-html: nonTextTags discard region ends early on an implied close, letting <noscript> content render","summary":"ApostropheCMS is an open-source Node.js content management system, and sanitize-html provides a simple HTML sanitizer with a clear API. Prior to sanitize-html 2.18.0, a non-default nonTextTags configuration that includes noscript can end…","severity":"medium","cvss":5.3,"cvssVector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N","cvssSource":"cna","cwe":["CWE-79"],"vendor":"apostrophecms","product":"apostrophe","affected":["apostrophe < 4.33.0","sanitize-html < 2.18.0"],"ssvc":{"exploitation":"poc","automatable":"no","technicalImpact":"partial","timestamp":"2026-10-28T14:00:57.292356Z"},"exploitAvailable":true,"published":"2026-10-20","updated":"2026-10-28","sourceUpdated":"2026-10-28T14:01:09.403Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-113654","references":[{"url":"https://github.com/apostrophecms/apostrophe/security/advisories/GHSA-x3q4-9hxx-gx8m","label":"https://github.com/apostrophecms/apostrophe/security/advisories/GHSA-x3q4-9hxx-gx8m"},{"url":"https://github.com/apostrophecms/apostrophe/commit/9500b8b0e1d630d5e07fbb5fd2c25ed0943845ce","label":"https://github.com/apostrophecms/apostrophe/commit/9500b8b0e1d630d5e07fbb5fd2c25ed0943845ce"},{"url":"https://github.com/apostrophecms/apostrophe/commit/f84fd41cbf6c22eb8d0008fc9c25df1f7130b350","label":"https://github.com/apostrophecms/apostrophe/commit/f84fd41cbf6c22eb8d0008fc9c25df1f7130b350"},{"url":"https://github.com/apostrophecms/apostrophe/releases/tag/sanitize-html@2.18.0","label":"https://github.com/apostrophecms/apostrophe/releases/tag/sanitize-html@2.18.0"},{"url":"https://github.com/advisories/GHSA-x3q4-9hxx-gx8m"}],"tags":["cve.org","exploit-available","ghsa","npm"],"epss":0.00349,"epssPercentile":0.28301,"aliases":["GHSA-x3q4-9hxx-gx8m"],"ecosystem":"npm","patched":["sanitize-html 2.18.0"],"ingestedAt":"2026-10-20T17:12:53.600Z","slug":"CVE-2026-113654","body":"## Overview\n\nApostropheCMS is an open-source Node.js content management system, and sanitize-html provides a simple HTML sanitizer with a clear API. Prior to sanitize-html 2.18.0, a non-default nonTextTags configuration that includes noscript can end its discard region early when htmlparser2 emits an implied ancestor close inside noscript. Because scripting-enabled browsers treat noscript content as raw text while the parser does not model that mode, content intended to remain inert can survive sanitization and render; the issue does not generalize to every default nonTextTags element. This issue is fixed in sanitize-html 2.18.0.\n\n## Affected\n\n- `apostrophe < 4.33.0`\n- `sanitize-html < 2.18.0`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.\n\n## Package advisory (CVE-2026-113654)\n\nAffected packages:\n\n- `sanitize-html < 2.18.0`\n\nPatched in:\n\n- `sanitize-html 2.18.0`\n\nSource: https://github.com/advisories/GHSA-x3q4-9hxx-gx8m","depth":"twilight","depthScore":41,"depthScoreParts":{"impact":29.2,"likelihood":0.1,"exploitation":12,"ransomware":0},"changes":[{"seq":230608,"id":"CVE-2026-113654","ts":1793196774188,"field":"exploit_available","old":"false","new":"true"}]}