Skip to content

fix(deps): clear 16 Dependabot security alerts - #105

Merged
Vesperino merged 3 commits into
masterfrom
fix/dependabot-vulns
Jun 7, 2026
Merged

fix(deps): clear 16 Dependabot security alerts#105
Vesperino merged 3 commits into
masterfrom
fix/dependabot-vulns

Conversation

@Vesperino

Copy link
Copy Markdown
Owner

Resolves the 16 open Dependabot alerts on the default branch (all npm, no cargo). Independent of #103.

Changes

Direct bumps + pnpm.overrides so every flagged package lands on a patched version:

Package Scope Was Now Advisory
mermaid runtime 11.12.3 11.15.0 CSS/HTML injection ×3, Gantt DoS
dompurify runtime (via mermaid) <3.4.0 3.4.8 XSS-bypass ×4
lodash-es runtime ≤4.17.23 4.18.1 code injection, prototype pollution
uuid runtime (via mermaid) <11.1.1 14.0.0 buffer bounds check
postcss runtime <8.5.10 8.5.15 XSS via stringify
vite dev ≤6.4.1 6.4.3 dev-server file read, path traversal
vitest dev <4.1.0 4.1.8 UI-server file read (critical)
js-cookie dev ≤3.0.5 3.0.8 prototype hijack

Why uuid jumps to 14

mermaid 11.15.0 declares uuid: ^11.1.0 || ^12 || ^13 || ^14.0.0 and imports only the stable { v4 } export, so 14.0.0 is sanctioned by its sole consumer. No app code imports any of the forced packages directly — blast radius is confined to mermaid + build tooling.

Verification

  • pnpm audit no longer lists any of the 16 packages.
  • 858 unit tests pass · vue-tsc typecheck passes · production vite build passes (mermaid 11.15.0 renders).
  • Reviewed adversarially (multi-agent: reviewers per risk dimension → judges refuting each finding). 22 findings raised, 0 confirmed — every concern (mermaid sanitization hardening, uuid major jump, override peer-conflicts) was killed with code evidence (e.g. mermaid's tightened CSS sanitizer only touches themeCSS/fontFamily, never the classDef styling this app uses; theme vars are hex literals; SVG ID-prefixing is self-contained).

Deferred

Three residual dev-only advisories remain — brace-expansion (via @vue/test-utils) and ws (via jsdom). They are not shipped in the Tauri bundle and were not in the Dependabot set; forcing single versions risks breaking other consumers for no shipped-surface gain. Deferred.

🤖 Generated with Claude Code

Bump direct deps and add pnpm overrides for transitive ones so every
package flagged by Dependabot resolves to a patched version:

- mermaid ^11.12.3 -> ^11.15.0  (CSS/HTML injection, Gantt DoS)
- vite ^6.3.5 -> ^6.4.2, vitest ^4.0.17 -> ^4.1.0  (dev server file read)
- overrides: dompurify >=3.4.0, lodash-es >=4.18.0, js-cookie >=3.0.7,
  postcss >=8.5.10, uuid >=11.1.1

uuid resolves to 14.0.0, which mermaid 11.15.0 explicitly accepts
(uuid: ^11.1.0 || ^12 || ^13 || ^14.0.0) and only uses via the stable
{ v4 } export; no app code imports the forced packages directly.

858 unit tests, vue-tsc typecheck and the production build all pass.

Three residual dev-only advisories remain (brace-expansion via
@vue/test-utils, ws via jsdom) — not shipped in the Tauri bundle and
outside the original Dependabot set; deferred.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Vesperino added a commit that referenced this pull request Jun 7, 2026
The #106 WebKitGTK EGL/DMA-BUF fix merged to master via #107 without a version
bump, so the release workflow stayed on v0.5.1 and the auto-updater never offered
an update. Bump to v0.5.2 and add release notes so the already-merged fix ships as
a new version. Security/dependency updates (#105) follow in v0.5.3.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Vesperino and others added 2 commits June 7, 2026 16:15
Bump version and add release notes so the Dependabot security updates on this
branch publish as v0.5.3. Frontend build verified locally with the updated deps
(mermaid 11.15, vite 6.4, vitest 4.1, transitive security overrides).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@Vesperino
Vesperino merged commit 064338a into master Jun 7, 2026
@Vesperino
Vesperino deleted the fix/dependabot-vulns branch June 7, 2026 14:18
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.

1 participant