MT#64579 Reduce npm audit vulnerabilities from 132 to 30

- Removed `crypto-browserify` from package.json and quasar.config.js
  (unused webpack polyfill that was bundling vulnerable bn.js and
  elliptic into the production build)

Bumped up packages:
* glob
* globals
* jest
* @quasar/app-webpack

Yarn resolutions added
- `serialize-javascript: ^7.0.3` — fixes high-severity RCE vulnerability
  via RegExp.flags/Date.toISOString() (CVE in terser-webpack-plugin and
  @quasar/ssr-helpers paths)
- `**/postcss-svgo/svgo: ^4.0.1` — fixes high-severity Billion Laughs
  DoS (XML entity expansion) in cssnano's SVG optimization pipeline
- `dot-object/minimatch: ^3.1.2` — fixes high-severity ReDoS in
  dot-object's glob dependency
- `**/flatted: 3.4.0` — fixes high-severity unbounded recursion DoS
  in eslint and eslint-webpack-plugin's caching layer

What remains (30 vulnerabilities — all upstream-blocked)
The remaining vulnerabilities are entirely confined to dev-only
tooling and cannot be fixed without upstream releases:
- minimatch ReDoS across jest, @vue/test-utils, jest-serializer-vue,
  @quasar/app-webpack, @quasar/quasar-app-extension-testing-unit-jest
- ajv ReDoS across eslint, eslint-webpack-plugin, @quasar/app-webpack
- webpack SSRF (buildHttp feature, not used in this project)
- qs DoS in webpack-dev-server's express (local dev only)
- esbuild dev server CORS issue (local dev only)
- vue-template-compiler XSS (no patch available upstream)
- tmp symlink issue, @tootallnate/once control flow (test tooling only)

Change-Id: I72f34757538f97bb3495a57d7f0263df58102f1e
(cherry picked from commit 1ebe3c0683)
(cherry picked from commit 02f055d921)
mr12.5.1
Debora Crescenzo 3 months ago committed by Crescenzo Debora
parent 967365edd2
commit 35ef187d89

@ -34,7 +34,6 @@
"axios": "1.13.5",
"content-disposition": "^1.0.1",
"core-js": "^3.47.0",
"crypto-browserify": "3.12.1",
"decode-uri-component": "^0.4.0",
"eslint-plugin-no-relative-import-paths": "1.6.1",
"eslint-plugin-unused-imports": "4.3.0",
@ -86,7 +85,7 @@
"glob": "13.0.1",
"globals": "16.5.0",
"is-valid-glob": "1.0.0",
"jest": "30.2.0",
"jest": "30.3.0",
"jest-serializer-vue": "3.1.0",
"js-yaml": "4.1.1",
"uuid": "13.0.0",
@ -94,11 +93,10 @@
"vuelidate": "^0.7.7"
},
"resolutions": {
"@isaacs/brace-expansion": "5.0.1",
"qs": "6.14.1",
"tar": "7.5.7",
"lodash": "4.17.23",
"lodash-es": "4.17.23"
"serialize-javascript": "^7.0.3",
"**/postcss-svgo/svgo": "^4.0.1",
"dot-object/minimatch": "^3.1.2",
"**/flatted": "3.4.0"
},
"browserslist": [
"last 10 Chrome versions",

@ -125,7 +125,6 @@ module.exports = function (ctx) {
// https://quasar.dev/quasar-cli/handling-webpack
extendWebpack(cfg) {
cfg.resolve.fallback = {
crypto: 'crypto-browserify',
stream: 'stream-browserify',
vm: false
}

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save