Update dependency vue-i18n to v11.1.10 [SECURITY] #5459
Merged
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:
11.1.2->11.1.10GitHub Vulnerability Alerts
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)
v11.1.10Compare Source
🔒 Security Fixes
Full Changelog: intlify/vue-i18n@v11.1.9...v11.1.10
v11.1.9Compare Source
Full Changelog: intlify/vue-i18n@v11.1.8...v11.1.9
v11.1.8Compare Source
What's Changed
⚡ Improvement Features
Full Changelog: intlify/vue-i18n@v11.1.7...v11.1.8
v11.1.7Compare Source
What's Changed
🐛 Bug Fixes
Full Changelog: intlify/vue-i18n@v11.1.6...v11.1.7
v11.1.6Compare Source
What's Changed
⚡ Improvement Features
useI18ncalling on local scope by @kazupon in https://github.com/intlify/vue-i18n/pull/2203Full Changelog: intlify/vue-i18n@v11.1.5...v11.1.6
v11.1.5Compare Source
What's Changed
🐛 Bug Fixes
Full Changelog: intlify/vue-i18n@v11.1.4...v11.1.5
v11.1.4Compare Source
What's Changed
🌟 Features
⚡ Improvement Features
Full Changelog: intlify/vue-i18n@v11.1.3...v11.1.4
v11.1.3Compare Source
What's Changed
🐛 Bug Fixes
⚡ Improvement Features
Full Changelog: intlify/vue-i18n@v11.1.2...v11.1.3
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Renovate Bot.