feat(gate): scan every lockfile with osv-scanner #622

Merged
hexajon merged 1 commit from issue-587-osv-scanner-leg into main 2026-09-24 16:03:54 +00:00
Owner

Summary

The gate's heavy block now runs osv-scanner scan source -r --no-call-analysis=all ., pinned at v2.6.0 in scripts/setup-dev.sh and the ci.yml install step. It covers go.mod and the npm harness lockfile, and it reports a vulnerable version whether or not the code reaches it. govulncheck stays as the reachability check. The v2 flag takes a value, so it is --no-call-analysis=all; the bare --no-call-analysis . form would read . as that value.

This mode already found 6 real vulnerable Go versions that govulncheck missed; #620 upgraded them. The seventh, GO-2026-5932, flags golang.org/x/crypto/openpgp, a package madtea never builds. x/crypto is in go.mod only because the update signature check's ProtonMail library uses other packages from it. osv-scanner.toml ignores that one advisory with its reason. TestNoXCryptoOpenPGPInBuild fails if madtea ever builds x/crypto/openpgp, and #621 tracks removing the exception. ADR 0044 records the scan mode and the rule that every exception gets a record.

Checks:

  • The local gate is green with the new leg.
  • The CI install step and the leg ran in the job's pinned image: exit 0, "No issues found".
  • The leg fails on the harness lockfile from before #581 (19 vulnerabilities) and without the ignore entry.
  • The import test fails with a probe import of x/crypto/openpgp.

The docs that list the gate's analyzers now name osv-scanner.

Closes #587

Closes #587

## Summary The gate's heavy block now runs `osv-scanner scan source -r --no-call-analysis=all .`, pinned at v2.6.0 in `scripts/setup-dev.sh` and the `ci.yml` install step. It covers `go.mod` and the npm harness lockfile, and it reports a vulnerable version whether or not the code reaches it. govulncheck stays as the reachability check. The v2 flag takes a value, so it is `--no-call-analysis=all`; the bare `--no-call-analysis .` form would read `.` as that value. This mode already found 6 real vulnerable Go versions that govulncheck missed; #620 upgraded them. The seventh, GO-2026-5932, flags `golang.org/x/crypto/openpgp`, a package madtea never builds. `x/crypto` is in `go.mod` only because the update signature check's ProtonMail library uses other packages from it. `osv-scanner.toml` ignores that one advisory with its reason. `TestNoXCryptoOpenPGPInBuild` fails if madtea ever builds `x/crypto/openpgp`, and #621 tracks removing the exception. ADR 0044 records the scan mode and the rule that every exception gets a record. Checks: - The local gate is green with the new leg. - The CI install step and the leg ran in the job's pinned image: exit 0, "No issues found". - The leg fails on the harness lockfile from before #581 (19 vulnerabilities) and without the ignore entry. - The import test fails with a probe import of `x/crypto/openpgp`. The docs that list the gate's analyzers now name osv-scanner. Closes #587 Closes #587
feat(gate): scan every lockfile with osv-scanner
Some checks failed
drift / govulncheck (pull_request) Has been skipped
ci / mcp-conformance (pull_request) Successful in 1m46s
drift / forgejo-smoke (pull_request) Has been skipped
drift / surface-diff (pull_request) Successful in 48s
ci / mcp-conformance (push) Successful in -2s
drift / govulncheck (push) Has been skipped
drift / surface-diff (push) Successful in -8s
drift / forgejo-smoke (push) Has been skipped
ci / gate (pull_request) Failing after 15m56s
ci / gate (push) Successful in 10m18s
1c9eea63ca
Closes #587
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sixfold-space/madtea!622
No description provided.