Vulnerability Details CVE-2026-31873
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.
Exploit prediction scoring system (EPSS) score
EPSS Score 0.0
EPSS Ranking 2.1%
Products affected by CVE-2026-31873
-
cpe:2.3:a:unjs:unhead:0.0.1
-
cpe:2.3:a:unjs:unhead:0.0.2
-
cpe:2.3:a:unjs:unhead:0.0.3
-
cpe:2.3:a:unjs:unhead:0.0.4
-
cpe:2.3:a:unjs:unhead:0.0.5
-
cpe:2.3:a:unjs:unhead:0.0.6
-
cpe:2.3:a:unjs:unhead:0.0.7
-
cpe:2.3:a:unjs:unhead:0.1.0
-
cpe:2.3:a:unjs:unhead:0.1.1
-
cpe:2.3:a:unjs:unhead:0.1.2
-
cpe:2.3:a:unjs:unhead:0.1.3
-
cpe:2.3:a:unjs:unhead:0.1.4
-
cpe:2.3:a:unjs:unhead:0.2.0
-
cpe:2.3:a:unjs:unhead:0.2.1
-
cpe:2.3:a:unjs:unhead:0.2.2
-
cpe:2.3:a:unjs:unhead:0.2.3
-
cpe:2.3:a:unjs:unhead:0.2.4
-
cpe:2.3:a:unjs:unhead:0.2.5
-
cpe:2.3:a:unjs:unhead:0.2.6
-
cpe:2.3:a:unjs:unhead:0.2.7
-
cpe:2.3:a:unjs:unhead:0.3.0
-
cpe:2.3:a:unjs:unhead:0.3.1
-
cpe:2.3:a:unjs:unhead:0.4.0
-
cpe:2.3:a:unjs:unhead:0.4.1
-
cpe:2.3:a:unjs:unhead:0.4.2
-
cpe:2.3:a:unjs:unhead:0.4.3
-
cpe:2.3:a:unjs:unhead:0.4.4
-
cpe:2.3:a:unjs:unhead:0.4.5
-
cpe:2.3:a:unjs:unhead:0.4.6
-
cpe:2.3:a:unjs:unhead:0.4.7
-
cpe:2.3:a:unjs:unhead:0.4.8
-
cpe:2.3:a:unjs:unhead:0.5.0
-
cpe:2.3:a:unjs:unhead:0.5.1
-
cpe:2.3:a:unjs:unhead:0.6.0
-
cpe:2.3:a:unjs:unhead:0.6.1
-
cpe:2.3:a:unjs:unhead:0.6.2
-
cpe:2.3:a:unjs:unhead:0.6.3
-
cpe:2.3:a:unjs:unhead:0.6.4
-
cpe:2.3:a:unjs:unhead:0.6.5
-
cpe:2.3:a:unjs:unhead:0.6.6
-
cpe:2.3:a:unjs:unhead:0.6.7
-
cpe:2.3:a:unjs:unhead:0.6.8
-
cpe:2.3:a:unjs:unhead:0.6.9
-
cpe:2.3:a:unjs:unhead:0.7.0
-
cpe:2.3:a:unjs:unhead:0.7.1
-
cpe:2.3:a:unjs:unhead:1.0.0
-
cpe:2.3:a:unjs:unhead:1.0.1
-
cpe:2.3:a:unjs:unhead:1.0.10
-
cpe:2.3:a:unjs:unhead:1.0.11
-
cpe:2.3:a:unjs:unhead:1.0.12
-
cpe:2.3:a:unjs:unhead:1.0.13
-
cpe:2.3:a:unjs:unhead:1.0.14
-
cpe:2.3:a:unjs:unhead:1.0.15
-
cpe:2.3:a:unjs:unhead:1.0.16
-
cpe:2.3:a:unjs:unhead:1.0.17
-
cpe:2.3:a:unjs:unhead:1.0.18
-
cpe:2.3:a:unjs:unhead:1.0.19
-
cpe:2.3:a:unjs:unhead:1.0.2
-
cpe:2.3:a:unjs:unhead:1.0.20
-
cpe:2.3:a:unjs:unhead:1.0.21
-
cpe:2.3:a:unjs:unhead:1.0.22
-
cpe:2.3:a:unjs:unhead:1.0.3
-
cpe:2.3:a:unjs:unhead:1.0.4
-
cpe:2.3:a:unjs:unhead:1.0.5
-
cpe:2.3:a:unjs:unhead:1.0.6
-
cpe:2.3:a:unjs:unhead:1.0.7
-
cpe:2.3:a:unjs:unhead:1.0.8
-
cpe:2.3:a:unjs:unhead:1.0.9
-
cpe:2.3:a:unjs:unhead:1.1.0
-
cpe:2.3:a:unjs:unhead:1.1.1
-
cpe:2.3:a:unjs:unhead:1.1.10
-
cpe:2.3:a:unjs:unhead:1.1.11
-
cpe:2.3:a:unjs:unhead:1.1.12
-
cpe:2.3:a:unjs:unhead:1.1.13
-
cpe:2.3:a:unjs:unhead:1.1.14
-
cpe:2.3:a:unjs:unhead:1.1.15
-
cpe:2.3:a:unjs:unhead:1.1.16
-
cpe:2.3:a:unjs:unhead:1.1.17
-
cpe:2.3:a:unjs:unhead:1.1.18
-
cpe:2.3:a:unjs:unhead:1.1.19
-
cpe:2.3:a:unjs:unhead:1.1.2
-
cpe:2.3:a:unjs:unhead:1.1.20
-
cpe:2.3:a:unjs:unhead:1.1.21
-
cpe:2.3:a:unjs:unhead:1.1.22
-
cpe:2.3:a:unjs:unhead:1.1.23
-
cpe:2.3:a:unjs:unhead:1.1.24
-
cpe:2.3:a:unjs:unhead:1.1.25
-
cpe:2.3:a:unjs:unhead:1.1.26
-
cpe:2.3:a:unjs:unhead:1.1.27
-
cpe:2.3:a:unjs:unhead:1.1.28
-
cpe:2.3:a:unjs:unhead:1.1.29
-
cpe:2.3:a:unjs:unhead:1.1.3
-
cpe:2.3:a:unjs:unhead:1.1.30
-
cpe:2.3:a:unjs:unhead:1.1.31
-
cpe:2.3:a:unjs:unhead:1.1.32
-
cpe:2.3:a:unjs:unhead:1.1.33
-
cpe:2.3:a:unjs:unhead:1.1.34
-
cpe:2.3:a:unjs:unhead:1.1.35
-
cpe:2.3:a:unjs:unhead:1.1.4
-
cpe:2.3:a:unjs:unhead:1.1.5
-
cpe:2.3:a:unjs:unhead:1.1.6
-
cpe:2.3:a:unjs:unhead:1.1.7
-
cpe:2.3:a:unjs:unhead:1.1.8
-
cpe:2.3:a:unjs:unhead:1.1.9
-
cpe:2.3:a:unjs:unhead:1.10.0
-
cpe:2.3:a:unjs:unhead:1.10.1
-
cpe:2.3:a:unjs:unhead:1.10.2
-
cpe:2.3:a:unjs:unhead:1.10.3
-
cpe:2.3:a:unjs:unhead:1.10.4
-
cpe:2.3:a:unjs:unhead:1.11.0
-
cpe:2.3:a:unjs:unhead:1.11.1
-
cpe:2.3:a:unjs:unhead:1.11.10
-
cpe:2.3:a:unjs:unhead:1.11.11
-
cpe:2.3:a:unjs:unhead:1.11.12
-
cpe:2.3:a:unjs:unhead:1.11.13
-
cpe:2.3:a:unjs:unhead:1.11.14
-
cpe:2.3:a:unjs:unhead:1.11.15
-
cpe:2.3:a:unjs:unhead:1.11.16
-
cpe:2.3:a:unjs:unhead:1.11.17
-
cpe:2.3:a:unjs:unhead:1.11.18
-
cpe:2.3:a:unjs:unhead:1.11.19
-
cpe:2.3:a:unjs:unhead:1.11.2
-
cpe:2.3:a:unjs:unhead:1.11.20
-
cpe:2.3:a:unjs:unhead:1.11.3
-
cpe:2.3:a:unjs:unhead:1.11.4
-
cpe:2.3:a:unjs:unhead:1.11.5
-
cpe:2.3:a:unjs:unhead:1.11.6
-
cpe:2.3:a:unjs:unhead:1.11.7
-
cpe:2.3:a:unjs:unhead:1.11.8
-
cpe:2.3:a:unjs:unhead:1.11.9
-
cpe:2.3:a:unjs:unhead:1.2.0
-
cpe:2.3:a:unjs:unhead:1.2.1
-
cpe:2.3:a:unjs:unhead:1.2.2
-
cpe:2.3:a:unjs:unhead:1.3.0
-
cpe:2.3:a:unjs:unhead:1.3.1
-
cpe:2.3:a:unjs:unhead:1.3.2
-
cpe:2.3:a:unjs:unhead:1.3.3
-
cpe:2.3:a:unjs:unhead:1.3.4
-
cpe:2.3:a:unjs:unhead:1.3.5
-
cpe:2.3:a:unjs:unhead:1.3.6
-
cpe:2.3:a:unjs:unhead:1.3.7
-
cpe:2.3:a:unjs:unhead:1.3.8
-
cpe:2.3:a:unjs:unhead:1.3.9
-
cpe:2.3:a:unjs:unhead:1.4.0
-
cpe:2.3:a:unjs:unhead:1.4.1
-
cpe:2.3:a:unjs:unhead:1.5.0
-
cpe:2.3:a:unjs:unhead:1.5.1
-
cpe:2.3:a:unjs:unhead:1.5.2
-
cpe:2.3:a:unjs:unhead:1.5.3
-
cpe:2.3:a:unjs:unhead:1.5.4
-
cpe:2.3:a:unjs:unhead:1.5.5
-
cpe:2.3:a:unjs:unhead:1.6.0
-
cpe:2.3:a:unjs:unhead:1.6.1
-
cpe:2.3:a:unjs:unhead:1.6.2
-
cpe:2.3:a:unjs:unhead:1.7.0
-
cpe:2.3:a:unjs:unhead:1.7.1
-
cpe:2.3:a:unjs:unhead:1.7.2
-
cpe:2.3:a:unjs:unhead:1.7.3
-
cpe:2.3:a:unjs:unhead:1.7.4
-
cpe:2.3:a:unjs:unhead:1.7.5
-
cpe:2.3:a:unjs:unhead:1.8.0
-
cpe:2.3:a:unjs:unhead:1.8.1
-
cpe:2.3:a:unjs:unhead:1.8.10
-
cpe:2.3:a:unjs:unhead:1.8.11
-
cpe:2.3:a:unjs:unhead:1.8.12
-
cpe:2.3:a:unjs:unhead:1.8.13
-
cpe:2.3:a:unjs:unhead:1.8.14
-
cpe:2.3:a:unjs:unhead:1.8.15
-
cpe:2.3:a:unjs:unhead:1.8.16
-
cpe:2.3:a:unjs:unhead:1.8.17
-
cpe:2.3:a:unjs:unhead:1.8.18
-
cpe:2.3:a:unjs:unhead:1.8.19
-
cpe:2.3:a:unjs:unhead:1.8.2
-
cpe:2.3:a:unjs:unhead:1.8.20
-
cpe:2.3:a:unjs:unhead:1.8.3
-
cpe:2.3:a:unjs:unhead:1.8.4
-
cpe:2.3:a:unjs:unhead:1.8.5
-
cpe:2.3:a:unjs:unhead:1.8.6
-
cpe:2.3:a:unjs:unhead:1.8.7
-
cpe:2.3:a:unjs:unhead:1.8.8
-
cpe:2.3:a:unjs:unhead:1.8.9
-
cpe:2.3:a:unjs:unhead:1.9.0
-
cpe:2.3:a:unjs:unhead:1.9.1
-
cpe:2.3:a:unjs:unhead:1.9.10
-
cpe:2.3:a:unjs:unhead:1.9.11
-
cpe:2.3:a:unjs:unhead:1.9.12
-
cpe:2.3:a:unjs:unhead:1.9.13
-
cpe:2.3:a:unjs:unhead:1.9.14
-
cpe:2.3:a:unjs:unhead:1.9.15
-
cpe:2.3:a:unjs:unhead:1.9.16
-
cpe:2.3:a:unjs:unhead:1.9.2
-
cpe:2.3:a:unjs:unhead:1.9.3
-
cpe:2.3:a:unjs:unhead:1.9.4
-
cpe:2.3:a:unjs:unhead:1.9.5
-
cpe:2.3:a:unjs:unhead:1.9.6
-
cpe:2.3:a:unjs:unhead:1.9.7
-
cpe:2.3:a:unjs:unhead:1.9.8
-
cpe:2.3:a:unjs:unhead:1.9.9
-
cpe:2.3:a:unjs:unhead:2.0.0
-
cpe:2.3:a:unjs:unhead:2.0.1
-
cpe:2.3:a:unjs:unhead:2.0.10
-
cpe:2.3:a:unjs:unhead:2.0.11
-
cpe:2.3:a:unjs:unhead:2.0.12
-
cpe:2.3:a:unjs:unhead:2.0.13
-
cpe:2.3:a:unjs:unhead:2.0.14
-
cpe:2.3:a:unjs:unhead:2.0.15
-
cpe:2.3:a:unjs:unhead:2.0.16
-
cpe:2.3:a:unjs:unhead:2.0.17
-
cpe:2.3:a:unjs:unhead:2.0.18
-
cpe:2.3:a:unjs:unhead:2.0.19
-
cpe:2.3:a:unjs:unhead:2.0.2
-
cpe:2.3:a:unjs:unhead:2.0.3
-
cpe:2.3:a:unjs:unhead:2.0.4
-
cpe:2.3:a:unjs:unhead:2.0.5
-
cpe:2.3:a:unjs:unhead:2.0.6
-
cpe:2.3:a:unjs:unhead:2.0.7
-
cpe:2.3:a:unjs:unhead:2.0.8
-
cpe:2.3:a:unjs:unhead:2.0.9
-
cpe:2.3:a:unjs:unhead:2.1.0
-
cpe:2.3:a:unjs:unhead:2.1.1
-
cpe:2.3:a:unjs:unhead:2.1.10
-
cpe:2.3:a:unjs:unhead:2.1.2
-
cpe:2.3:a:unjs:unhead:2.1.3
-
cpe:2.3:a:unjs:unhead:2.1.4
-
cpe:2.3:a:unjs:unhead:2.1.5
-
cpe:2.3:a:unjs:unhead:2.1.6
-
cpe:2.3:a:unjs:unhead:2.1.7
-
cpe:2.3:a:unjs:unhead:2.1.8
-
cpe:2.3:a:unjs:unhead:2.1.9