build(deps): fix critical vitest and shell-quote advisories, refresh stale overrides - #654
Open
MRmarioruci wants to merge 4 commits into
Open
build(deps): fix critical vitest and shell-quote advisories, refresh stale overrides#654MRmarioruci wants to merge 4 commits into
MRmarioruci wants to merge 4 commits into
Conversation
The spinner test fired trigger('click') without awaiting it and then relied
on a single $nextTick() to observe the loading state. Because signIn was
mocked as an already-resolved promise, the .finally that clears
isReauthenticating could land in the same microtask flush that rendered the
component, so the spinner was gone before the assertion ran.
Hand the mock a promise that only settles after the assertion, so the
in-flight state is genuinely observable rather than a race the runner
happens to win.
Vitest below 3.2.6 lets the UI server read and execute arbitrary files, so exposing the API is equivalent to granting script execution. Orbit only ever runs `vitest run` and depends on no @vitest/ui, so nothing here was reachable, but the advisory is rated critical and the runner is a direct devDependency. The peer range of 3.2.6 already accepts the vite version in the tree, so no build tooling moves with it.
Most of the open alerts are transitive, and several existing overrides had simply gone stale against newer advisories: immutable, dompurify, brace-expansion, form-data and axios were all pinned to versions that have since been superseded. Refresh those and add entries for shell-quote, js-yaml, postcss, ws, svgo, mermaid and sharp. vite and sharp also move as direct dependencies. vite has no patched 5.x line, so the root devDependency goes to 6.4.3, which the wallet build and the vitest run both already tolerate. The critical shell-quote issue reaches the tree through concurrently.
Reaches the lockfile through reqwest. `cargo check --locked` across the workspace is unaffected.
|
✅ No security or compliance issues detected. Reviewed everything up to b104036. Security Overview
Detected Code ChangesThe diff is too large to display a summary of code changes. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Dependabot reports two
criticaladvisories against this repo, plus a long tail ofhigh/mediumones that are mostly transitive.vitest< 3.2.6 (GHSA-5xrq-8626-4rwp). The UI server's/__vitest_attachment__handler misuses the deprecatedisFileServingAllowed, and the API'ssaveTestFile+rerunpair means exposing it is equivalent to granting script execution. Worth stating plainly: this was not reachable here. The advisory requires the UI server to be listening (--ui,api.host, or browser mode), and Orbit runsvitest runin CI with no@vitest/uidependency anywhere. It is still a direct devDependency two majors behind, which is its own maintenance problem.shell-quote<= 1.8.3 (GHSA-w7jw-789q-3m8p). Reaches the tree throughconcurrently.Separately, several entries in the existing
pnpm.overridesblock had gone stale:immutable,dompurify,brace-expansion,form-dataandaxioswere each pinned to a version that a later advisory has since superseded, so they were silently no longer doing their job.Changes
The branch starts at the one place the vitest upgrade actually changed behaviour.
SessionExpiredOverlay.spec.tsasserted that a loading spinner was visible after firingtrigger('click')without awaiting it, then waiting a single$nextTick(); becausesignInwas mocked as an already-resolved promise, the.finallyclearingisReauthenticatingcould land in the same microtask flush that rendered, so the spinner was gone before the assertion. That is a latent race in the test rather than anything vitest broke, and it is fixed first, on its own, so the tree is green at every commit.From there
vitestand@vitest/coverage-v8move to 3.2.6 in the root and incli/. The peer range of 3.2.6 already accepts the vite in the tree, so nothing else moves with it. The third commit then works outward to everything the runner does not own: the stale overrides are refreshed, entries are added forshell-quote,js-yaml,postcss,ws,svgo,mermaidandsharp, andviteandsharpalso move as direct dependencies.vitehas no patched 5.x line, so the root devDependency goes to 6.4.3. The last commit is the Rust side, wherequinn-protoreachesCargo.lockthroughreqwest.Tests
Baseline on
vitest1.6.1 was recorded first, then compared after each step.1 failed | 472 passed. The single failure is the racy spinner assertion described above.vitest1.6.1 as well and passes there too, so the first commit stands on its own and does not depend on the bump.apps/walletvite buildsucceeds,docsastro buildcompletes.vue-tsc --noEmit,prettier --checkandeslintclean on the changed spec.cargo check --locked --workspace --exclude integration-testspasses with the newCargo.lock.Deliberately out of scope
astro5.18.1 to 7.1.0 (docs/,apps/marketing/). Two majors, and build(deps): bump astro from 5.18.1 to 6.1.6 in /docs #632 is already open moving it to 6.1.6.nx19.8.3 to 22.7.2. Three majors across the build orchestration,mediumseverity, not worth coupling to a security branch.