- 
          
- 
                Notifications
    You must be signed in to change notification settings 
- Fork 4
chore(deps): update dependency vue-i18n-legacy to v9 [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.
          
          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
  
    99f0e73    to
    b8a05d3      
    Compare
  
    b8a05d3    to
    d500c70      
    Compare
  
    d500c70    to
    1a8676c      
    Compare
  
    1a8676c    to
    313cad9      
    Compare
  
    313cad9    to
    a1b20a5      
    Compare
  
    a1b20a5    to
    b6da549      
    Compare
  
    b6da549    to
    9043623      
    Compare
  
    9043623    to
    306504c      
    Compare
  
    306504c    to
    278187d      
    Compare
  
    278187d    to
    a3e6812      
    Compare
  
    a3e6812    to
    0727bff      
    Compare
  
    0727bff    to
    bc0593a      
    Compare
  
    bc0593a    to
    07eb12b      
    Compare
  
    07eb12b    to
    534d271      
    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->9.14.5GitHub Vulnerability Alerts
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-legacy)
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
v9.9.1Compare Source
This changelog is generated by GitHub Releases
What's Changed
🌟 Features
tebehavior compatibility before v9.6 by @kazupon in intlify/vue-i18n-next#1751📝️ Documentations
New Contributors
Full Changelog: intlify/vue-i18n@v9.9.1...v9.10.0
v9.9.0Compare 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.8.0Compare 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.7.1Compare 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.0Compare Source
This changelog is generated by GitHub Releases
What's Changed
⚡ Improvement Features
@intlify/coreconditional exports by @kazupon in intlify/vue-i18n-next#1639Full Changelog: intlify/vue-i18n@v9.7.0...v9.7.1
v9.6.5Compare 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.4Compare 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.3Compare 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.2Compare Source
This changelog is generated by GitHub Releases
What's Changed
🐛 Bug Fixes
/* #__PURE__*/comment timing by @newives in intlify/vue-i18n-next#1623New Contributors
Full Changelog: intlify/vue-i18n@v9.6.2...v9.6.3
v9.6.1Compare 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.0Compare Source
This changelog is generated by GitHub Releases
What's Changed
🐛 Bug Fixes
telogic strictly by @kazupon in intlify/vue-i18n-next#1612tefallback to root by @kazupon in intlify/vue-i18n-next#1613Full Changelog: intlify/vue-i18n@v9.6.0...v9.6.1
v9.5.0Compare Source
This changelog is generated by GitHub Releases
What's Changed
🌟 Features
@intlfy/core-base(@intlify/core) by @kazupon in intlify/vue-i18n-next#1594🐛 Bug Fixes
@vite-ignoremagic comment by @kazupon in intlify/vue-i18n-next#1590setLocaleMessageby @kazupon in intlify/vue-i18n-next#1601teby @kazupon in intlify/vue-i18n-next#1602⚡ Improvement Features
📝️ Documentations
Full Changelog: intlify/vue-i18n@v9.5.0...v9.6.0
v9.4.1Compare 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.0Compare 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.3.0Compare 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.2.2Compare 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
requireandimportfor 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:
You can clone Vue I18n and run the benchmark with
pnpm build:type && pnpm benchmarkto check.Custome message format
Starting with v9.3, Vue I18n will give message format customization as an experimental feature. This will allow for extending to the message format:
About details, please see the docs
messageCompileroption by @kazupon in intlify/vue-i18n-next#1497Exports type definition and API
Export
v-ttype definitions and API$teto support Vue I18n extending for third vendors and your Vue applications.v-tdirective type by @kazupon in intlify/vue-i18n-next#1511$teas global on composition mode by @kazupon in intlify/vue-i18n-next#1222❗ Important Changes: 1
allowCompositionoptionThe
allowCompositionoption will be removed in Vue I18n v10. We have accordingly output a warning if you are using it.If you are using Vue I18n Legacy API to migrate to the Composition API, please make sure you have done so with the Vue I18n v9 version.
allowCompositionoption by @kazupon in intlify/vue-i18n-next#1496Deprecate vue-i18n official bundle plugins
The following plugin or loader for bundler is deprecated because it can be replaced by the
unplugin-vue-i18n.rollup-plugin-vue-i18nvite-plugin-vue-i18nvue-i18n-loaderThese will only be taken as hot fixes in the future, and no additional functionality will be added.
⚡ Improvement Features: 15
globalThiswith bundler by @kazupon in intlify/vue-i18n-next#1413TranslateVNodeSymbolby @DamianGlowala in intlify/vue-i18n-next#1236optionalDependenciesby @kazupon in intlify/vue-i18n-next#1184🐛 Bug Fixes: 17
isMessageASTmore strictly by @kazupon in intlify/vue-i18n-next#1509rtby @kazupon in intlify/vue-i18n-next#1455<i18n-t>,<i18n-n>and<i18n-d>by @kazupon in intlify/vue-i18n-next#1416📝️ Documentations: 28
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.