CVE-2026-113654: ApostropheCMS sanitize-html: nonTextTags discard region ends early on an implied close, letting <noscript> content render
sanitize-html discards the content of every element in nonTextTags. It delimits that region
using htmlparser2’s close events, and ignores the isImplied flag htmlparser2 passes it. Closing a
still-open ancestor from inside a <noscript> makes htmlparser2 unwind its stack past the
noscript; the synthetic implied close it emits on the way ends the discard region early, and
everything after it is treated as ordinary body content.
A browser with scripting enabled parses <noscript> content as raw text, so the same markup
renders as inert text there. The sanitizer therefore emits elements the page itself would not have.
References
- github.com/advisories/GHSA-x3q4-9hxx-gx8m
- github.com/apostrophecms/apostrophe/commit/9500b8b0e1d630d5e07fbb5fd2c25ed0943845ce
- github.com/apostrophecms/apostrophe/commit/f84fd41cbf6c22eb8d0008fc9c25df1f7130b350
- github.com/apostrophecms/apostrophe/releases/tag/sanitize-html@2.18.0
- github.com/apostrophecms/apostrophe/security/advisories/GHSA-x3q4-9hxx-gx8m
- nvd.nist.gov/vuln/detail/CVE-2026-113654
Code Behaviors & Features
Detect and mitigate CVE-2026-113654 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Dependency Scanning using SBOM also detects vulnerabilities from proprietary advisories that this site does not include. Learn more about Dependency Scanning using SBOM →