Skip to content

Resolve desktop Electron app dependency vulnerabilities#88

Merged
lukeinthecity merged 1 commit into
mainfrom
fix/desktop-dependency-vulnerabilities
Jul 22, 2026
Merged

Resolve desktop Electron app dependency vulnerabilities#88
lukeinthecity merged 1 commit into
mainfrom
fix/desktop-dependency-vulnerabilities

Conversation

@lukeinthecity

Copy link
Copy Markdown
Owner

Sweeps the remaining Dependabot alerts. After #87 merged, the count dropped 118 → 50 — and the 50 were all in a manifest nothing was auditing: the desktop/ Electron app, which has its own package.json/lockfile that the root npm audit, the CI audit-js job, and the dependabot.yml from #75 all skipped.

The blind spot

desktop/npm audit showed 5 vulnerable packages (4 high, 1 moderate):

  • Electron — context-isolation bypass (contextBridge VideoFrame), unscoped window.open targets, commandLineSwitches renderer switch injection, clipboard crash
  • form-data — CRLF injection (high)
  • ws — uninitialized memory disclosure + DoS (high)
  • follow-redirects — auth-header leak on cross-domain redirect (moderate)

(Dependabot counts every advisory × transitive occurrence, which is why its number for this tree was ~50, not 5.)

Fix

  • desktop/package-lock.jsonnpm audit fix within semver range: electron → 40.10.6, ws → 8.21.1, plus transitive form-data/follow-redirects bumps. No package.json range changes. desktop/npm audit now reports 0 at all severity levels.
  • ci.ymlaudit-js now also audits desktop/ (npm ci --ignore-scripts skips Electron's ~100 MB binary download, unneeded for an audit), so this manifest can't silently regress the way it just did.
  • dependabot.yml — added an npm entry for /desktop; the root entry only watched /, leaving the desktop manifest with no update PRs.

State after this merges

All three dependency-audit surfaces are then clean:

  • root npm audit — 0 (verified on merged main)
  • pip-audit — 0 (verified on merged main)
  • desktop/npm audit — 0 (this PR)

The Dependabot number should collapse toward 0 once it re-scans. Anything that lingers would be an advisory with no available fix — I'll assess those individually if they appear, but there are none across the audit tools right now.

Note: I couldn't fully install/run the Electron app locally (the agent proxy blocks the Electron binary download), so this is verified at the dependency-audit level, not by launching the desktop UI. The lockfile changes are within-range patches, so runtime behavior shouldn't change — but a manual npm start from desktop/ on your machine is worth a smoke test before merging.

🤖 Generated with Claude Code

https://claude.ai/code/session_01A28CjhQi4MxhZgfAKB4CQh


Generated by Claude Code

The desktop/ Electron app has its own package.json/lockfile that the
root npm audit and the audit-js CI job never covered, so 5 advisories
(1 moderate, 4 high) went unseen there: Electron context-isolation /
window.open / commandLineSwitches issues, form-data CRLF injection,
ws memory disclosure/DoS, and follow-redirects header leak.

- desktop/package-lock.json: npm audit fix within semver range —
  electron -> 40.10.6, ws -> 8.21.1, plus transitive form-data /
  follow-redirects bumps. No package.json range changes; desktop npm
  audit now reports 0.
- ci.yml: audit-js job now also audits desktop/ (npm ci
  --ignore-scripts skips Electron's binary download, unneeded for an
  audit) so this manifest can't silently regress.
- dependabot.yml: add an npm entry for /desktop; the root entry only
  watched /, leaving the desktop manifest without update PRs.

Root npm audit and pip-audit remain clean (verified on merged main).

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01A28CjhQi4MxhZgfAKB4CQh
@lukeinthecity
lukeinthecity marked this pull request as ready for review July 22, 2026 00:01
@lukeinthecity
lukeinthecity merged commit ab90d3e into main Jul 22, 2026
5 checks passed
@lukeinthecity
lukeinthecity deleted the fix/desktop-dependency-vulnerabilities branch July 22, 2026 00:02
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