Safeguard
Security Guides•

What is the difference between a vulnerability database and a scanner?

A database stores advisories. A scanner reads your software and matches it to them. Learn why you need both and where open source tools split the work.

Safeguard Security Team
3 min read

A vulnerability database stores records about known flaws, such as affected packages, versions and fixes. A scanner reads your code, lockfiles or images, builds a list of what you use and checks that list against one or more databases. The database is the knowledge. The scanner is the matcher.

Definitions

Vulnerability database. A collection of advisories. Each record typically names a flaw, the affected software, the version range and a fixed version when one exists. Examples of format and curation are documented by the GitHub Advisory Database and OSV.dev.

Scanner. A program that finds what software you have and compares it against advisory data. It may also check licenses, configuration or running behaviour, depending on type.

Aggregator. A service that combines several databases into one stream. OSV.dev describes itself this way, listing many source databases in a shared format and offering bulk downloads.

How they work together

  1. The scanner reads your manifests and lockfiles and lists packages and versions.
  2. It fetches advisory data, either live or from a downloaded copy.
  3. It matches each package and version against affected ranges.
  4. It reports matches, often with severity and fix information.

If you change either half, results change. A better matcher with old data misses things. Fresh data with a weak matcher raises false alarms.

Why this matters when you evaluate open source tools

QuestionAbout the databaseAbout the scanner
Is a new advisory present?YesNo
Is the version range correct?YesPartly
Did it find my transitive dependency?NoYes
Does it parse my lockfile format?NoYes
Does it explain how to fix?SometimesOften
Can it say the code path is reachable?NoSome tools

When two scanners disagree, work out which half differs. Same data and different results points to matching. Different data and the same matcher points to coverage. Our post on why two scanners report different counts walks through it.

The data feed has its own maintenance needs

A project can look healthy while its data lags, or the other way round. Check the code and the feed as two separate things: when was the last release, and how fresh are the records it uses? You can test whether a scanner's advisory data is fresh with a known recent advisory.

What neither one tells you

Neither a database nor a scanner tells you whether a flaw matters in your system. A match says a vulnerable version is present. Whether the vulnerable function is called, exposed and exploitable is a further question. That is where reachability analysis comes in, and Safeguard's platform provides it alongside SBOM and dependency scanning. You can try the free scan at https://gold.safeguard.sh/scan.

Quick check

Can I use a vulnerability database without a scanner?

Yes, for lookups by package and version, but you must produce the inventory yourself. A scanner automates that.

Is the NVD a scanner?

No. It is a database of records. Scanners read it, along with other sources.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.