CVE-2026-53606: sanitize-html has incomplete URI scheme validation in that allows javascript: URIs through action, formaction, data, poster, and background attributes
sanitize-html uses allowedSchemesAppliedToAttributes (default: ['href', 'src', 'cite']) to gate the naughtyHref() function that blocks dangerous URI schemes like javascript: and vbscript:. The HTML specification defines 10+ attributes that accept URIs (action, formaction, data, poster, background, ping, xlink:href, dynsrc, lowsrc), but none of these are included in the default gate list. When a developer allows any of these attributes in their configuration, javascript: URIs pass through completely unmodified, enabling XSS.
The library has zero awareness of these URI-bearing attributes — none appear anywhere in the 854-line source file (verified by grep). No warning mechanism exists, and the README provides no security guidance about expanding allowedSchemesAppliedToAttributes when allowing form or media attributes.
References
- github.com/advisories/GHSA-vccv-cmxp-4j9h
- github.com/apostrophecms/apostrophe/commit/5a88e9630cbbdde33154ef8abe7557ddf7be418b
- github.com/apostrophecms/apostrophe/pull/5464
- github.com/apostrophecms/apostrophe/releases/tag/sanitize-html@2.17.5
- github.com/apostrophecms/apostrophe/security/advisories/GHSA-vccv-cmxp-4j9h
- nvd.nist.gov/vuln/detail/CVE-2026-53606
Code Behaviors & Features
Detect and mitigate CVE-2026-53606 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →