Safeguard
Security Guides•

How fresh is the vulnerability data in a DIY scanner stack?

Self-run scanners are just as current as their data feeds. See where Trivy, Dependency-Check and Dependabot get data, and how to check freshness yourself.

Safeguard Security Team
3 min read

Each open source scanner is just as current as the database it last downloaded, and each updates differently. Check when your scanner last refreshed its data, and alert when it is stale. A clean result from an old database is not a clean bill of health.

Three examples of how data arrives

Trivy. Its vulnerability database is fetched automatically as needed, by default from a public registry mirror with a fallback. The documentation lists options to use alternative registries, skip the update, or download the database just, which are the controls you use in air gapped or cached setups.

OWASP Dependency-Check. It uses the NVD API. The README recommends an API key and warns that updates are extremely slow without one. A version upgrade can trigger a full data download on the next run.

Dependabot. Alerts follow the GitHub Advisory Database, and just reviewed advisories raise alerts. GitHub's documentation notes that new vulnerabilities can take time to appear and trigger alerts.

What can go wrong

  • A cached database that is never refreshed in CI.
  • A rate limit that makes the update step fail while the scan step still runs on old data.
  • Air gapped mirrors that nobody updates.
  • Advisory records that exist upstream but not yet in the source your tool reads.

How to check freshness

  1. Log the database timestamp or version in every scan output.
  2. Fail or warn when it is older than your threshold, such as a few days.
  3. Run a known vulnerable test project weekly and confirm it is flagged.
  4. Compare two scanners on the same project once a quarter and investigate differences.

Pair data with exploit signals

Freshness is half the job. CISA's Known Exploited Vulnerabilities catalog is available as JSON and CSV feeds, and FIRST publishes EPSS scores daily. Adding both to a script stack is possible, and it is another feed to keep alive.

Safeguard covers this ground with SBOM and dependency scanning, reachability analysis, policies and gates, and compliance evidence automation. Autonomous fix PRs are off by default, with every category set to Manual. You can try a free scan at gold.safeguard.sh/scan.

A simple freshness dashboard

You do not need a full tool. Write each scan's finish time and database version to a small table, one row per repository. A query that lists repositories whose last successful scan is older than your threshold becomes your freshness report. Send it weekly to the scanner owner. If a repository is missing from the table entirely, that is a coverage gap rather than a freshness gap, and it deserves its own line in the report.

Try it yourself

Click through it at your own pace, or open it full screen. Watch how a new advisory reaches an existing inventory without a rescan, and compare that with a scheduled job.

Quick check

How often should a scanner database update?

At least daily for active projects, and your pipeline should record the database version in every result.

Can a scanner be accurate with an old database?

It can just report what it knew at the last update, so stale data hides new issues.

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.