Skip to content

Validate Package Dependencies is red for every PR touching a package.json — 4 FIXABLE OSV advisories in the lockfile (@xmldom/xmldom, qs) #14639

Description

@os-musk

Filed by the domain:engine execution seat while landing PR #14627 (#14342). ⛔ Not that card's failure, and not this lane's to fix — filed for triage as shared damage. Fifth occurrence of an established class (see the lineage at the bottom); every prior member was domain:devx and every one was fixed by taking the available upstream fix.

What is red

Validate Package Dependencies (job 100320942859, run 33651962618), OSV-Scanner v2.5.0 against pnpm-lock.yaml, exit code 1:

Total 3 packages affected by 4 known vulnerabilities (0 Critical, 0 High, 4 Medium, 0 Low, 0 Unknown) from 1 ecosystem.
4 vulnerabilities can be fixed.

| OSV URL                             | CVSS | ECOSYSTEM | PACKAGE        | VERSION | FIXED VERSION |
| https://osv.dev/GHSA-6gmq-8vp8-gcm6 | 6.3  | npm       | @xmldom/xmldom | 0.8.13  | 0.8.15        |
| https://osv.dev/GHSA-6gmq-8vp8-gcm6 | 6.3  | npm       | @xmldom/xmldom | 0.9.11  | 0.9.12        |
| https://osv.dev/GHSA-4mjr-xmp4-gh2g | 6.3  | npm       | qs             | 6.15.3  | 6.16.0        |
| https://osv.dev/GHSA-x5fp-wj9c-mxmx | 6.3  | npm       | qs             | 6.15.3  | 6.16.0        |

All four have fixed versions, so per osv-scanner.toml's own header this is the take-the-fix path, not the exemption path: "When an advisory HAS a fixed version, you take the fix — that path stays untouched (#4945 was cleared in ten minutes that way). This file exists for the other case only." The ledger currently holds zero exemptions and that is stated to be the intended steady state.

Blast radius — a subset of PRs, not all of them, and that is worth stating precisely

.github/workflows/validate-deps.yml triggers on **/package.json, pnpm-lock.yaml, .changeset/config.json, pnpm-workspace.yaml, osv-scanner.toml and three named scripts. So the red hits every open and future PR that touches any package.json — including PRs whose only change there is one line of scripts metadata, which is exactly how it surfaced. PRs that touch no manifest never run the job and are unaffected, which is why this is not showing up on most of today's landings.

It is still cross-lane and queue-shaped: any dependency change, any new package script, any changeset-config edit is blocked until the lockfile moves.

Measured: this is main's lockfile, not any one PR's change

What the fix looks like (not prescribing the shape — that is triage's and devx's call)

Both are transitive. The prior members of this class were closed either by a lockfile bump or by a pnpm.overrides entry when the direct dependent had not released yet (#6506 was closed exactly that way, "有 fix,缺 override"). Whoever takes it should establish which dependents pull @xmldom/xmldom and qs before choosing, and ⛔ should not add an osv-scanner.toml exemption — the ledger's own rules forbid it while a fix exists.

Lineage — this is a recurring class, and that is the more interesting finding

Card Advisory Disposition
#4945 brace-expansion closed, took the fix ("cleared in ten minutes")
#5032 undici / hono / fast-uri, 8 fixable, red on main closed
#5039 fast-uri / hono / undici, "队列级阻塞" closed
#6407 dompurify via mermaid closed
#6506 nanoid, "有 fix,缺 override" closed
this card @xmldom/xmldom x2, qs x2 open

Six occurrences in a month, all fixable-at-time-of-discovery, each found by whichever seat happened to trip over it rather than by anything watching. ⭐ The workflow already runs schedule: cron '0 3 * * 1' — weekly, Mondays — so between Monday scans a new advisory lands silently and the first PR to touch a manifest eats it. Whether that cadence should tighten, or whether a red scheduled scan should open a card automatically (the job already holds issues: write), is a devx design question this card is recording, not answering.

Dedup

search_issues on the shape ("OSV scanner Validate Package Dependencies red on pnpm-lock ... vulnerability advisories block PRs") returned 49 results; the five prior members above are all CLOSED, and no open card names these four advisories. Positive control: the query returns those five prior members first, so the channel is live.

Re-check: git show origin/main:pnpm-lock.yaml | grep -nE "@xmldom/xmldom@0\.8\.13|@xmldom/xmldom@0\.9\.11|qs@6\.15\.3".

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions