Safeguard
Security Guides•

Where does vulnerability data delay come from? Four stages

A vulnerability can take time to reach your scanner. See the four stages, from the CVE list to NVD enrichment to export, and which figures are documented.

Safeguard Security Team
4 min read

Delay comes from four places: the CVE record itself, enrichment by NVD, aggregation into ecosystem databases such as OSV and GitHub, and your own scanner's update cycle. The CVE list updates about every 7 minutes, but NVD now enriches by risk, so the slowest stage is often the one you cannot see.

Stage 1: the CVE record

The CVE Program's cvelistV5 repository says it updates about every 7 minutes from the official CVE Services API. A record only exists once a CNA publishes it, and the content depends on the CNA. Nothing downstream can be faster than this, and it can be incomplete.

Stage 2: enrichment

NVD adds scores, weakness types and product match data. Per NIST's 15 April 2026 announcement, it now prioritizes CVEs in the CISA KEV catalog, federal-use software and critical software, with a goal of enriching KEV CVEs within one business day. Others are labelled "Lowest Priority" or "Not Scheduled". If your scanner waits for NVD product matches, it can wait a long time. See what the NVD labels mean.

Stage 3: aggregation

OSV says its data is continuously exported to a storage bucket, with a file listing recent changes sorted newest first, but gives no fixed interval. Sources feed OSV at their own pace. GitHub's advisory database has reviewed advisories, which are checked, and unreviewed ones published automatically from the NVD feed without checking. Dependabot alerts are generated for reviewed advisories only, per GitHub.

Stage 4: your tool

Your scanner has its own update schedule, its own cache and its own rescan trigger. A tool that pulls its database weekly adds up to a week. A tool that scans only on commit will not tell you a new advisory landed against code you already shipped.

The summary table

StageDocumented figureWhat can go wrong
CVE listAbout 7 minutes (repository statement)Record has little detail
NVD enrichmentKEV goal one business day; others not scheduledNo score or product match
OSV exportContinuous, no fixed interval statedSource lags
GitHub reviewReviewed vs unreviewed, no timing statedUnreviewed has no alert
Your scannerWhatever you configuredWeekly pull, commit-only scans

Only the first two rows give a number, and they are the publishers' own statements. For the rest, measure it yourself with a freshness test or how to measure advisory to alert time.

What to do about it

  1. Use more than one source for the same package.
  2. Rescan stored SBOMs when new advisories land, not only on commits.
  3. Treat KEV as a separate trigger, since it is explicit evidence of exploitation.
  4. Measure your own advisory to alert time monthly.
  5. Ask vendors to state each stage in their own pipeline.

The related post on real-time monitoring, myth versus fact covers what "real time" should mean in a contract.

Where Safeguard fits

Safeguard offers zero-day discovery, continuous monitoring and SBOM and dependency scanning. The demo below shows monitoring after a build. For your own project, use the free scan at gold.safeguard.sh/scan.

Try it yourself

Click through it at your own pace, or open it full screen.

Watch what triggers a re-check after the original scan.

Quick check

Which stage is usually slowest?

Often NVD enrichment for lower priority CVEs, since NVD now enriches by risk, though you should measure your own pipeline.

Do unreviewed GitHub advisories create Dependabot alerts?

No. GitHub says alerts are generated for reviewed advisories only.

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.