Skip to content

Commit c6f67d0

Browse files
committed
fix(deps): take the fix for the four OSV advisories blocking every manifest PR
`Validate Package Dependencies` (OSV-Scanner against pnpm-lock.yaml) exits 1 on four fixable advisories, so every PR touching any package.json is red: GHSA-6gmq-8vp8-gcm6 @xmldom/xmldom 0.8.13 -> 0.8.15 GHSA-6gmq-8vp8-gcm6 @xmldom/xmldom 0.9.11 -> 0.9.12 GHSA-4mjr-xmp4-gh2g qs 6.15.3 -> 6.16.0 GHSA-x5fp-wj9c-mxmx qs 6.15.3 -> 6.16.0 All four name a fixed version, so this is the take-the-fix path osv-scanner.toml's header describes, not the exemption path. That ledger keeps its zero entries and is untouched here, as is .github/workflows/validate-deps.yml. Both packages are transitive-only; nothing in the workspace declares either. Every dependent's declared range already admits its own fixed version (xml-encryption ^0.8.6, samlify ^0.8.11, xml-crypto ^0.8.10, better-auth/sso ^0.9.10, body-parser ^6.15.2, express ^6.14.0), so each entry is a dedupe onto the patched line rather than a forced upgrade past what a dependent supports - the dompurify / nanoid shape the overrides block already documents. @xmldom/xmldom needs two selectors, not one: both resolved lines are flagged and their fixed versions differ, and a single selector reaching the 0.9 fix would drag the three 0.8 consumers across a 0.x minor. Bounds sit at the compatibility boundary rather than at the fixed version, so a future lift moves only the target. The lockfile was regenerated by `pnpm install --lockfile-only` and never edited by hand; `pnpm install --frozen-lockfile` is green. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WLJQhde67SeTccsmnBVarV
1 parent 4d0d944 commit c6f67d0

2 files changed

Lines changed: 51 additions & 17 deletions

File tree

pnpm-lock.yaml

Lines changed: 18 additions & 17 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pnpm-workspace.yaml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -295,3 +295,36 @@ overrides:
295295
# `<3.3.17`, which would self-invalidate the day 3.3.17 is itself flagged
296296
# (the undici 7.28.0 / brace-expansion 5.0.8 specimens, #4961 / #5032).
297297
'nanoid@<4.0.0': '^3.3.17'
298+
# OSV 2026-09-02 (#14639) — four advisories, every one naming a fixed
299+
# version, so this is the "take the fix" path osv-scanner.toml's own header
300+
# describes and NOT an exemption; that ledger holds zero entries and the
301+
# triage ruling is that it stays at zero.
302+
# @xmldom/xmldom GHSA-6gmq-8vp8-gcm6 (6.3 medium) — flagged on BOTH
303+
# resolved lines: 0.8.13 (fixed 0.8.15) and 0.9.11 (fixed 0.9.12). That
304+
# is why this needs TWO selectors and not one. A single lower-bounded
305+
# selector at the fixed 0.9.12 would drag the 0.8 consumers across a 0.x
306+
# MINOR — the compatibility boundary for a 0.x package — past every
307+
# range they declare. Measured dependents and their declared ranges:
308+
# 0.8.13 <- @authenio/xml-encryption@2.0.2 (^0.8.6),
309+
# samlify@2.13.1 (^0.8.11), xml-crypto@6.1.2 (^0.8.10)
310+
# 0.9.11 <- @better-auth/sso@1.7.2 (^0.9.10)
311+
# Each of those ranges already admits its own fixed version, so both
312+
# entries are a dedupe onto the patched line rather than a forced
313+
# upgrade past what a dependent supports — the dompurify / nanoid shape
314+
# above, and the reason no dependent manifest has to move in lockstep.
315+
# qs GHSA-4mjr-xmp4-gh2g and GHSA-x5fp-wj9c-mxmx (6.3 medium each) — one
316+
# resolved line, 6.15.3, fixed 6.16.0. Dependents body-parser@2.3.0
317+
# (^6.15.2) and express@5.2.1 (^6.14.0) both admit it.
318+
# Transitive-only, like dompurify and nanoid above: no workspace manifest
319+
# declares either package, so there is no publishable declared range to
320+
# keep in lockstep and check-override-consistency.mjs lists both as
321+
# overrides it cannot cross-check against a declared range. That is
322+
# correct for this shape, and it is a report, never a failure.
323+
# Bounds sit at the compatibility boundary — 0.9.0 and 0.10.0 for the two
324+
# 0.x lines, 7.0.0 for qs — per this block's header rule, never at the
325+
# fixed version itself, which would self-invalidate the day that version
326+
# is the one flagged (the undici 7.28.0 / brace-expansion 5.0.8
327+
# specimens, #4961 / #5032).
328+
'@xmldom/xmldom@>=0.8.0 <0.9.0': '^0.8.15'
329+
'@xmldom/xmldom@>=0.9.0 <0.10.0': '^0.9.12'
330+
'qs@>=6.0.0 <7.0.0': '^6.16.0'

0 commit comments

Comments
 (0)