Skip to content

VC-793: Override tinypool, source-map-js and sharp to patched versions, and re-resolve smol-toml - #931

Merged
hussainph merged 2 commits into
mainfrom
volli/VC-793-security-eight-new-dependabot-alerts-75-81-87-ti
Oct 19, 2026
Merged

hussainph merged 2 commits into
mainfrom
volli/VC-793-security-eight-new-dependabot-alerts-75-81-87-ti

Conversation

@hussainph

@hussainph hussainph commented Oct 19, 2026 •

Copy link
Copy Markdown
Owner

Problem

Eight Dependabot alerts opened with no ticket (VC-793). Four of them have a published patch, but the lockfile still resolves the vulnerable copy:

Alert Package main resolves Chain Why re-resolution alone can't fix it
#75, #76 (critical) tinypool 2.1.0 vite-plus 0.3.0 → oxfmt 0.64.0 → tinypool oxfmt pins tinypool: 2.1.0 exactly. vite-plus pins oxfmt: =0.64.0 (catalog pin, VC-211).
#78 (high) source-map-js 1.2.1 @tailwindcss/node 4.3.3, magicast 0.5.4, postcss 8.5.28 Ranges are ^1.2.1, but the stale lock entry keeps 1.2.1. This copy ships in the .app (jsdom's runtime tree, see electron-builder.yml).
#87 (high) sharp 0.35.4 docs/website wrangler → miniflare 5.20260926.1-alpha → sharp miniflare pins sharp: 0.35.4 exactly. Docs/website build only.
#80 (medium) smol-toml 1.8.0 astro 7.2.8, @astrojs/internal-helpers None. The range is ^1.6.0. Static-site build only.

Fix

pnpm-workspace.yaml overrides. Each one is patch-level, scoped to the vulnerable parent or range, and has a comment that says when to remove it:

  • oxfmt@0.64.0>tinypool: 2.1.2
  • source-map-js@<1.2.2: 1.2.2
  • miniflare@5.20260926.1-alpha>sharp: 0.35.5

smol-toml is re-resolved in place (pnpm up -r --depth Infinity --lockfile-only smol-toml), giving 1.9.1. No override.

Because the sharp override removes the last installed @img/sharp-libvips@1.3.3, which was miniflare's dev-only copy, check:licenses requires dropping 1.3.3 from apps/desktop/scripts/dependency-license-policy.json. The note in docs/licensing/dependency-license-review.md that explained why it was kept is updated to match.

apps/desktop/THIRD-PARTY-NOTICES is regenerated because the shipped source-map-js moves from 1.2.1 to 1.2.2. The lockfile diff contains only these four packages plus the sharp 0.35.4 @img/* platform entries it drops.

Left to the owner (deliberately untouched)

Decisions

Tests

Dependency-only change, so there is no Vitest file. The checks:

  • Before: origin/main's pnpm-lock.yaml resolves tinypool 2.1.0, source-map-js 1.2.1, sharp 0.35.4 (miniflare) and smol-toml 1.8.0.
  • After: pnpm why -r <pkg> after a frozen install shows one copy of each: tinypool 2.1.2, source-map-js 1.2.2, sharp 0.35.5, smol-toml 1.9.1. katex 0.16.47, postcss-selector-parser 6.1.4 and sprintf-js 1.1.3 are unchanged, as listed above.
  • check-dependency-licenses, check:notice-inputs, check:lgpl-source and check:library-validation (apps/desktop): all pass.
  • pnpm check:notices: self-test passed. The notice is current (587 packages) and electron-builder ships it.
  • vp fmt --check pnpm-workspace.yaml: clean.
  • CI is the full proof.

Scoped patch-level overrides for the parents that pin vulnerable copies
exactly (oxfmt 0.64.0 -> tinypool 2.1.2, miniflare -> sharp 0.35.5), a
range-scoped override for source-map-js <1.2.2, and an in-place
re-resolution of smol-toml within astro's ^1.6.0. Regenerates
THIRD-PARTY-NOTICES for the shipped source-map-js 1.2.2.
@coderabbitai

coderabbitai Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 539f4214-73e7-4524-950b-5741b6238f63
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

The sharp override removes the last installed @img/sharp-libvips 1.3.3
(miniflare's dev-only copy), so check:licenses requires dropping that
version from the reviewed record.
@hussainph
hussainph merged commit 6381636 into main Oct 19, 2026
23 checks passed
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