Skip to content

Pin transitive deps that lockfile refresh cannot reach - #303

Open
dunningdan wants to merge 1 commit into
mainfrom
transitive-cve-resolutions
Open

Pin transitive deps that lockfile refresh cannot reach#303
dunningdan wants to merge 1 commit into
mainfrom
transitive-cve-resolutions

Conversation

@dunningdan

Copy link
Copy Markdown
Member

Follow-up to #301 / #302. Clears 9 of the 11 currently open Dependabot alerts.

Why these need pinning

#302's lockfile refresh took the repo from 51 alerts to 11. The survivors aren't stragglers that a later refresh will catch — re-resolution provably cannot reach them, because their parents either pin an exact version or cap below the patched release:

Package What the parent asks for Refresh can fix? Pinned to
minimatch 9.0.3 — exact pin ❌ never 9.0.9
yaml 2.8.1 — exact pin ❌ never 2.9.0
serialize-javascript ^6.0.0 ❌ major bump 7.1.1
uuid ^8.3.2 ❌ major bump 11.1.1
qs ~6.15.1 ❌ tilde excludes 6.16.0 6.16.0

resolutions is the only lever for this class, following the got entry already in package.json.

The qs one is worth a look

Alerts #197/#198 were raised three minutes after #302 merged — GitHub rescanned the freshly refreshed lockfile against an advisory published Sep 2. ~6.15.1 means >=6.15.1 <6.16.0, so 6.16.0 is out of range and no future lockFileMaintenance pass would have fixed it either. Good illustration of why the refresh and the pins are complementary rather than redundant.

Verification

Node 24.20.0:

  • yarn build passes, 59 documents ✅
  • Dev server returns HTTP 200

The dev-server check matters here: uuid 8 → 11 crosses three majors and is consumed by sockjs, which only runs under yarn start. A production build would not have exercised it.

Remaining after this

#186 / #187 image-size — no patched version published upstream, so no code change can close these. Reached via @docusaurus/mdx-loader@3.10.2 at build time only; DoS on a malformed .icns, all images are committed and PR-reviewed, so there is no untrusted input path. For risk acceptance, not remediation.

Also in here

One-line refresh of the lockFileMaintenance description — it still instructed the reader to restore a weekly schedule, which is no longer the intent. No behavior change; schedule stays at any time, so transitive advisories get picked up as they land rather than waiting for Monday. A pass with no drift produces no PR.

🤖 Generated with Claude Code

#302 cleared 42 of 51 Dependabot alerts by refreshing yarn.lock, but 9
survive because re-resolution provably cannot reach them - their parents
either pin an exact version or cap below the patched release:

  minimatch             parent pins 9.0.3 exactly      -> 9.0.9
  yaml                  parent pins 2.8.1 exactly      -> 2.9.0
  serialize-javascript  parent caps at ^6.0.0          -> 7.1.1
  uuid                  parent caps at ^8.3.2          -> 11.1.1
  qs                    parent caps at ~6.15.1         -> 6.16.0

yarn resolutions are the only lever here, following the existing `got`
entry. This clears 9 of the 11 currently open alerts.

qs is the newest of these: GHSA for it was published Sep 2 and GitHub
raised alerts #197/#198 three minutes after #302 merged, against the
freshly refreshed lockfile. `~6.15.1` excludes 6.16.0, so no future
lockFileMaintenance pass would have fixed it either.

Remaining open after this: #186/#187 image-size, which has no patched
version published upstream. Reached via @docusaurus/mdx-loader at build
time only; tracked for risk acceptance rather than code change.

Verified on Node 24.20.0: yarn build passes (59 documents) and the dev
server serves HTTP 200, which exercises sockjs -> uuid@11, the one bump
here that crosses major versions and that a production build would not
otherwise cover.

Also refreshes the lockFileMaintenance description - it still told the
reader to restore a weekly schedule, which is no longer the intent. No
behavior change; schedule stays "at any time".

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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