Skip to content

← Public intelligence

npm package

petite-vue-i18n

Open actionable advisories and recorded vendor fixes. This public package view has no inventory attached and cannot establish whether your deployment is affected. A vendor fix never resolves your finding; verify your installed version and the source guidance.

Open advisories

6 actionable advisories, newest first. Withdrawn advisories and news are excluded. Coverage is partial.

  1. Low, CVSS 2.1npmAmendedPublished

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

    CVE-2026-118256 · GHSA-8rc2-428q-7ww3

    Affected
    • npm petite-vue-i18n >= 9.2.0-alpha.7, < 11.4.14; >= 12.0.0-alpha.1, < 12.0.0-alpha.5
    Fixed in
    12.0.0-alpha.511.4.14· Vendor fix available
    Issue
    When `escapeParameter` is enabled (`escapeParameterHtml` in the Legacy API), Vue I18n escapes the interpolation parameters before formatting a message. `escapeParams()` escapes either the list values or the named values, but not both: the two branches are joined by `else`. When a single call passes both, for example `t(key, ['...'], { named: { ... } })`, the named values reach the message without being escaped. Details `escapeParams()` in `packages/core-base/src/translate.ts` (v11.4.13): ```ts function escapeParams(options: TranslateOptions) { if (isArray(options.list)) { options.list = options.list.map(item => (isString(item) ? escapeHtml(item) : item)) } else if (isObject(options.named)) { // ...escapes the named values } } ``` `t(key, list, options)` is a public overload, and `TranslateOptions` has a `named` field, so a call can carry both. The list is checked first, and the…

    Recommended action: Upgrade to 12.0.0-alpha.5 (pre-release) or 11.4.14 by release line, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.com (1)osv.dev (2)Source checked Evidence →
  2. High, CVSS 7.2npmAmendedPublished

    Vue I18n: escapeParameter does not prevent XSS through srcdoc in translation messages

    CVE-2026-118257 · GHSA-83rm-6c8r-g728

    Affected
    • npm petite-vue-i18n >= 9.14.5, <= 9.14.5; >= 10.0.8, <= 10.0.8; >= 11.1.10, < 11.4.14; >= 12.0.0-alpha.4, < 12.0.0-alpha.5
    Fixed in
    12.0.0-alpha.511.4.14· Partial vendor fix
    Issue
    When `escapeParameter` is enabled (`escapeParameterHtml` in the Legacy API), Vue I18n passes the translated string through `sanitizeTranslatedHtml()`. The sanitizer escapes ` ` in attribute values and neutralizes event handler attributes such as `onerror`, but it does not handle the `srcdoc` attribute of ` `. The value of `srcdoc` is an HTML document: the browser decodes the character references in it and parses the result as a nested document in the same origin. The escaping and the neutralization done by the sanitizer are both character references, so they are undone inside `srcdoc`. This bypasses the fix for CVE-2025-53892 (GHSA-x8qp-wqqm-57ph). Details `sanitizeTranslatedHtml()` (`packages/shared/src/sanitize.ts` in v11.4.13) works on the final translated string: 1. It escapes ` `, `"` and `'` inside quoted attribute values. 2. It rewrites the `on` of event handler…

    Recommended action: Upgrade to 12.0.0-alpha.5 (pre-release) or 11.4.14 by release line; some affected versions have no fix yet, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.com (1)osv.dev (2)Source checked Evidence →
  3. Medium, CVSS 5.3npmAmendedPublished

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

    CVE-2025-53892 · GHSA-x8qp-wqqm-57ph

    Affected
    • npm petite-vue-i18n >= 10.0.0, < 10.0.8; >= 11.0.0, < 11.1.10
    Fixed in
    10.0.811.1.10· Vendor fix available
    Issue
    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: Use this interpolated payload: const payload = '<scriptalert("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.…

    Recommended action: Upgrade to 11.1.10 or 10.0.8 by release line, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:osv.dev (1)github.com (2)Source checked Evidence →
  4. High, CVSS 8.9npmAmendedPublished

    Vue I18n Allows Prototype Pollution in handleFlatJson

    CVE-2025-27597 · GHSA-p2ph-7g93-hw3m

    Affected
    • npm petite-vue-i18n >= 10.0.0, < 10.0.6; >= 11.0.0-beta.0, < 11.1.2
    Fixed in
    11.1.210.0.6· Vendor fix available
    Issue
    Vulnerability type: Prototype Pollution Vulnerability Location(s): Description: The latest version of @intlify/message-resolver (9.1) and @intlify/vue-i18n-core (9.2 or later), (previous versions might also affected), is vulnerable to Prototype Pollution through the entry function(s) handleFlatJson. An attacker can supply a payload with Object.prototype setter to introduce or modify properties within the global prototype chain, causing denial of service (DoS) a the minimum consequence. Moreover, the consequences of this vulnerability can escalate to other injection-based attacks, depending on how the library integrates within the application. For instance, if the polluted property propagates to sensitive Node.js APIs (e.g., exec, eval), it could enable an attacker to execute arbitrary commands within the application's context. PoC:

    Recommended action: Upgrade to 11.1.2 or 10.0.6 by release line, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:osv.dev (1)github.com (2)Source checked Evidence →
  5. Medium, CVSS 6.9npmAmendedPublished

    @intlify/shared Prototype Pollution vulnerability

    CVE-2024-52810 · GHSA-hjwq-mjwj-4x6c

    Affected
    • npm petite-vue-i18n >= 10.0.0, < 10.0.5
    Fixed in
    10.0.5· Vendor fix available
    Issue
    Vulnerability type: Prototype Pollution Affected Package: Product: @intlify/shared Version: 10.0.4 Vulnerability Location(s): nodemodules/@intlify/shared/dist/shared.cjs:232:26 Description: The latest version of @intlify/shared (10.0.4) is vulnerable to Prototype Pollution through the entry function(s) lib.deepCopy. An attacker can supply a payload with Object.prototype setter to introduce or modify properties within the global prototype chain, causing denial of service (DoS) the minimum consequence. Moreover, the consequences of this vulnerability can escalate to other injection-based attacks, depending on how the library integrates within the application. For instance, if the polluted property propagates to sensitive Node.js APIs (e.g., exec, eval), it could enable an attacker to execute arbitrary commands within the application's context. PoC: References Prototype Pollution Leading to Remote Code Execution - An example of how prototype pollution can lead to command code injection.…

    Recommended action: Upgrade to 10.0.5 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:osv.dev (1)github.com (2)Source checked Evidence →
  6. Medium, CVSS 5.3npmAmendedPublished

    vue-i18n has cross-site scripting vulnerability with prototype pollution

    CVE-2024-52809 · GHSA-9r9m-ffp6-9x4v

    Affected
    • npm petite-vue-i18n >= 10.0.0, < 10.0.5
    Fixed in
    10.0.5· Vendor fix available
    Issue
    Vulnerability type XSS Description vue-i18n can be passed locale messages to createI18n or useI18n. we can then translate them using t and $t. vue-i18n has its own syntax for local messages, and uses a message compiler to generate AST. In order to maximize the performance of the translation function, vue-i18n uses bundler plugins such as @intlify/unplugin-vue-i18n and bulder to convert the AST in advance when building the application. By using that AST as the locale message, it is no longer necessary to compile, and it is possible to translate using the AST. The AST generated by the message compiler has special properties for each node in the AST tree to maximize performance. In the PoC example below, it is a static property, but that is just one of the optimizations. About details of special properties, see https://github.com/intlify/vue-i18n/blob/master/packages/message-compiler/src/nodes.ts In general, the locale messages of vue-i18n are optimized during production builds using…

    Recommended action: Upgrade to 10.0.5 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:osv.dev (1)github.com (2)Source checked Evidence →