Skip to content

fix(deps): take the vitest fix for the path-traversal advisory - #591

Merged
mrviduus merged 1 commit into
mainfrom
fix/vitest-path-traversal
Sep 9, 2026
Merged

fix(deps): take the vitest fix for the path-traversal advisory#591
mrviduus merged 1 commit into
mainfrom
fix/vitest-path-traversal

Conversation

@mrviduus

@mrviduus mrviduus commented Sep 9, 2026

Copy link
Copy Markdown
Owner

CI is red on every open branch, not just one. GHSA-82fw-gwwq-j7x9 was published against vitest >=2.1.0 <4.1.11 — path traversal / arbitrary file read through @vitest/mocker's redirect mock. The catalog was on ^3.2.6.

Why the bump and not the allowlist

scripts/check-advisories.mjs offers both routes, and its KNOWN list is for advisories with nowhere to go — its two entries sit inside Expo's own dependency tree, where forcing a version is how a working mobile build stops working.

That file states the rule itself:

when a real fix appears upstream the entry stops being true, and the note below it stops being an excuse

A fix exists here. An allowlist entry would have been false the day it was written.

Verified, not assumed

A test-runner major deserves a check before it lands:

suite result
packages/shared 444 passed
apps/web 777 passed
apps/mobile 382 passed
apps/admin typecheck clean

No config or test changes were needed. pnpm audit now reports only the two known Expo entries (uuid, decode-uri-component).

Why its own PR

It blocks every branch, so it should not ride inside one of them — and a bump of the tool that runs the tests deserves to be reviewable on its own.

🤖 Generated with Claude Code

https://claude.ai/code/session_011rgEMvYYi4Egj99dVtvm6E

CI went red on every open branch, not just one: GHSA-82fw-gwwq-j7x9 was published
against `vitest >=2.1.0 <4.1.11` — path traversal / arbitrary file read through
@vitest/mocker's redirect mock. The catalog was on ^3.2.6.

Raised to ^4.1.11 rather than added to KNOWN in scripts/check-advisories.mjs. The
allowlist there is for advisories with nowhere to go — its two entries are inside
Expo's own dependency tree, where forcing a version is how a working mobile build
stops working. That file says so itself: "when a real fix appears upstream the
entry stops being true, and the note below it stops being an excuse". A fix exists
here, so the excuse would have been false the day it was written.

A test-runner major is worth checking rather than assuming, so all three suites
were run against it before committing: 444 shared, 777 web, 382 mobile — all pass,
no config or test changes needed. `pnpm audit` now reports only the two known Expo
entries.

Deliberately its own PR. It blocks every branch, so it should not ride inside one
of them, and a bump of the tool that runs the tests deserves to be reviewable on
its own.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011rgEMvYYi4Egj99dVtvm6E
@mrviduus
mrviduus merged commit bb82778 into main Sep 9, 2026
10 checks passed
@mrviduus
mrviduus deleted the fix/vitest-path-traversal branch September 9, 2026 03:16
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