-
-
Notifications
You must be signed in to change notification settings - Fork 4.3k
chore(deps): update dependency vue-i18n to v9.14.5 [security] #1407
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
renovate
wants to merge
1
commit into
main
Choose a base branch
from
renovate/npm-vue-i18n-vulnerability
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
|
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
6a82d84 to
5de978b
Compare
|
5de978b to
37f8a8e
Compare
37f8a8e to
2dcb0d5
Compare
2dcb0d5 to
2d47055
Compare
2d47055 to
2012642
Compare
2012642 to
0f7dd0c
Compare
0f7dd0c to
98bccff
Compare
98bccff to
bbc015d
Compare
bbc015d to
189f445
Compare
189f445 to
e04745b
Compare
e04745b to
cc2abba
Compare
cc2abba to
8428835
Compare
8428835 to
f953353
Compare
f953353 to
fdb39ac
Compare
fdb39ac to
151becb
Compare
151becb to
23322d2
Compare
23322d2 to
72b2adc
Compare
72b2adc to
f1503c3
Compare
3965e33 to
e980a87
Compare
e980a87 to
931bf1a
Compare
931bf1a to
486acce
Compare
486acce to
14fa340
Compare
14fa340 to
ceaa42a
Compare
ceaa42a to
c911f50
Compare
c911f50 to
86da8af
Compare
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.



This PR contains the following updates:
9.9.1->9.14.5GitHub Vulnerability Alerts
CVE-2024-52810
Vulnerability type: Prototype Pollution
Affected Package:
Product: @intlify/shared
Version: 10.0.4
Vulnerability Location(s):
node_modules/@​intlify/shared/dist/shared.cjs:232:26Description:
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 withObject.prototypesetter 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.
OWASP Prototype Pollution Prevention Cheat Sheet - Best practices for preventing prototype pollution.
PortSwigger Guide on Preventing Prototype Pollution - A detailed guide to securing your applications against prototype pollution.
CVE-2024-52809
Vulnerability type
XSS
Description
vue-i18n can be passed locale messages to
createI18noruseI18n.we can then translate them using
tand$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-i18nand 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
staticproperty, 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
@intlify/unplugin-vue-i18n,so there is always a property that is attached during optimization like this time.
But if you are using a locale message AST in development mode or your own, there is a possibility of XSS if a third party injects.
Reproduce (PoC)
Workarounds
Before v10.0.0, we can work around this vulnerability by using the regular compilation (
jit: falseof@intlify/unplugin-vue-i18nplugin configuration) way instead of jit compilation.References
CVE-2025-27597
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:
CVE-2025-53892
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:
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) .
Release Notes
intlify/vue-i18n (vue-i18n)
v9.14.5Compare Source
What's Changed
🔒 Security Fixes
Full Changelog: intlify/vue-i18n@v9.14.4...v9.14.5
v9.14.4Compare Source
What's Changed
🐛 Bug Fixes
Full Changelog: intlify/vue-i18n@v9.14.3...v9.14.4
v9.14.3Compare Source
What's Changed
🔒 Security Fixes
handleFlatJson, about details see GHSA-p2ph-7g93-hw3mFull Changelog: intlify/vue-i18n@v9.14.2...v9.14.3
v9.14.2Compare Source
What's Changed
🔒 Security Fixes
Full Changelog: intlify/vue-i18n@v9.14.1...v9.14.2
v9.14.1Compare Source
What's Changed
🐛 Bug Fixes
deepCopymutatessrcarguments by @BobbieGoede in #1975Full Changelog: intlify/vue-i18n@v9.14.0...v9.14.1
v9.14.0Compare Source
What's Changed
⚡ Improvement Features
Full Changelog: intlify/vue-i18n@v9.13.1...v9.14.0
v9.13.1Compare Source
This changelog is generated by GitHub Releases
What's Changed
💥 Breaking Changes
Full Changelog: intlify/vue-i18n@v9.13.1...v10.0.0-alpha.1
v9.13.0Compare Source
This changelog is generated by GitHub Releases
What's Changed
🐛 Bug Fixes
Full Changelog: intlify/vue-i18n@v9.13.0...v9.13.1
v9.12.1Compare Source
This changelog is generated by GitHub Releases
What's Changed
⚡ Improvement Features
📝️ Documentations
New Contributors
Full Changelog: intlify/vue-i18n@v9.12.1...v9.13.0
v9.12.0Compare Source
This changelog is generated by GitHub Releases
What's Changed
🐛 Bug Fixes
👕 Refactoring
Full Changelog: intlify/vue-i18n@v9.12.0...v9.12.1
v9.11.1Compare Source
This changelog is generated by GitHub Releases
What's Changed
🌟 Features
Full Changelog: intlify/vue-i18n@v9.11.1...v9.12.0
v9.11.0Compare Source
This changelog is generated by GitHub Releases
What's Changed
🐛 Bug Fixes
.d.tsby @kazupon in intlify/vue-i18n-next#1794Full Changelog: intlify/vue-i18n@v9.11.0...v9.11.1
v9.10.2Compare Source
This changelog is generated by GitHub Releases
What's Changed
🌟 Features
scopeprop by @BobbieGoede in intlify/vue-i18n-next#1786New Contributors
Full Changelog: intlify/vue-i18n@v9.10.2...v9.11.0
v9.10.1Compare Source
This changelog is generated by GitHub Releases
What's Changed
🐛 Bug Fixes
message-compilerby @BobbieGoede in intlify/vue-i18n-next#1766New Contributors
Full Changelog: intlify/vue-i18n@v9.10.1...v9.10.2
v9.10.0Compare Source
This changelog is generated by GitHub Releases
What's Changed
⚡ Improvement Features
📝️ Documentations
New Contributors
Full Changelog: intlify/vue-i18n@v9.10.0...v9.10.1
Configuration
📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.