CVE-2026-31873
None · 0.0CVSS
0.0
EPSS
0.3%
Published
Mar 12, 2026
CISA due date
—
The record
Unhead is a document head and template manager. Prior to 2.1.11, The link.href check in makeTagSafe (safe.ts) uses String.includes(), which is case-sensitive. Browsers treat URI schemes case-insensitively. DATA:text/css,... is the same as data:text/css,... to the browser, but 'DATA:...'.includes('data:') returns false. An attacker can inject arbitrary CSS for UI redressing or data exfiltration via CSS attribute selectors with background-image callbacks. This vulnerability is fixed in 2.1.11.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| npm | unhead | 0 | 2.1.11 |
Related vulnerabilities
- GHSA-5339-hvwr-7582 Unhead Vulnerable to Bypass of URI Scheme Sanitization in makeTagSafe via Case-Sensitivity Same vulnerability
- GHSA-x7mm-9vvv-64w8 unhead: Streaming SSR `streamKey` injected into inline script without identifier… Also affects unhead
- GHSA-95h2-gj7x-gx9w Unhead has a hasDangerousProtocol() bypass via leading-zero padded HTML entities in… Also affects unhead
- CVE-2026-39315 Unhead is a document head and template manager. Also affects unhead
- CVE-2026-31860 Unhead is a document head and template manager. Also affects unhead
- GHSA-g5xx-pwrp-g3fv Unhead has XSS bypass in `useHeadSafe` via attribute name injection and case-sensitive… Also affects unhead
- CVE-2026-96379 Improper Neutralization of Input During Web Page Generation ("Cross-site Scripting")… CWE-79
- CVE-2026-96382 Improper Neutralization of Input During Web Page Generation ("Cross-site Scripting")… CWE-79