---
cve: "CVE-2026-31860"
severity: "MEDIUM"
cvss: 5.3
epss: "0.3%"
vendor: "unjs"
kev: false
exploited: false
published: "2026-03-12 18:16:24"
tags: [cve, security, medium]
source: tsecurity.de CVE-Dossier
exported: "2026-09-23T17:04:50+02:00"
---

# CVE-2026-31860

> 5.3 MEDIUM · 🧪 PoC

## Beschreibung

Unhead is a document head and template manager. Prior to 2.1.11, useHeadSafe() can be bypassed to inject arbitrary HTML attributes, including event handlers, into SSR-rendered  tags. This is the composable that Nuxt docs recommend for safely handling user-generated content. The acceptDataAttrs function (safe.ts, line 16-20) allows any property key starting with data- through to the final HTML. It only checks the prefix, not whether the key contains spaces or other characters that break HTML attribute parsing. This vulnerability is fixed in 2.1.11.

## CVSS-Vektor

```
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N
```

| Metrik | Wert | Bewertung |
|---|---|---|
| AV Angriffsvektor | Netzwerk | bad |
| AC Komplexität | Gering | bad |
| PR Privilegien | Keine | bad |

## Patch verfügbar (OSV)

- 59ef1e2ea9008e55765030fccd32d20bb8fdbd1e (Commit)

## Referenzen

- <https://github.com/unjs/unhead/security/advisories/GHSA-g5xx-pwrp-g3fv>

---
_Exportiert aus dem [tsecurity.de CVE-Dossier](https://tsecurity.de/cve?cve=CVE-2026-31860) · Datenquellen: EUVD (ENISA), NVD, OSV, CISA KEV, FIRST EPSS, Exploit-DB, BSI BITS_
