-
-
Notifications
You must be signed in to change notification settings - Fork 5
chore(deps): update dependency vue-i18n-legacy to v11 [security] #103
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-legacy-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.
+44
−21
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
ddfea19
to
3f4ac72
Compare
3f4ac72
to
be5b346
Compare
be5b346
to
be692fb
Compare
be692fb
to
a1f820f
Compare
a1f820f
to
5fff31c
Compare
5fff31c
to
81760e2
Compare
81760e2
to
1d9ba05
Compare
1d9ba05
to
dcef09d
Compare
dcef09d
to
8b80aa8
Compare
8b80aa8
to
209f31c
Compare
209f31c
to
c4fe81f
Compare
c4fe81f
to
6af586a
Compare
6af586a
to
41ffc03
Compare
41ffc03
to
21735da
Compare
21735da
to
0441f25
Compare
ff44329
to
2f5ce90
Compare
2f5ce90
to
6676144
Compare
6676144
to
98c6510
Compare
98c6510
to
c54e1e2
Compare
c54e1e2
to
0d8d80d
Compare
0d8d80d
to
cbf5fc6
Compare
cbf5fc6
to
cc1d723
Compare
cc1d723
to
52c2475
Compare
52c2475
to
8fc06e1
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:
8
->11
GitHub Vulnerability Alerts
CVE-2024-52809
Vulnerability type
XSS
Description
vue-i18n can be passed locale messages to
createI18n
oruseI18n
.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
@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: false
of@intlify/unplugin-vue-i18n
plugin 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:
Release Notes
intlify/vue-i18n (vue-i18n-legacy)
v11.1.3
Compare Source
What's Changed
🐛 Bug Fixes
⚡ Improvement Features
Full Changelog: intlify/vue-i18n@v11.1.2...v11.1.3
v11.1.2
Compare Source
What's Changed
🔒 Security Fixes
handleFlatJson
, about details see GHSA-p2ph-7g93-hw3mFull Changelog: intlify/vue-i18n@v11.1.1...v11.1.2
v11.1.1
Compare Source
Full Changelog: intlify/vue-i18n@v11.1.0...v11.1.1
v11.1.0
Compare Source
What's Changed
🌟 Features
ComponentCustomProperties['$i18n']
type by @BobbieGoede in https://github.com/intlify/vue-i18n/pull/2094📝️ Documentations
Full Changelog: intlify/vue-i18n@v11.0.1...v11.1.0
v11.0.1
Compare Source
This changelog is generated by GitHub Releases
What's Changed
⚡ Improvement Features
Full Changelog: intlify/vue-i18n@v11.0.0...v11.0.1
v11.0.0
Compare Source
This changelog is generated by GitHub Releases
What's Changed
Deprecate Legacy API mode
The Legacy API mode was the API mode compatible with v8 for Vue 2. When v9 was released, the Legacy API was provided to smooth the migration from v8 to v9.
Legacy API mode will be deprecated in v11, as previous vue-i18n releases have already provided the following to support migration to Composition API mode
For compatibility, Legacy API mode still works in v11, but will be removed entirely in v12, so Legacy API mode will not work after that version.
Deprecate Custom Directive
v-t
The advantage of
v-t
was that it could optimize performance using the vue compiler transform and the pre-translation ofvue-i18n-extension
.This feature was supported from Vue 2.
About details see the blog article
In Vue 3, due to the Composition API, the pre-translation of
vue-i18n-extension
is now limited only for global scope.In addition, Vue 3 Virtual DOM optimization has been introduced, and the optimization provided by
vue-i18n-extension
is no longer very effective. We need to require settings for SSR, the benefits of usingv-t
have disappeared. And DX of templates usingv-t
is not good. Custom directives do not work with key completion in editors (e.g. vscode).For compatibility,
v-t
mode still works in v11, but will be removed entirely in v12, sov-t
will not work after that version.Drop
tc
and$tc
for Legacy API modeThese APIs had already deprecated in warning about being dropped in v11. docs says
Vue I18n maintenance Status
Vue I18n v8 is no longer supported after 2025. Vue I18n v9 and Vue I18n v10 is in maintenance mode after 2025 July.
With the release of Vue I18n v11, that version will become mainstream.
The maintenance detail status of Vue I18n v9 and Vue I18n v10 is as follows:
You can check the maintenance status on the docs
❗ Breaking Changes
$tc
andtc
by @kazupon in https://github.com/intlify/vue-i18n/pull/2017v-t
custom directive by @kazupon in https://github.com/intlify/vue-i18n/pull/2045⚡ Improvement Features
tm
function should acceptDefineLocaleMessage
key type by @BobbieGoede in https://github.com/intlify/vue-i18n/pull/2014🔒 Security Fixes
📝️ Documentations
👋 New Contributors
Full Changelog: intlify/vue-i18n@v10.0.4...v11.0.0
v10.0.7
Compare Source
What's Changed
🐛 Bug Fixes
Full Changelog: intlify/vue-i18n@v10.0.6...v10.0.7
v10.0.6
Compare Source
What's Changed
🔒 Security Fixes
handleFlatJson
, about details see GHSA-p2ph-7g93-hw3mFull Changelog: intlify/vue-i18n@v10.0.5...v10.0.6
v10.0.5
Compare Source
What's Changed
🔒 Security Fixes
Full Changelog: intlify/vue-i18n@v10.0.4...v10.0.5
v10.0.4
Compare Source
This changelog is generated by GitHub Releases
What's Changed
🐛 Bug Fixes
📝️ Documentations
New Contributors
Full Changelog: intlify/vue-i18n@v10.0.3...v10.0.4
v10.0.3
Compare Source
This changelog is generated by GitHub Releases
What's Changed
🐛 Bug Fixes
📝️ Documentations
Full Changelog: intlify/vue-i18n@v10.0.2...v10.0.3
v10.0.2
Compare Source
This changelog is generated by GitHub Releases
What's Changed
⚡ Improvement Features
deepCopy
mutatessrc
arguments by @BobbieGoede in https://github.com/intlify/vue-i18n/pull/1947📝️ Documentations
Full Changelog: intlify/vue-i18n@v10.0.1...v10.0.2
v10.0.1
Compare Source
This changelog is generated by GitHub Releases
What's Changed
🐛 Bug Fixes
New Contributors
Full Changelog: intlify/vue-i18n@v10.0.0...v10.0.1
v10.0.0
Compare Source
We are excited to announce the release of Vue I18n v10.
We had many contributors.
Thanks for your contributing ❤️
v9.14.4
Compare Source
What's Changed
🐛 Bug Fixes
Full Changelog: intlify/vue-i18n@v9.14.3...v9.14.4
v9.14.3
Compare 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.2
Compare Source
What's Changed
🔒 Security Fixes
Full Changelog: intlify/vue-i18n@v9.14.1...v9.14.2
v9.14.1
Compare Source
What's Changed
🐛 Bug Fixes
deepCopy
mutatessrc
arguments by @BobbieGoede in https://github.com/intlify/vue-i18n/pull/1975Full Changelog: intlify/vue-i18n@v9.14.0...v9.14.1
v9.14.0
Compare Source
What's Changed
⚡ Improvement Features
Full Changelog: intlify/vue-i18n@v9.13.1...v9.14.0
v9.13.1
Compare 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.13.0
Compare 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.1
Compare 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.12.0
Compare 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.1
Compare Source
This changelog is generated by GitHub Releases
What's Changed
🐛 Bug Fixes
.d.ts
by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1794Full Changelog: intlify/vue-i18n@v9.11.0...v9.11.1
v9.11.0
Compare Source
This changelog is generated by GitHub Releases
What's Changed
🌟 Features
scope
prop by @BobbieGoede in https://github.com/intlify/vue-i18n-next/pull/1786New Contributors
Full Changelog: intlify/vue-i18n@v9.10.2...v9.11.0
v9.10.2
Compare Source
This changelog is generated by GitHub Releases
What's Changed
🐛 Bug Fixes
message-compiler
by @BobbieGoede in https://github.com/intlify/vue-i18n-next/pull/1766New Contributors
Full Changelog: intlify/vue-i18n@v9.10.1...v9.10.2
v9.10.1
Compare 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
v9.10.0
Compare Source
This changelog is generated by GitHub Releases
What's Changed
🌟 Features
te
behavior compatibility before v9.6 by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1751📝️ Documentations
New Contributors
Full Changelog: intlify/vue-i18n@v9.9.1...v9.10.0
v9.9.1
Compare Source
This changelog is generated by GitHub Releases
What's Changed
🐛 Bug Fixes
📝️ Documentations
New Contributors
Full Changelog: intlify/vue-i18n@v9.9.0...v9.9.1
v9.9.0
Compare Source
This changelog is generated by GitHub Releases
What's Changed
⚡ Improvement Features
📈 Performance Fixes
📝️ Documentations
New Contributors
Full Changelog: intlify/vue-i18n@v9.8.0...v9.9.0
v9.8.0
Compare Source
This changelog is generated by GitHub Releases
What's Changed
🌟 Features
Full Changelog: intlify/vue-i18n@v9.7.1...v9.8.0
v9.7.1
Compare Source
This changelog is generated by GitHub Releases
What's Changed
⚡ Improvement Features
@intlify/core
conditional exports by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1639Full Changelog: intlify/vue-i18n@v9.7.0...v9.7.1
v9.7.0
Compare Source
This changelog is generated by GitHub Releases
What's Changed
🌟 Features
Full Changelog: intlify/vue-i18n@v9.6.5...v9.7.0
v9.6.5
Compare Source
This changelog is generated by GitHub Releases
What's Changed
🐛 Bug Fixes
New Contributors
Full Changelog: intlify/vue-i18n@v9.6.4...v9.6.5
v9.6.4
Compare Source
This changelog is generated by GitHub Releases
What's Changed
🐛 Bug Fixes
Full Changelog: intlify/vue-i18n@v9.6.3...v9.6.4
v9.6.3
Compare Source
This changelog is generated by GitHub Releases
What's Changed
🐛 Bug Fixes
/* #__PURE__*/
comment timing by @newives in https://github.com/intlify/vue-i18n-next/pull/1623New Contributors
Full Changelog: intlify/vue-i18n@v9.6.2...v9.6.3
v9.6.2
Compare Source
This changelog is generated by GitHub Releases
What's Changed
🐛 Bug Fixes
Full Changelog: intlify/vue-i18n@v9.6.1...v9.6.2
v9.6.1
Compare Source
This changelog is generated by GitHub Releases
What's Changed
🐛 Bug Fixes
te
logic strictly by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1612te
fallback to root by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1613Full Changelog: intlify/vue-i18n@v9.6.0...v9.6.1
v9.6.0
Compare Source
This changelog is generated by GitHub Releases
What's Changed
🌟 Features
@intlfy/core-base
(@intlify/core
) by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1594🐛 Bug Fixes
@vite-ignore
magic comment by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1590setLocaleMessage
by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1601te
by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1602⚡ Improvement Features
📝️ Documentations
Full Changelog: intlify/vue-i18n@v9.5.0...v9.6.0
v9.5.0
Compare Source
This changelog is generated by GitHub Releases
What's Changed
🌟 Features
🐛 Bug Fixes
📝️ Documentations
🍭 Examples
New Contributors
Full Changelog: intlify/vue-i18n@v9.4.1...v9.5.0
v9.4.1
Compare Source
This changelog is generated by GitHub Releases
What's Changed
🐛 Bug Fixes
📝️ Documentations
Full Changelog: intlify/vue-i18n@v9.4.0...v9.4.1
v9.4.0
Compare Source
This changelog is generated by GitHub Releases
What's Changed
🌟 Features
🐛 Bug Fixes
⚡ Improvement Features
New Contributors
Full Changelog: intlify/vue-i18n@v9.3.0...v9.4.0
v9.3.0
Compare Source
We are excited to announce the release of Vue I18n v9.3, finally !! This release includes some new features, bug fixes, improvements, and document fixes.
We had commited with 37 contributors. Thanks for your contributing ❤️
In the following, we introduce some of the new features:
🌟 Features
Node.js Dual packages (
cjs
/mjs
)We provide CommonJS and Native ESM dual module packages for Node.js. This supports both
require
andimport
for loading modules in Node.js.JIT Style Compilation
Supports JIT (Just In Time) style compilation of message formats. This mean, removes the CSP limitation and allows for use in environments such as Service worker, Web worker, and Edge.
It mean also now supports the use-case where locale messages are dynamically retrieved from the backend via the API.
For more information, please see the docs
The performance of JIT-style compilation is close to that of conventional AOT (Ahead Of Time) style compilation, and you can improve the performance to nearly 3x with combination of JIT + AOT.
Below are the compile performance benchmark results for vue-i18n: