sequencescape
sequencescape copied to clipboard
🚨 [security] [js] Update vue 2.7.16 → 3.5.12 (major)
🚨 Your current dependencies have known security vulnerabilities 🚨
This dependency update fixes known security vulnerabilities. Please see the details below and assess their impact carefully. We recommend to merge and deploy this as soon as possible!
Here is everything you need to know about this upgrade. Please take a good look at what changed and the test results before merging this pull request.
What changed?
✳️ vue (2.7.16 → 3.5.12) · Repo · Changelog
Security Advisories 🚨
🚨 ReDoS vulnerability in vue package that is exploitable through inefficient regex evaluation in the parseHTML function
The ReDoS can be exploited through the
parseHTML
function in thehtml-parser.ts
file. This flaw allows attackers to slow down the application by providing specially crafted input that causes inefficient processing of regular expressions, leading to excessive resource consumption.To demonstrate this vulnerability, here's an example. In a Vue client-side application, create a new Vue instance with a template string that includes a
<script>
tag but closes it incorrectly with something like</textarea>
.new Vue({ el: '#app', template: ' <div> Hello, world! <script>${'<'.repeat(1000000)}</textarea> </div>' });Next, set up a basic HTML page (e.g., index.html) to load this JavaScript and mount the Vue instance:
<!DOCTYPE html> <html> <head> <title>My first Vue app</title> </head> <body> <div id=\"app\">Loading...</div> </body> </html>When you visit the app in your browser at http://localhost:3000, you'll notice that the time taken to parse and mount the Vue application increases significantly due to the ReDoS vulnerability, demonstrating how the flaw can affect performance.
Release Notes
Too many releases to show here. View the full release notes.
Commits
See the full diff on Github. The new version differs by 28 commits:
release: v3.5.12
refactor(reactivity): reduce size of collectionHandlers (#12152)
fix(runtime-dom): prevent unnecessary updates in v-model checkbox when value is unchanged (#12146)
chore: format
test(reactivity): test for verifying no unnecessary calls of reactive array identity methods (#11328)
fix(hydration): provide compat fallback for idle callback hydration strategy (#11935)
fix(types): retain union type narrowing with defaults applied (#12108)
fix(compiler): clone loc to `ifNode` (#12131)
fix(compiler-sfc): use sass modern api if available and avoid deprecation warning (#11992)
fix(runtime-core): fix required prop check false positive for kebab-case edge cases (#12034)
chore(runtime-core): warn if use a non-ref to hold the element reference in DEV (#12051)
fix(compiler-sfc): do not skip TSInstantiationExpression when transforming props destructure (#12064)
fix(teleport): handle disabled teleport with updateCssVars (#12113)
fix(useId): ensure useId consistency when using serverPrefetch (#12128)
perf(reactivity): avoid unnecessary recursion in removeSub (#12135)
fix(compiler-dom): avoid stringify option with null value (#12096)
fix(reactivity): trigger reactivity for Map key `undefined` (#12055)
fix(defineModel): handle kebab-case model correctly (#12063)
fix(transition/ssr): make transition appear work with Suspense in SSR (#12047)
chore(sfc-playground): adjust the tooltip text for toggling the theme (#12116)
fix(types): ensure `this.$props` type does not include `string` (#12123)
fix(runtime-core): allow symbol values for slot prop key (#12069)
fix(custom-element): properly remove hyphenated attribute (#12143)
chore(deps): update lint (#12118)
chore(deps-dev): bump vite from 5.4.0 to 5.4.8 (#12121)
chore(deps): update dependency @rollup/plugin-commonjs to v28 (#12120)
fix(deps): update dependency monaco-editor to ^0.52.0 (#12119)
fix(watch): watchEffect clean-up with SSR (#12097)
Depfu will automatically keep this PR conflict-free, as long as you don't add any commits to this branch yourself. You can also trigger a rebase manually by commenting with @depfu rebase
.
All Depfu comment commands
- @depfu rebase
- Rebases against your default branch and redoes this update
- @depfu recreate
- Recreates this PR, overwriting any edits that you've made to it
- @depfu merge
- Merges this PR once your tests are passing and conflicts are resolved
- @depfu cancel merge
- Cancels automatic merging of this PR
- @depfu close
- Closes this PR and deletes the branch
- @depfu reopen
- Restores the branch and reopens this PR (if it's closed)
- @depfu pause
- Ignores all future updates for this dependency and closes this PR
- @depfu pause [minor|major]
- Ignores all future minor/major updates for this dependency and closes this PR
- @depfu resume
- Future versions of this dependency will create PRs again (leaves this PR as is)