Skip to main content
← All vulnerabilities
CVE-2026-118256EUVD-2026-112358GHSA-8RC2-428Q-7WW3

Vue I18n: `escapeParameter` does not escape named values when the same call also passes a list

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 11.4.14, 12.0.0-alpha.5
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: poc
  • Automatable: no
  • Technical impact: partial

Summary

Vue I18n, the internationalization plugin for Vue.js, is affected in certain versions when escapeParameter is enabled and a translation call passes both list and named values. Applications that render translations as HTML and include untrusted named values can have attacker-controlled markup inserted, enabling phishing content, layout manipulation, or possibly script execution.

Summarized by anthropic/claude-haiku-5.5. Verify details against the original sources.

Read the original description

Vue I18n is the internationalization plugin for Vue.js. From 9.0.0-beta.5 until 11.4.14 and 12.0.0-alpha.5, enabling escapeParameter, called escapeParameterHtml in the Legacy API, does not escape named interpolation values when the same translation call supplies both list and named values because escapeParams() processes only the list branch. Applications that render translations as HTML and pass untrusted named values with a list can insert attacker-controlled markup, including phishing links, forms, and layout changes, and can permit script execution when combined with the srcdoc sanitizer bypass or on releases without the sanitizer. This issue is fixed in versions 11.4.14 and 12.0.0-alpha.5.

Timeline

  1. CVE published
  2. First seen by cve.now
  3. CISA SSVC assessment

    Exploitation: poc · Automatable: no · Technical impact: partial

  4. Record last updated

Affected versions

  • intlify vue-i18n

    From 9.0.0-beta.5 · fixed in 11.4.14; From 12.0.0-alpha.1 · fixed in 12.0.0-alpha.5

  • vue-i18nnpm

    From 9.0.0-beta.5 · fixed in 11.4.14

  • vue-i18nnpm

    From 12.0.0-alpha.1 · fixed in 12.0.0-alpha.5

  • @intlify/corenpm

    From 9.0.0-beta.10 · fixed in 11.4.14

  • @intlify/corenpm

    From 12.0.0-alpha.1 · fixed in 12.0.0-alpha.5

  • @intlify/core-basenpm

    From 9.0.0-beta.12 · fixed in 11.4.14

  • @intlify/core-basenpm

    From 12.0.0-alpha.1 · fixed in 12.0.0-alpha.5

  • petite-vue-i18nnpm

    From 9.2.0-alpha.7 · fixed in 11.4.14

  • petite-vue-i18nnpm

    From 12.0.0-alpha.1 · fixed in 12.0.0-alpha.5

  • @intlify/vue-i18n-corenpm

    From 9.2.0-alpha.7 · fixed in 11.4.14

  • @intlify/vue-i18n-corenpm

    From 12.0.0-alpha.1 · fixed in 12.0.0-alpha.5

References 3

GitHub · intlify/vue-i18n