Skip to content

security: bump vitest 0.34.6 -> 4.1.11 (closes last critical) - #362

Merged
dawsbot merged 1 commit into
masterfrom
security/audit-fix
Sep 22, 2026
Merged

dawsbot merged 1 commit into
masterfrom
security/audit-fix

Conversation

@dawsbot

@dawsbot dawsbot commented Sep 22, 2026

Copy link
Copy Markdown
Owner

Closes the last critical advisory in this repo, and picks up the non-breaking lockfile fixes from npm audit fix (no --force).

Advisory Severity
GHSA-82fw-gwwq-j7x9 — path traversal / arbitrary file read via the @vitest/mocker redirect mock critical
GHSA-5xrq-8626-4rwp — arbitrary file read and execution while the Vitest UI server is listening critical

Why dependabot couldn't do this one

A plain npm install -D vitest@^4.1.11 fails here:

npm error Could not resolve dependency:
npm error peerOptional @types/node@"^20.0.0 || ^22.0.0 || >=24.0.0" from vitest@4.1.11
npm error Found: @types/node@18.16.0

vitest 4 requires @types/node ≥20 and this repo pinned ^18.16.0. Bumping @types/node to ^24 alongside it resolves cleanly. Both are devDependencies and neither is published — files ships only dist/ and skills/.

Verification

I compared against master rather than trusting a green run, because this suite does not pass cleanly either way:

Test files Tests
vitest 0.34.6 (master) 9 failed / 52 passed 33 failed / 174 passed
vitest 4.1.11 (this PR) 9 failed / 52 passed 33 failed / 174 passed

Identical. Those 33 failures are pre-existing and environmental — live JSON-RPC calls returning Must be authenticated! because RPC keys aren't set locally. This bump regresses nothing.

npm run build (tsup) exits 0; ESM, CJS and DTS all emit.

Result

0 critical, 2 high (was 1 critical, 4 high). The 2 remaining highs need semver-major upgrades — vite ^4.5.0 → 8.x and ws via ethers 6.17.0 — so they're left for a deliberate change.

🤖 Generated with Claude Code

… advisories

Closes the last critical advisory in this repo:

  GHSA-82fw-gwwq-j7x9  Vitest: path traversal / arbitrary file read via the
                       @vitest/mocker redirect mock. Fixed in 4.1.11.
  GHSA-5xrq-8626-4rwp  Arbitrary file read and execution while the Vitest UI
                       server is listening.

A plain `npm install -D vitest@^4.1.11` fails here: vitest 4 declares a peer
of @types/node ^20 || ^22 || >=24, and this repo pinned ^18.16.0, so npm
aborts with ERESOLVE. Bumping @types/node to ^24 alongside it resolves
cleanly. Both are devDependencies and neither is published -- `files` ships
only dist/ and skills/.

Also includes the lockfile-only fixes from `npm audit fix` (no --force).

Verified, comparing against master rather than trusting a green run:
  - vitest 0.34.6 (master):  9 files failed, 33 tests failed, 174 passed
  - vitest 4.1.11 (this PR): 9 files failed, 33 tests failed, 174 passed
  Byte-identical. Those 33 failures are pre-existing and environmental --
  they are live JSON-RPC calls returning "Must be authenticated!" because
  the RPC keys are not set locally. The bump regresses nothing.
  - `npm run build` (tsup) exits 0; ESM, CJS and DTS all emit.

Result: 0 critical, 2 high (was 1 critical, 4 high).
Remaining highs need semver-major upgrades: vite ^4.5.0 -> 8.x and
ws via ethers 6.17.0.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented Sep 22, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
essential-eth Ready Ready Preview Sep 22, 2026 8:23pm UTC

@dawsbot
dawsbot merged commit dd5c947 into master Sep 22, 2026
2 of 7 checks passed
@dawsbot
dawsbot deleted the security/audit-fix branch September 22, 2026 20:31

This branch was successfully deployed

1 active deployment
Preview — ccdb5612 Deployed Sep 22, 2026 by vercel[bot]
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