Safeguard
Security Guides•

Does a package with zero CVEs mean it is safe to use?

Zero CVEs means no published flaw, not a clean bill of health. Why the count misleads in both directions, and what to check alongside it.

Safeguard Security Team
3 min read

No. Zero CVEs means no vulnerability has been published for the package, not that none exists. The count reflects how much attention a project has received and how its maintainers report flaws. Use it as one input next to maintenance, review practice and provenance signals.

Myth versus fact

MythFact
No CVEs means no flawsIt means no published flaws. Unreviewed code can hold bugs nobody has reported
Many CVEs means a bad projectA busy, widely used project often has many reports because people look hard and the maintainers disclose
One clean scan means safeA scan checks known issues at one moment. New advisories land later
CVE count ranks packagesCounts are not normalized for size, age or audience

Why a zero can be a weak signal

A CVE is created when someone reports a flaw and it goes through assignment and publication. That depends on people looking and on maintainers choosing to disclose. A small package that nobody audits can stay at zero for years. A new package starts at zero by definition.

The OpenSSF Concise Guide lists vulnerability status as one of many checks, and puts it beside things like security response, vulnerability reporting instructions and security audits. Its security response rule asks whether the project fixes bugs, especially security bugs, in a timely manner. A project with a documented reporting path and a record of fixes is arguably more trustworthy than a silent one with an empty list.

Why a high count can be a weak signal too

Counting advisories rewards projects that hide problems and punishes projects that report them. The better question is what happened after each report: how long the fix took, whether older release lines got patches, and whether the advisory text was clear. The deps.dev API can list advisories that affect a given package version, which is a starting point for that review.

What to check next to the count

  1. Is the project maintained? The Scorecard Maintained check looks for commits across the previous 90 days and gives the lowest score to archived projects.
  2. Is there a way to report a flaw? The Security-Policy check looks for a SECURITY.md file with contact details.
  3. Are changes reviewed? The Code-Review check looks at roughly the last 30 commits for approvals.
  4. Is this the package you meant? Look at the creation date, popularity and similarly named packages.
  5. Is the version you are about to install affected by anything today? Rescan on a schedule, because the answer changes.

Try it yourself

Click through it at your own pace, or open it full screen. Notice that findings arrive over time, which is why a single clean result does not stay clean.

Where Safeguard fits

Safeguard provides SBOM and dependency scanning with reachability analysis, so you can see which known issues matter in your code, and policies and gates to act on them. A free scan is at gold.safeguard.sh/scan.

Quick check

Should I avoid a package with many CVEs?

Not automatically. Look at how quickly fixes shipped and whether the affected versions are ones you use.

How often should I recheck?

On every build and on a schedule, because new advisories are published against versions you already shipped.

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.