fix(deps): close vite + esbuild CVEs via pnpm.overrides + vitest@3 #159

Merged
KofTwentyTwo merged 1 commits from fix/cve-pnpm-overrides-v0.1 into develop 2026-05-13 11:41:53 +00:00
1 Commits
Author SHA1 Message Date
james.maesandClaude Opus 4.7 34949670cc fix(deps): close vite + esbuild CVEs via pnpm.overrides + vitest@3 bump
Closes the two open Dependabot security alerts:
  - Vite path traversal in optimized deps .map handling (Moderate)
  - esbuild dev-server lets any website send requests + read responses (Moderate)

Root cause (per the H' analysis in PR #155): the vulnerable chain was
`webview/package.json → vitest@2.1.9 → vite@5.4.21 → esbuild@0.21.5`,
with `vitest@^2.1.0` pinned in TWO places (workspace root +
packages/bus). The existing Dependabot vite PR (#145) only touched
packages/hud (which was already on vitest@3), so it could not close
the alerts alone.

Surgical fix:
  - Add `pnpm.overrides` block to webview/package.json pinning
    vite >= 8.0.5 and esbuild >= 0.25.0. Vite 8.x demotes esbuild
    from a hard dep to an optional peer, so the override floats both
    the root and the bus workspace to vite@8.0.10 and drops esbuild
    from the tree entirely.
  - Bump vitest from ^2.1.0 to ^3.0.0 in webview/package.json and
    webview/packages/bus/package.json. Vitest 2 is incompatible with
    vite 8 (SSR transform throws `__vite_ssr_exportName__ is not
    defined`); vitest 3 is required. The hud workspace was already on
    vitest@^3.0.0, so this aligns the workspace.

Verified:
  - `pnpm install` regenerates the lockfile cleanly.
  - `pnpm why vite` shows vite@8.0.10 only; `pnpm why esbuild` returns
    empty.
  - `pnpm --filter @jarvis/bus test` → 37/37 pass.
  - `pnpm --filter @jarvis/hud test` → 101/101 pass.
  - `pnpm -r build` → both workspaces build cleanly.

Deferred to v0.2 (per H' triage in #155):
  - Vitest 4.x major bump.
  - Vitest@3's `esbuild` plugin-option deprecation in favor of `oxc`.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-13 06:41:11 -05:00