Skip to content

fix(security): bound dev-tree overrides within the major they patch - #245

Merged
unional merged 1 commit into
mainfrom
fix/bound-overrides-to-major
Sep 2, 2026
Merged

fix(security): bound dev-tree overrides within the major they patch#245
unional merged 1 commit into
mainfrom
fix/bound-overrides-to-major

Conversation

@unional

@unional unional commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • cross-spawn, lodash, tmp, and the minimatch (>=9.0.0 <9.0.7) and brace-expansion (<1.1.13) overrides in pnpm-workspace.yaml had unbounded (or too-loosely bounded) upper ranges, so clearing an advisory could silently jump a package across one or more majors with nothing to flag it.
  • Each is now bounded to the major it patches (a caret range), matching the pattern already used elsewhere in this file and in cyberuni/iso-error.
  • Repo-internal, dev-tree only (path-equal ships no runtime dependencies) — no changeset, no version bump.

What actually changed in the lockfile

Only one resolution moved: minimatch@3.1.5's brace-expansion dependency, from 5.0.7 down to 1.1.18 — inside the major (1.x) the override is meant to patch, instead of the unrelated, still-unpatched major-5 line the old unbounded target (<6) happened to reach.

cross-spawn, lodash, tmp, and minimatch's >=9.0.0 <9.0.7 override were already no-ops against the resolved tree (nothing currently requests those vulnerable ranges), so bounding them changes nothing today — it just removes the unbounded upper before something does request them.

Advisories

  • pnpm audit: 2 high before, 2 high after (unchanged). Both come from brace-expansion@5.0.7 resolved via minimatch@10.2.5, which is glob/typedoc's own direct dependency (^5.0.5) — unrelated to any override, and out of scope for this fix. brace-expansion@5.0.7 was reachable via 5 paths before this change and 4 after (the override-caused depcheck path is gone).
  • gh api repos/cyberuni/path-equal/dependabot/alerts: 0 open alerts before and after.
  • No override was left loose to avoid reintroducing a vulnerability — every rewritten override stayed within its patched major with no regression.

Test plan

  • pnpm install --frozen-lockfile — clean
  • pnpm verify (biome + build + typecheck + coverage + depcheck + size) — all green
  • pnpm audit before/after compared — no increase

cross-spawn, lodash, tmp, and the minimatch/brace-expansion overrides for
pre-9.0.7 minimatch and pre-1.1.13 brace-expansion had unbounded (or
too-loosely bounded) upper ranges, letting a vulnerability fix silently
carry a package across one or more majors with nothing to flag it. Bound
each to the major it patches, matching the pattern already used for the
other overrides in this file (and for cyberuni/iso-error).

The only resolution this changes is minimatch@3.1.5's brace-expansion,
which drops from 5.0.7 (an unrelated, still-unpatched major pulled in
only by the old unbounded target) to 1.1.18, inside the major the
override was meant to patch. cross-spawn, lodash, tmp, and minimatch's
9.x override were already no-ops in the resolved tree, so bounding them
changes nothing today but stops a future silent jump.

brace-expansion@5.0.7 still appears in the lockfile via minimatch@10.2.5
(glob/typedoc's own direct dependency, unrelated to any override) and
pnpm audit still reports 2 high vulnerabilities from that path alone —
unchanged from before this commit and out of scope here.
@changeset-bot

changeset-bot Bot commented Sep 2, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 808e0b8

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@unional
unional added this pull request to the merge queue Sep 2, 2026
Merged via the queue into main with commit cb99ebb Sep 2, 2026
5 checks passed
@unional
unional deleted the fix/bound-overrides-to-major branch September 2, 2026 00:09
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