OSV-Scanner vs KeyDrift
Google-backed OSS SCA against the open OSV schema.
Vulnerability scanning from lockfiles against OSV database.
This page compares the two honestly: strengths credited specifically, differences traced to structure rather than quality, and a decision rule at the end. Verified August 2026.
What OSV-Scanner does well
Open-data-schema backing.,Lockfile breadth.,Google stewardship credibility.
- Manifests/locks/images.
- DB-matching engines.
- As-run.
The gap KeyDrift fills: the deployed bundle
Nothing above describes a defect — it describes a boundary. OSV-Scanner answers questions about source and infrastructure with real competence. The question KeyDrift answers is different and narrower: what credentials can a stranger retrieve from this deployment right now? Because bundlers substitute literals and agents write client-side calls after review, that question sometimes has an answer the repository never saw.
- Fetched-and-diffed scanning of live URLs, including chunks reachable only through route manifests.
- Streamed server data (
self.__next_f.push,window.__NUXT__) read as carefully as chunk files. - Calibrated dispositions: Supabase anon keys, publishable keys and Firebase web keys recognised as public-by-design instead of reported as leaks.
- Drift transitions — created, regressed, resolved — so a reintroduced key alerts as a regression, not as news.
Feature-by-feature
- Surfaces scanned. Binary/go-install. versus KeyDrift: deployed web artifacts fetched live, or pasted bundle source for anything behind a login.
- Detection approach. open-source-tooling purists. versus KeyDrift: 21 secret detectors across 13 providers with placeholder rejection, alphabet-normalised entropy, payload decoding and a confidence floor below which matches are dropped rather than caveated.
- Change over time. Same boundary sentence as npm audit — intentionally repeated because confusion persists: dependencies IN, artifacts OUT, different tools each. versus KeyDrift: scheduled scans diffed into created/regressed/resolved with alert routing to email, Slack, Discord and webhooks.
- Getting started. undefined versus KeyDrift: paste a URL at /scan — free, no account — or paste source for private surfaces.
Side-by-side
Every cell below states a specific capability. Where OSV-Scanner documents more detail than fits here, follow their docs; where KeyDrift claims something, it is verifiable in a two-minute free scan.
| Capability | OSV-Scanner | KeyDrift |
| --- | --- | --- |
| Primary surfaces | Binary/go-install. | Deployed web artifacts fetched live: HTML, all chunks (incl. route-manifest-only), streamed payloads |
| Build-time substitution (NEXT_PUBLIC_/VITE_) | Not a documented capability | Detected in served output — exactly where it lands |
| Hydration payloads (self.__next_f.push, window.__NUXT__) | Outside source-scan scope | Read as carefully as chunk files |
| Public-vs-secret calibration | Not applicable to scope | Dispositions built-in: anon/publishable/Firebase-web reported informational, sample keys rejected by name |
| Change over time | Same boundary sentence as npm audit — intentionally repeated because confusion persists: dependencies IN, artifacts OUT, different tools each. | Scheduled scans diffed into created/regressed/resolved; regression alerts name comebacks |
| Alert routing | Same boundary sentence as npm audit — intentionally repeated because confusion persists: dependencies IN, artifacts OUT, different tools each. | Email · Slack · Discord · raw webhooks with per-destination severity thresholds |
| Getting started | undefined | Paste any URL at keydrift.dev/scan — free, no account; paste-source mode for behind-login surfaces |
| Privacy of findings | Varies by vendor | Masks + salted fingerprints only; no column anywhere can hold a live secret |
_Cells describing OSV-Scanner summarize their public documentation as of the verified date above._
Where each one wins
- OSV-Scanner wins when undefined
- KeyDrift wins when the question is “what credentials can strangers retrieve from this deployment right now?” — live fetching, calibrated dispositions, and regression alerting without agents installed.
Switching from OSV-Scanner
Teams arriving from OSV-Scanner usually keep their existing setup and add one job: point KeyDrift at production, staging, and preview URLs. First week looks like this — day one, run the free scan on every deployment and triage findings by severity; day two, fix or schedule fixes using the linked guides; day three onward, monitoring watches for regressions while OSV-Scanner continues doing what it does best.
undefined
Decision rule
- Keeping OSV-Scanner for its documented strengths makes sense — it earns them.
- Add KeyDrift when deployment truth matters: post-build artifacts, preview URLs, and reintroduction watch on a schedule.
_Compared against OSV-Scanner documentation and pricing as verified August 2026. Capabilities change; check their site._ Google (OSS) and associated marks are trademarks of Google (OSS), referenced for identification and descriptive comparison.
Bottom line: the tools are complements wearing rivals' clothes. OSV-Scanner watches inputs; KeyDrift watches outputs. Teams that verify both stop being surprised by either.
How teams actually run OSV-Scanner and KeyDrift together
In practice the pairing is boring in the best way: OSV-Scanner stays authoritative for whatever it was built to do, KeyDrift runs on a schedule against every public deployment, and alerts route into the same channels your team already reads. Nothing is migrated; nothing is turned off. The only new habit is reading one more alert type — and that one arrives masked, classified, and linked to a fix guide.
What to verify on their site before deciding
- Their current scanned-surface list (Binary/go-install.) — confirm against your stack.
- Whether drift/change-detection over time is part of their product or a roadmap item.
- Free-tier shape: what you can prove about YOUR deployment before any purchase conversation.
Common questions
Is OSV-Scanner bad at security?
No — the page credits specific strengths above. The difference is which artifact gets inspected, not effort or care.
Pricing comparison?
Their list pricing lives on their site and changes; ours sits on the plans page with findings visible free at every tier. Numbers go stale; philosophy does not.
Run a free scan at keydrift.dev/scan — paste a URL or the bundle source itself, no account. Findings arrive masked, with the exact chunk they live in.