Safeguard
Supply Chain•

How many advisories list a fixed version? Eight ecosystems compared

Between 4.6 percent (NuGet) and 25.0 percent (crates.io) of OSV advisories have no fixed version recorded. What a missing fix means and how to respond.

Safeguard Security Team
4 min read

Most open source advisories record a fixed version, but not all. In OSV exports from 19 October 2026, the share with no fixed version ranges from 4.6 percent for NuGet to 25.0 percent for crates.io, and 20.4 percent for npm. A missing field does not prove no patch exists, but it should change how you plan.

Method

We downloaded eight OSV ecosystem exports on 19 October 2026 and kept vulnerability advisories (IDs that do not start with MAL-), excluding withdrawn records. For each, we looked through every affected range for an event with a fixed value. If none had one, we counted the advisory as having no fixed version recorded.

Limits: an advisory that gives only a last affected version counts as no fix here, even if the maintainers shipped a patch under a new version. And a fix may exist in a form the record does not describe. So this is a measure of what the data says, not of what exists.

What the numbers say

EcosystemAdvisoriesNo fixed version recorded
NuGet1,1424.6%
RubyGems1,0916.1%
PyPI13,94111.6%
Go9,46412.2%
Packagist7,14712.9%
Maven7,07715.8%
npm7,44720.4%
crates.io2,79925.0%

The spread is wide. In NuGet and RubyGems almost every advisory names a fix. In npm one in five does not, and in crates.io one in four.

We did not investigate causes. Possible reasons include abandoned packages, advisories filed before a fix, and records that give a last affected version instead.

What to do when there is no fix

A finding with no fixed version needs a different playbook from one with a patch. Work through these in order.

  1. Check upstream. Read the project's repository and release notes for a fix that the advisory has not caught up with.
  2. Check reachability. Does your code actually call the vulnerable function? If not, the practical risk may be low, and you should record that decision and its date.
  3. Mitigate. Configuration changes, input validation, network restrictions or feature flags can close the path without a new version.
  4. Replace. If the package is abandoned, plan a swap and set a deadline.
  5. Accept explicitly. If none of the above works, record who accepted the risk, why, and when it will be reviewed.

Avoid leaving the finding open with no owner. An unowned finding with no fix is how a backlog quietly fills.

Safeguard's reachability analysis helps with step 2, and policies can hold a no-fix finding for review instead of failing a build for something nobody can patch.

Try it yourself

Open the demo and look at how a finding with an available fix is presented compared with one without.

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

Quick check

Does a missing fixed version mean the project is abandoned?

No. It can also mean the advisory predates the fix or records only a last affected version. Check upstream before concluding anything.

Should I fail builds on findings with no fix?

Usually not by default. Hold them for review with an owner and a date, and fail the build for findings you can fix.

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.