Skip to content

fix: resolve all 13 critical npm alerts in InstallerUI - #105

Merged
samerzughul merged 1 commit into
mainfrom
muhannad/fix-critical-npm-alerts-installerui
Aug 25, 2026
Merged

fix: resolve all 13 critical npm alerts in InstallerUI#105
samerzughul merged 1 commit into
mainfrom
muhannad/fix-critical-npm-alerts-installerui

Conversation

@mmalkhatib

@mmalkhatib mmalkhatib commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Summary

Resolves all 13 open CRITICAL Dependabot alerts on this repo, all in SW.Serverless.InstallerUI/yarn.lock (a devtools Electron app — confirmed unused/not important currently, which is why the riskier tar fix below was acceptable to fold in directly rather than deferring).

Package Was Now How
pbkdf2 3.1.1 3.1.6 fresh lockfile regen (already in range)
sha.js 2.4.11 2.4.12 fresh lockfile regen
cipher-base 1.0.4 1.0.7 fresh lockfile regen
elliptic 6.5.3 6.6.1 fresh lockfile regen
minimist 1.2.5 1.2.8 fresh lockfile regen
loader-utils (1.x line) 1.4.0 1.4.2 scoped resolutions (ts-loader/html-webpack-plugin/webpack)
loader-utils (2.x line) 2.0.0 2.0.4 scoped resolutions (copy-webpack-plugin/css-loader/node-loader/style-loader)
plist 3.0.1 3.0.5 fresh lockfile regen — also drops its xmldom dependency entirely
xmldom 0.1.31 (removed) side effect of the plist bump above
json-schema 0.2.3 0.4.0 resolutions (pinned exactly by old jsprim, no range to regen into)
form-data 2.3.3 2.5.6 resolutions (parent wants ~2.3.2, patch is outside that range)
tar 4.4.13 / 6.0.5 7.5.22 resolutions — see below

On tar (GHSA-23hp-3jrh-7fpw, no in-range fix): none of its actual consumers here (node-pre-gyp, cacache, node-gyp, electron-rebuild — native-module rebuild tooling invoked during package/make, not @electron-forge/* itself) need anything beyond tar's stable extract/create-style API, which hasn't changed across these majors. Verified tar 7.x still exports the full c/x/t/u/create/extract/Pack/Unpack surface, and that node-pre-gyp, cacache, and node-gyp all require() cleanly against it. This is a real major-version override past what their declared ranges (^4, ^6.x) ask for, so flagging it explicitly rather than burying it — but the properly-supported fix here (upgrading @electron-forge/* off its 6.0.0-beta.54 pin) would cascade into a webpack 4→5 migration across six other build plugins, which is a much larger, harder-to-verify change than this app currently warrants.

Why the lockfile diff is large

Deleted and fully regenerated yarn.lock rather than patching entries by hand, so a handful of other packages also moved to their latest version within their own already-declared range (e.g. bootstrap 4.5.3→4.6.2, eslint 7.6→7.32, ts-loader 8.0.12→8.4.0) — normal, low-risk patch/minor bumps that come along for free with any lockfile refresh, not deliberate changes.

Test plan

  • All 13 target packages confirmed at or above their patched version in the regenerated yarn.lock; xmldom confirmed fully removed.
  • yarn install — no unexpected-incompatibility warnings beyond the three deliberate cross-range overrides (form-data, loader-utils, tar), all documented above.
  • node -e "require('node-pre-gyp'); require('cacache'); require('node-gyp')" — all load cleanly against tar@7.5.22.
  • yarn lint and yarn package fail identically with and without this change — pre-existing broken imports (./model, ./app missing) unrelated to dependency versions, confirmed via git stash/stash pop comparison both ways. This change introduces no new breakage.

🤖 Generated with Claude Code

Regenerated SW.Serverless.InstallerUI/yarn.lock from scratch and added
targeted `resolutions` overrides for transitive dependencies whose
declared range doesn't reach the patched version on its own:

- json-schema, form-data: forced past an old pinned/narrow parent range
  (jsprim's exact 0.2.3 pin; aws-sdk's ~2.3.2 tilde range). Same major
  version, low risk.
- sha.js, cipher-base, elliptic, minimist, pbkdf2, plist: patched
  versions already satisfy their parents' existing ranges - picked up
  once the lockfile was regenerated fresh instead of reusing stale
  cached resolutions.
- loader-utils: two independent lines (1.x and 2.x) coexist by design
  across different consumers; scoped both to their latest patched
  version via ancestor-path resolutions rather than collapsing to one
  version, which would have broken whichever line didn't get it.
- plist 3.0.1 -> 3.0.5 incidentally drops its `xmldom` dependency
  entirely (newer plist doesn't use it), clearing that advisory too
  even though xmldom itself has no upstream patch.

Not included: `tar` (GHSA-23hp-3jrh-7fpw) needs a 4.x/6.x -> 7.x major
bump that isn't reachable within any current consumer's declared range.
It's pulled in transitively by the pinned `@electron-forge/*` 6.0.0-beta
packages, so forcing it via resolutions risks breaking the archive
extraction those packages actually run during `make`/`package`. Deferred
to a follow-up PR that upgrades `@electron-forge/*` itself.

Verified this change introduces no new breakage: `yarn lint` and
`yarn package` fail identically with and without this change (missing
`./model`/`./app` source modules - pre-existing, unrelated to
dependency versions, confirmed via git stash/stash pop comparison).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Aug 25, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 27 minutes.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Repository: simplify9/coderabbit/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 48755bb7-52ad-41f2-a393-086d8c6938ca

📥 Commits

Reviewing files that changed from the base of the PR and between ff3dbea and 8446c35.

⛔ Files ignored due to path filters (1)
  • SW.Serverless.InstallerUI/yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing (1)
  • SW.Serverless.InstallerUI/package.json

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@samerzughul
samerzughul merged commit 9b49f8e into main Aug 25, 2026
4 of 5 checks passed
@mmalkhatib mmalkhatib changed the title fix: resolve 12 of 13 critical npm alerts in InstallerUI fix: resolve all 13 critical npm alerts in InstallerUI Aug 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants