MEDIUMCVSS v3.1 5.4Vulnerability

CVE-2026-114133

## Impact `useHeadSafe` restricts head input to an allowlist of safe tags and attributes. For example, `bodyAttrs` is limited to `class` and `style`, event handler attributes are removed, and `<script>` tags are only kept for JSON types. When `useHeadSafe` is called inside a server island (a `.server.vue` component or page, or a component rendered with `<NuxtIsland>`), the island renderer serialises the raw input of every head entry into the island response without the option that marks it as safe input. `<NuxtIsland>` then pushes that input into the page's head as a regular entry, both during server rendering and when hydrating or refetching on the client. As a result, input that `useHeadSafe` would normally strip (such as `bodyAttrs.onload` or executable `<script>` content) is rendered into the page. If an application passes user-controlled data to `useHeadSafe` inside a server island, an attacker who controls that data can achieve stored cross-site scripting on the application's origin. ```vue <!-- components/AuthorMeta.server.vue --> <script setup lang="ts"> const { data: author } = await useFetch('/api/author') // author.value.head is user-authored, e.g. { bodyAttrs: { onload: '...' } } useHeadSafe(author.value.head) </script> ``` ## Mitigating factors - Server components are experimental. They are only active when the application defines a `.server.vue` component or page, or enables `experimental.componentIslands` and renders `<NuxtIsland>`. - Exploitation requires the application to pass attacker-controlled data to `useHeadSafe` inside a server island. `useHeadSafe` called from regular (non-island) components and pages is not affected. ## Affected versions `nuxt` `>=3.13.0`, when head support for server islands was introduced. Nuxt 2 is not affected. ## Patches Fixed in `[email protected]`. Nuxt 3 reached end of life on 31 July 2026 and will not receive a fix. Patched releases apply Unhead's safe input filtering to `useHeadSafe` entries on the server befo

Properties

Severity
medium
Summary
Nuxt server islands render `useHeadSafe` input without sanitisation
Nvd fetched at
2026-10-22T22:14:18.200859+00:00
Epss score
0.00176
Cvss severity
MEDIUM
Cvss score
5.4
Retrieved at
2026-10-22T22:17:33+00:00
Ghsa published
2026-10-22T16:58:00Z
Source url
https://github.com/advisories/GHSA-xfq5-w38q-pc2x
Ghsa updated
2026-10-22T16:58:02Z
Ghsa id
GHSA-xfq5-w38q-pc2x
Last source
FIRST EPSS
Score
5.4
Cvss version
3.1
Cve id
CVE-2026-114133
Cvss vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
First seen by Signal
2026-10-21T22:34:38+00:00
Is ghsa only
false
Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
Published at
2026-10-21T18:17:26.260

Related Entities (3)

AFFECTS (1)

→[Software]npm/nuxt

VULNERABLE_TO (1)

←[Software]npm/nuxt

Explore deeper with Ninja Signal's threat intelligence graph

CVE-2026-114133 (CVSS v3.1 5.4) — Ninja Signal Threat Intelligence | Ninja Signal