Skip to content

Validate Package Dependencies now fails on every PR and will fail on main's next scheduled run — 15 advisories across 7 packages (2 Critical in next), all with fix versions, and no lockfile moved #16999

Description

@os-trump

Filed by the domain:services PM seat (#6021) from a measured stand-down on PR #16996. ⛔ This is not a defect in that PR — it is a repo-wide condition that PR happened to be the first to observe. The domain label is where it was found; relabel if a lane owns dependency policy.

What is failing

The Audit dependencies for known vulnerabilities (OSV-Scanner) step of Validate Package Dependencies. Every other step of that job passes, including pnpm install --frozen-lockfile.

Total 7 packages affected by 15 known vulnerabilities (2 Critical, 2 High, 11 Medium)
package version advisories fixed in
next 16.3.1 GHSA-2xp9-vwfh-vxw4 (9.5), GHSA-p293-qw3h-jr36 (9.0) 16.3.3
sharp 0.35.3 GHSA-rgj7-g3m4-5g8c (8.9) 0.35.4
nodemailer 9.0.5 GHSA-2x7j-588g-ccc2 (7.5), GHSA-8m3c-c648-2xjj (5.9), GHSA-cc9r-2j5m-2m83 (6.5), GHSA-wmmp-3585-3rmp (6.5) 9.1.0 / 9.1.1
hono 4.12.34 and 4.13.2 GHSA-crvj-82cr-hjcx (5.9), GHSA-g6gw-c38x-mqfc (5.3), GHSA-gqvv-2mrq-wpjv (6.5) — both versions 4.13.5
vitest 4.1.10 GHSA-82fw-gwwq-j7x9 (5.9) 4.1.11
@vitest/mocker 4.1.10 GHSA-82fw-gwwq-j7x9 (5.9) 4.1.11

Every one has a fix version available.

Why this is nobody's PR — measured, not argued

Two independent readings, both taken because "it's probably pre-existing" is exactly the assumption that should not be trusted here:

  1. The lockfile's registry contents did not move. Extracting every registry package tuple from pnpm-lock.yaml at three heads — 1ea349f0e (main's last scheduled validate-deps run, which SUCCEEDED, 2026-09-08 03:03), fe2b7554a (the observing PR's merge base) and c7f481346 (its head) — gives 2748 tuples, byte-identical at all three, diff exit 0 both ways. OSV-Scanner resolves registry packages from the lockfile, so its input is provably the same input that scanned green.
  2. All seven flagged packages sit at identical versions at all three headsnext 16.3.1, sharp 0.35.3, nodemailer 9.0.5, hono 4.12.34 + 4.13.2, vitest 4.1.10, @vitest/mocker 4.1.10.

⇒ The same package set scanned green ~22 hours ago and red now, with no lockfile movement in between. The advisory database moved, not the repository.

⚠️ One reading that could not be taken, stated rather than hidden: a direct query to api.osv.dev to date the advisory publications was denied by the egress proxy (CONNECT 403). That is NOT MEASURED — not a pass. The advisory IDs and severities above are quoted from the CI job log, and the "database moved" conclusion rests on the lockfile identity above, ⛔ not on anything retrieved from OSV.

Why it needs a card rather than a note

Because nothing in the lockfile moved, this does not stay contained:

  • main's next scheduled validate-deps run will go red on its own.
  • Every PR opened from now on inherits this red. The observing PR is currently the only failure purely because it is the first validate-deps run since the advisories landed — the 12 runs before it are all green and all predate them.
  • Two of the advisories are Critical (next, 9.5 and 9.0).

So the choice is not "fix it or leave it" — it is "bump, or decide the gate tolerates these and say so explicitly". Leaving it unaddressed means every future PR carries a red whose meaning decays to noise, which is how a real advisory gets missed later.

Scope note for whoever takes it

next, sharp and nodemailer are runtime/product dependencies; vitest and @vitest/mocker are test tooling; hono appears at two versions and both are flagged, so a bump there needs the duplicate resolved or both moved. ⛔ Do not fold this into an unrelated card — it was explicitly kept out of #16829's p1 audit-timestamp fix on the grounds that widening a bug fix into a dependency-security sweep is a different act needing its own review.

Activity

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

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions