Skip to content

fix(deps): remediate Vanta/Dependabot medium advisories (ENG-5578) - #64

Merged
StephenTangCook merged 1 commit into
mainfrom
claude/vanta-dependabot-medium-2jrrc9
Aug 3, 2026
Merged

fix(deps): remediate Vanta/Dependabot medium advisories (ENG-5578)#64
StephenTangCook merged 1 commit into
mainfrom
claude/vanta-dependabot-medium-2jrrc9

Conversation

@StephenTangCook

@StephenTangCook StephenTangCook commented Aug 3, 2026

Copy link
Copy Markdown
Collaborator

Summary

Clears all 13 medium-severity Dependabot findings tracked in ENG-5578.

Every affected package is a transitive dev/build or Cloudflare Worker dependency — none of them reach the published dist/ bundle, whose only runtime dependencies remain ajv and ajv-formats. The fixes are pnpm.overrides entries, following the pattern this repo already uses for fast-uri and ws.

Type of change

  • Docs / chore (no runtime change)

Changes

Advisory Package Before → After Source
CVE-2026-54286/54287/54288/54289 (<4.12.25)
CVE-2026-59895/59896/59897 (<4.12.27)
hono 4.12.21 → 4.12.33 @modelcontextprotocol/sdk (declares ^4.11.4)
GHSA-frvp-7c67-39w9 (<2.0.5) @hono/node-server 1.19.14 → 2.0.12 @modelcontextprotocol/sdk
CVE-2026-53550 js-yaml 3.14.2 → 3.15.1
4.1.1 → 4.3.1
ajv-cli (3.x); json-schema-to-typescript / @apidevtools/json-schema-ref-parser (4.x)
CVE-2026-9678 / CVE-2026-9679 (>=7.0.0 <7.28.0) undici 7.24.8 → 7.29.0 miniflare (pins exactly)
CVE-2026-53632 (8.0.08.0.15) vite 8.0.12 → 8.0.16 auto-installed peer of vitest / agents

Two things reviewers should look at:

  • @hono/node-server had to cross a major. There is no patched 1.x — 2.0.5 is the only fix. So worker's @modelcontextprotocol/sdk moves ^1.29.0^1.30.0, which widened its own range to ^1.19.9 || ^2.0.5 specifically for this advisory (sdk#2549). 1.30.0 is a semver-minor with no breaking changes.
  • @modelcontextprotocol/sdk is also overridden to ^1.30.0 because agents@0.13.0 pins it to exactly 1.29.0. Without that override the tree carries two SDK copies and worker typecheck fails on incompatible McpServer types across them (Types have separate declarations of a private property '_serverInfo'). This was caught and fixed before pushing.

vite is declared as an explicit devDependency in both workspaces rather than only overridden: it is an auto-installed peer of vitest, and pnpm will not re-resolve an auto-installed peer from an overrides entry alone. It is pinned to ~8.0.16 to keep the bump inside 8.0.x.

Incidental lockfile churn: rolldown picks up a second copy (1.0.3 from vite, 1.2.1 for @rolldown/plugin-babel's peer). Dev-tooling only — nothing imports it at runtime, and the Worker is bundled by wrangler/esbuild.

demo/ is unaffected (separate lockfile, installed with --ignore-workspace; its vite is 6.4.3, outside the advisory range, and it has no js-yaml/undici/hono).

Testing

  • pnpm test passes — 20 files, 499 tests (also verified under Bun via bun --bun run vitest run)
  • pnpm typecheck passes (root and worker)
  • pnpm lint passes
  • pnpm validate-schema passes
  • Added or updated tests under test/ covering the change — n/a, dependency-only change

Additional CI-equivalent checks run locally against a clean pnpm install --frozen-lockfile:

  • pnpm run test:coverage — 95.36% statements, unchanged
  • pnpm run generate:typessrc/types.generated.ts byte-identical (86,512 bytes), so the js-yaml 4.x bump does not perturb generated output
  • pnpm run builddist/standalone-validator.js byte-identical (873,648 bytes)
  • pnpm exec esbuild --bundle --format=esm --platform=neutral ... scripts/smoke-worker.ts — clean
  • pnpm run build:demo — clean
  • worker: typecheck + 33 tests pass

Not run locally: the Deno smoke job (deno is not installed in this environment). It consumes the built dist/ artifacts, which are byte-identical to main, so it carries no new risk.

Schema changes

n/a — src/slack-block-kit.schema.json is untouched.

Checklist

  • Commit messages follow Conventional Commits
  • Public API changes are reflected in README.md — n/a, no public API change
  • No secrets, tokens, or sample tenant data committed

Follow-up

Per the issue's acceptance criteria, the Vanta test should be rerun after this merges. Note the push warning reports 31 total alerts on main (13 high, 13 moderate, 5 low) — this PR addresses the 13 medium/moderate findings enumerated in ENG-5578; the high and low findings are out of scope here.

🤖 Generated with Claude Code

https://claude.ai/code/session_0154iDBUE6SWF9Q6uHSz1xqd


Generated by Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

Clears all 13 medium-severity Dependabot findings for this repo. Every
affected package is a transitive dev/build or Cloudflare Worker dependency
— none reach the published `dist/` bundle, whose only runtime deps remain
ajv and ajv-formats.

Overrides added (repo already uses this pattern for fast-uri/ws):

- hono 4.12.21 -> 4.12.33
  CVE-2026-54286/54287/54288/54289 (<4.12.25) and
  CVE-2026-59895/59896/59897 (<4.12.27). Pulled in by
  @modelcontextprotocol/sdk, which declares ^4.11.4.
- @hono/node-server 1.19.14 -> 2.0.12
  GHSA-frvp-7c67-39w9 (<2.0.5). No patched 1.x exists — 2.0.5 is the only
  fix — so @modelcontextprotocol/sdk moves to ^1.30.0, which widened its
  range to `^1.19.9 || ^2.0.5` specifically for this advisory.
- js-yaml 3.14.2 -> 3.15.1 and 4.1.1 -> 4.3.1
  CVE-2026-53550. From ajv-cli (3.x) and json-schema-to-typescript /
  @apidevtools/json-schema-ref-parser (4.x).
- undici 7.24.8 -> 7.29.0
  CVE-2026-9678/9679 (>=7.0.0 <7.28.0). Pinned exactly by miniflare;
  upstream miniflare has since moved to 7.28.0 itself.
- vite 8.0.12 -> 8.0.16
  CVE-2026-53632 (8.0.0–8.0.15). vite is an auto-installed peer of vitest,
  which an override alone cannot re-resolve, so it is declared explicitly
  as a devDependency in both workspaces and pinned to `~8.0.16` to keep the
  change inside 8.0.x.

@modelcontextprotocol/sdk is also overridden to ^1.30.0 because
agents@0.13.0 pins it to exactly 1.29.0. Without the override the tree
carries two SDK copies and `worker` typecheck fails on incompatible
`McpServer` types across them.

Verified: root lint, typecheck, 499 tests (Node + Bun), test:coverage,
generate:types in sync, schema validation, esbuild worker-platform bundle,
demo build, worker typecheck and 33 tests. The standalone bundle and
src/types.generated.ts are byte-identical to before, so there is no
behavior change for consumers.

Refs ENG-5578

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0154iDBUE6SWF9Q6uHSz1xqd
@StephenTangCook
StephenTangCook enabled auto-merge (squash) August 3, 2026 23:54
@StephenTangCook
StephenTangCook merged commit 7e30b98 into main Aug 3, 2026
14 checks passed
@StephenTangCook
StephenTangCook deleted the claude/vanta-dependabot-medium-2jrrc9 branch August 3, 2026 23:55
StephenTangCook added a commit to TightknitAI/block-kitchen that referenced this pull request Aug 4, 2026
Patch release remediating Vanta/Dependabot medium advisories in its own
dependency tree (TightknitAI/slack-block-kit-validator#64).

pnpm outdated did not surface it: 0.1.12 was published 2026-08-03 and
safe-chain's minimum-age filter suppressed it from the registry listing.
Confirmed against the raw registry, then installed with
--safe-chain-skip-minimum-package-age. Safe to skip the age guard here
because this is our own first-party package, released by release-please
from TightknitAI/slack-block-kit-validator.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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