Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2026-39315— Unhead has a hasDangerousProtocol() bypass via leading-zero padded HTML entities in useHeadSafe()

Quick assessment

Affected
unjs unhead
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

unhead是UnJS开源的一个文档头和模板管理器。 Unhead 2.1.13之前版本存在安全漏洞,该漏洞源于解码HTML实体时存在正则表达式限制,可能导致跨站脚本攻击。

CVSS 6.1 · Medium EPSS 0.34% · P26
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-39315

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
Unhead has a hasDangerousProtocol() bypass via leading-zero padded HTML entities in useHeadSafe()
Source: CVE Program / CVE List V5
Vulnerability Description
Unhead is a document head and template manager. Prior to 2.1.13, useHeadSafe() is the composable that Nuxt's own documentation explicitly recommends for rendering user-supplied content in <head> safely. Internally, the hasDangerousProtocol() function in packages/unhead/src/plugins/safe.ts decodes HTML entities before checking for blocked URI schemes (javascript:, data:, vbscript:). The decoder uses two regular expressions with fixed-width digit caps. The HTML5 specification imposes no limit on leading zeros in numeric character references. When a padded entity exceeds the regex digit cap, the decoder silently skips it. The undecoded string is then passed to startsWith('javascript:'), which does not match. makeTagSafe() writes the raw value directly into SSR HTML output. The browser's HTML parser decodes the padded entity natively and constructs the blocked URI. This vulnerability is fixed in 2.1.13.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
Source: CVE Program / CVE List V5
Vulnerability Type
不完整的黑名单
Source: CVE Program / CVE List V5
Vulnerability Title
unhead 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
unhead是UnJS开源的一个文档头和模板管理器。 Unhead 2.1.13之前版本存在安全漏洞,该漏洞源于解码HTML实体时存在正则表达式限制,可能导致跨站脚本攻击。
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

Vendor Product Affected Versions CPE Subscribe
unjs unhead < 2.1.13 -

II. Public POCs for CVE-2026-39315

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-39315

请登录查看更多情报信息。

Patches & Fixes for CVE-2026-39315 (1)

Vendor Advisories for CVE-2026-39315 (1)

IV. Related Vulnerabilities

V. Comments for CVE-2026-39315

No comments yet


Leave a comment