chore(deps): re-patch the six transitive advisories that widened past their overrides - #223
Merged
Conversation
… their overrides
pnpm audit --audit-level=high has been failing repo-wide, on main as well as on
every open branch, since the advisory database picked up new ranges for
dependencies this repo already overrides. It is the 4th step of pr-tests and a
step in the checks job, so it failed CI on diffs that touched no dependency at
all. Nine high advisories across five packages, every one of them dev/build
tooling that never reaches a shipped bundle.
Four of them are ranges that WIDENED under an existing override, so the override
kept pinning a version that is now itself vulnerable:
- undici <7.28.0 -> <7.29.0. Floor moved; stays in major 7, because
jsdom@29 requires undici-7 internals that v8 removed.
- brace-expansion the v5 selector has been widened twice (<5.0.7, <5.0.8, now
<5.0.9), and the v2 copy — explicitly out of scope when the
override was written — is now in range at <2.1.4. Two selectors,
one per major, each inside its consumer's range (minimatch@10
wants ^5.0.5, minimatch@5 wants ^2.0.1).
- fast-uri <=3.1.3 -> <3.1.5. Stays in the 3.x line; ajv requires ^3.0.1,
so the 4.x latest would break it.
Two are newly flagged with no override at all:
- nanoid <3.3.18, via postcss, which requires ^3.3.x. The selector's
upper bound keeps any 5.x/6.x copy out of scope.
- postcss <=8.5.17 (GHSA-r28c-9q8g-f849, path traversal via
sourceMappingURL auto-loading). Build-time only: the traversal
needs an attacker-authored stylesheet, which this repo does not
process.
Every patch was available inside the existing major, so no consumer range is
violated and no major moves. Verified after install: exactly one copy of each in
the lockfile, all patched — brace-expansion 2.1.4 + 5.0.9, undici 7.29.0,
fast-uri 3.1.5, nanoid 3.3.18, postcss 8.5.26. All Node 24 compatible, none
deprecated, no new native postinstall (allowBuilds unchanged).
pnpm audit --audit-level=high: no known vulnerabilities found. The five
pre-existing moderates cleared with the same bumps. pnpm install
--frozen-lockfile is clean, and pnpm pr-tests passes end to end.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Reviews: 5f20121 secure-dep-vetting,bundle-budget-watcher
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.
Summary
pnpm audit --audit-level=highhas been failing repo-wide — onmainas well as on every open branch — since the advisory DB widened the ranges on dependencies this repo already overrides. It is the 4th step ofpnpm pr-testsand a step in thechecksjob, so it failed CI on diffs that touched no dependency at all (PR feat(rules,backstage,beacon,auth): position-assignment lane + role-lifecycle follow-through #222 merged with it red).undici^7.28.0^7.29.0brace-expansion(v5)<5.0.7selector<5.0.9brace-expansion(v2)<2.1.4fast-uri<=3.1.3selector<3.1.5^3.0.1nanoid<3.3.18^3.3.x); upper bound keeps 5.x/6.x out of scopepostcss<8.5.18sourceMappingURLauto-loadingallowBuildsunchanged).Test plan
pnpm audit --audit-level=high— no known vulnerabilities found (was: 5 moderate | 9 high)pnpm install --frozen-lockfileclean (the CI install mode)pnpm pr-testspasses end to end (format,turbo run ci, knip, audit,test:seed,test:harness)checkspassemulatorpassReviews
secure-dep-vetting— every version taken from the live registry, none from memory; per-major latest verified (brace-expansion@2→ 2.1.4,undici@7→ 7.29.0,fast-uri@3→ 3.1.5,nanoid@3→ 3.3.18,postcss@8→ 8.5.26),engines.nodechecked against Node 24 on each,deprecatedempty on each.Agent(bundle-budget-watcher)— all four CI-gated budgets pass with headroom (spotlight eager JS 107/108 kB gz, spotlight CSS 16/17, backstage eager JS 160/162, backstage CSS 13/15);pnpm knipclean. Measured index-chunk gz delta vsorigin/main: 0 B — a--forcerebuild of a baseline worktree atorigin/main(0 cached, 7 tasks) emits byte-identical chunks, same content hashes (index-CX0vhM-Y.js132 922 B gz,index-CD_vz9VG.js103 928 B gz, and both CSS files). postcss is the only bump in the CSS pipeline and both apps use@tailwindcss/vitewith nopostcss.config.*, so it has no configured plugin surface here.🤖 Generated with Claude Code