Safeguard
Open Source Security

Why Snyk's vulnerability database often reports issues be...

NVD's CVE enrichment pipeline has a well-documented backlog since 2024. Here's the mechanical reason Snyk's database often shows vulnerabilities weeks earlier.

Vikram Iyer
Security Researcher
7 min read

When a maintainer pushes a silent fix to a GitHub repository, patches a dependency, or discloses a flaw through a bug bounty program, that information doesn't reach every security database at the same time. A vulnerability can sit in the CVE Program's "Reserved" state for weeks, appear on a package registry's advisory feed the same day it's fixed, and still not show up in the National Vulnerability Database (NVD) with a CVSS score for a month or more. This isn't a conspiracy or a data quality failure — it's a structural difference in how these systems are built. NVD is a single federal enrichment pipeline with a well-documented backlog. Snyk's vulnerability database is a multi-source aggregation system with its own research team watching upstream activity directly. Understanding the mechanics of both explains why security teams that rely solely on NVD-based scanning are often working from data that is already out of date.

Why does a CVE ID existing not mean the vulnerability is usable data yet?

Because "Reserved," "Published," and "Analyzed" are three different states in the CVE lifecycle, and only the last one carries the CVSS score, CPE match strings, and CWE classification that most scanners key off of. A CVE Numbering Authority (CNA) — which can be MITRE, GitHub, Red Hat, npm, or one of the roughly 400+ other CNAs — reserves an ID, then publishes basic details (description, references, sometimes a CNA-supplied CVSS score) to the CVE List at cve.org. NVD ingests that published record and performs its own enrichment pass: assigning or validating CPE identifiers, computing an NVD-specific CVSS score, and tagging CWE weaknesses. A CVE can be publicly visible on cve.org — with a working advisory link and a patched version number — while its NVD entry still reads "Awaiting Analysis" with no severity score attached. Tools that only trust NVD-analyzed records treat that vulnerability as effectively invisible until enrichment finishes.

Why did NVD's backlog become a widely reported problem in 2024?

Because NIST publicly announced a slowdown in CVE enrichment starting in February 2024, and the backlog it created never fully cleared. NIST attributed the slowdown to "an increase in software and, therefore, vulnerabilities" combined with "a change in interagency support," and for several months in early 2024 the rate of newly analyzed CVEs dropped sharply compared to the rate of newly published ones. Independent trackers that monitor NVD's public API (Anchore, VulnCheck, and others) documented tens of thousands of CVEs sitting in "Awaiting Analysis" status through 2024, with a meaningful share of newly published CVEs still lacking a CVSS score months after disclosure. NIST has since brought in contractor support and reduced the gap, but the episode illustrates a structural reality: NVD is a single centralized government pipeline, and when its throughput drops, every downstream tool that depends exclusively on "NVD-analyzed" data inherits the delay.

How does Snyk's vulnerability database source information differently from NVD?

Because Snyk combines NVD and CVE feeds with its own dedicated security research team and a set of upstream monitoring sources that don't require a CVE to exist first. Per Snyk's own published documentation on its Intel Vulnerability Database, the company curates entries from multiple public sources — including NVD, GitHub Security Advisories (GHSA), npm/RubyGems/PyPI/Maven advisory feeds, language-specific databases like RustSec, and vendor security bulletins — and layers on manual research by its in-house team, which reviews GitHub issues, commit histories, and changelogs for open source projects to catch fixes that were shipped without a formal advisory. Snyk also runs a public vulnerability disclosure process through which external researchers report issues directly to Snyk, which can then publish an entry before any CNA has even reserved a CVE ID for it. The result is a database built from many independently updating feeds rather than one funnel that all data has to pass through.

Why do package-ecosystem advisories often reach a tool like Snyk before they reach NVD?

Because GitHub Security Advisories and registry-native advisory systems are designed to publish the moment a maintainer confirms a fix, with no separate government enrichment step in between. When a maintainer fixes a vulnerability in an npm or PyPI package, GitHub's advisory workflow lets them draft and publish a GHSA record — complete with affected version ranges and a CVSS score — as part of the same release process, often the same day the patch ships. That GHSA record is frequently the origin point for a CVE, not the destination: GitHub itself acts as a CNA and can request a CVE ID as part of publishing the advisory, but the advisory content is live on GitHub immediately, while the corresponding NVD entry still has to go through ingestion and enrichment. Snyk's ingestion of GHSA and registry feeds means a fix disclosed through that path can appear in Snyk's database as soon as the advisory is published, while the same vulnerability's NVD record may still be sitting unenriched.

Does appearing earlier automatically mean the data is more accurate?

Not necessarily, and this is the trade-off worth understanding rather than ignoring. Earlier disclosure sources are, by design, closer to the original report — which means severity scores can shift as more is learned, affected version ranges get corrected after initial publication, and a small number of entries get retracted or downgraded entirely. NVD's slower, centralized enrichment process exists partly because it aims for a single canonical CVSS score and CPE mapping across the entire federal ecosystem, which has value for consistency even if it arrives later. Multi-source databases like Snyk's mitigate the accuracy trade-off with manual review from security researchers before publication, but any system that prioritizes speed will occasionally need to revise an entry. Security teams should treat "earlier" as a meaningful lead-time advantage for triage and patching, not as a guarantee that the very first published severity score is final.

What does this mean for how security teams should read scan results?

It means a scanner's effective coverage is only as current as its slowest data source, so relying on a single feed — NVD included — creates a predictable blind spot. If a scanning tool waits for NVD's "Analyzed" status before surfacing a vulnerability, it inherits every day of NVD's enrichment backlog on top of the time it takes a CNA to publish in the first place. That compounded delay is measured in weeks for a meaningful share of CVEs, based on NVD's own public status data through 2024. Teams evaluating scanning tools should ask specifically which upstream sources a database ingests, how often those feeds are polled, and whether human research supplements automated ingestion — because those three factors, not database size alone, determine how early a real-world exploit path actually shows up in your results.

How Safeguard Helps

Safeguard is built on the premise that no single vulnerability feed — NVD, a vendor database, or an ecosystem advisory stream — is sufficient on its own, because each has different update cadences and different blind spots. Safeguard's platform ingests multiple public vulnerability sources in parallel and correlates them against your actual software bill of materials (SBOM), so a dependency flagged through a GitHub Security Advisory, a registry-native advisory, or an NVD update is surfaced against your real dependency graph regardless of which feed reported it first or fastest. Rather than asking teams to pick a single source of truth, Safeguard treats timing gaps between databases as an expected condition of the ecosystem and reconciles them automatically, so remediation priorities are based on exploitability and exposure in your codebase rather than on which database happened to publish first.

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.