Media

vue-i18n's escapeParameterHtml does not prevent DOM-based XSS through its tag attributes

  • Publicada: 16.07.2025
  • Actualizado: 11.10.2026 10:22

Summary

The escapeParameterHtml: true option in Vue I18n is designed to protect against HTML/script injection by escaping interpolated parameters. However, this setting fails to prevent execution of certain tag-based payloads, such as <img src=x onerror=...>, if the interpolated value is inserted inside an HTML context using v-html.

This may lead to a DOM-based XSS vulnerability, even when using escapeParameterHtml: true, if a translation string includes minor HTML and is rendered via v-html.

Details

When escapeParameterHtml: true is enabled, it correctly escapes common injection points.

However, it does not sanitize entire attribute contexts, which can be used as XSS vectors via:

<img src=x onerror=alert(1)>

PoC

In your Vue I18n configuration:

const i18n = createI18n({
  escapeParameterHtml: true,
  messages: {
    en: {
      vulnerable: 'Caution: <img src=x onerror="{payload}">'
    }
  }
});

Use this interpolated payload:

const payload = '<script>alert("xss")</script>'; Render the translation using v-html (even not using v-html):

<p v-html="$t('vulnerable', { payload })"></p> Expected: escaped content should render as text, not execute.

Actual: script executes in some environments (or the payload is partially parsed as HTML).

Impact

This creates a DOM-based Cross-Site Scripting (XSS) vulnerability despite enabling a security option (escapeParameterHtml) .

Software afectado

Haz clic en una tecnología para ver todas sus vulnerabilidades.

PlataformaPaqueteVersiones vulnerablesCorregida en
Paquete de npm @intlify/core >= 9.0.0, < 9.14.5, >= 10.0.0, < 10.0.8, >= 11.0.0, < 11.1.10 9.14.5, 10.0.8, 11.1.10
Paquete de npm @intlify/core-base >= 9.0.0, < 9.14.5, >= 10.0.0, < 10.0.8, >= 11.0.0, < 11.1.10 9.14.5, 10.0.8, 11.1.10
Paquete de npm @intlify/vue-i18n-core >= 9.2.0, < 9.14.5, >= 10.0.0, < 10.0.8, >= 11.0.0, < 11.1.10 9.14.5, 10.0.8, 11.1.10
Paquete de npm petite-vue-i18n >= 10.0.0, < 10.0.8, >= 11.0.0, < 11.1.10 10.0.8, 11.1.10
Paquete de npm vue-i18n >= 9.0.0, < 9.14.5, >= 10.0.0, < 10.0.8, >= 11.0.0, < 11.1.10 9.14.5, 10.0.8, 11.1.10

Referencias

Puntuación CVSS -
Vector CVSS
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
Debilidad (CWE)
CWE-79
Plataforma
npm
Paquete
@intlify/core, @intlify/core-base, @intlify/vue-i18n-core
Publicada
16.07.2025
Actualizado
11.10.2026 10:22

Fuentes y licencias

OSV / GitHub Advisory Database - GHSA-x8qp-wqqm-57ph - CC BY 4.0

Historial de vulnerabilidades: @intlify/vue-i18n-core

Todas las vulnerabilidades publicadas de este paquete (Paquete de npm), de la más reciente a la más antigua. Muestra si es un fallo aislado o un paquete que hay que vigilar.

Entradas en total
4
Primera → última
12.2024 07.2025
Sin corrección
0
Explotada en ataques
0

Distribución por gravedad

  • Alta 1
  • Media 3

Divulgaciones por año

  1. 2024: 2
  2. 2025: 2
  3. 2026: 0
  1. vue-i18n's escapeParameterHtml does not prevent DOM-based XSS through its tag attributes esta entrada
    Media CVE-2025-53892 >= 9.2.0, < 9.14.5, >= 10.0.0, < 10.0.8, >= 11.0.0, < 11.1.10 9.14.5, 10.0.8, 11.1.10
  2. Alta CVE-2025-27597 >= 9.2.0, < 9.14.3, >= 10.0.0-alpha.1, < 10.0.6, >= 11.0.0-beta.0, < 11.1.2 9.14.3, 10.0.6, 11.1.2
  3. Media CVE-2024-52810 >= 9.7.0, < 9.14.2, >= 10.0.0, < 10.0.5 9.14.2, 10.0.5
  4. Media CVE-2024-52809 >= 9.3.0, < 9.14.2, >= 10.0.0, < 10.0.5 9.14.2, 10.0.5

Identifica las vulnerabilidades de tu aplicación

Con la integración de DockRay y el inventario de software activado, DockRay compara las versiones notificadas de los componentes con las vulnerabilidades conocidas y avisa de las coincidencias confirmadas. La cobertura depende de la tecnología compatible y de los avisos disponibles.

Conectar tu aplicación
Newsletter DockRay

La seguridad de tus aplicaciones en tu correo

Vulnerabilidades importantes, recomendaciones concretas y consejos prácticos para tus aplicaciones. Elige tus tecnologías y sigue lo que importa para tu proyecto.

  • Un resumen diario de nuevas vulnerabilidades, también las críticas.
  • Avisos sobre actualizaciones importantes.
  • Consejos prácticos sobre seguridad y monitorización de aplicaciones.

Déjalo vacío para recibir avisos de todas las tecnologías.

Suscripción gratuita. Date de baja con un clic en cualquier correo.