Skip to content

Adopt offline OSV lockfile scanning and remediate the qualified baseline #195

Description

@sarthakagrawal927

Why

The OSV-Scanner 2.5.1 trial found dependency risk that the existing root pnpm audit gate missed because it did not cover the independent docs-site lockfile or RustSec advisories.

Measured offline receipt on 2026-08-31:

  • Four inputs discovered: root and docs-site pnpm lockfiles, desktop Cargo.lock, and one Go module.
  • 35 packages affected by 51 known vulnerabilities across npm and crates.io.
  • Severity summary: 0 critical, 14 high, 18 medium, 2 low, 17 unknown.
  • 34 vulnerabilities have a listed fixed version.
  • Warm offline scan: 9.16 seconds using cached local databases.
  • Root pnpm-lock and the Go module had no reported packages; findings were in docs-site and desktop Rust locks.

Requirement

CodeVetter SHALL produce version-attributed SARIF and JSON lockfile evidence without uploading customer manifests. The maintained scan SHALL use a pre-seeded local OSV database and --offline --offline-vulnerabilities. Database refresh SHALL be a separate explicit network operation with provenance.

Design

  • Repository lane: checksum-pinned OSV binary, database refresh job, offline scan job, SARIF upload, and a reviewed baseline policy.
  • Product lane: optional collector only after database packaging, freshness, signing, and size are measured. CodeVetter remains verdict authority.
  • Do not suppress an advisory by package name alone. Classify reachability, target platform, dev/build/runtime scope, fixed-version availability, and accepted risk.
  • Treat the unmaintained GTK3/RustSec cluster separately from directly fixable npm/Rust lock updates.

Tasks

  • Capture the complete JSON/SARIF trial receipt and database freshness identity.
  • Triage all 51 vulnerabilities by scope, reachability, and fix availability.
  • Upgrade the 34 fixable findings in bounded lockfile groups with builds/tests after each group.
  • Decide and document the GTK3/unmaintained advisory policy.
  • Add a checksum-pinned repository workflow that refreshes separately and scans offline.
  • Add a local script that emits deterministic artifacts under artifacts/.
  • Validate no manifest or source content leaves the machine during the offline phase.
  • Re-run OSV, pnpm audit, Cargo checks, docs build, and release-relevant tests.

Evidence

Discovered during #193. Trial artifacts are local ignored scratch under artifacts/tooling/trials/osv/; no dependency changes were made by the trial.

Metadata

Metadata

Labels

openspecOpenSpec feature change

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions