Safeguard
Security Guides•

Can you get reachability analysis from free tools?

Free dependency scanners list known vulnerabilities but rarely say whether your code calls the affected function. What to do by hand and when to buy.

Safeguard Security Team
3 min read

Most free dependency scanners match package versions to known vulnerabilities and stop there. They tell you a vulnerable package is present, not whether your code calls the affected function. You can answer that by hand for a few findings, but it does not scale.

Presence versus reachability

A scanner like OSV-Scanner matches your dependency list against the OSV database. That is a statement about what is in your build. Reachability is a separate question about whether execution can get to the vulnerable code from your application. A package can be present and never called.

The manual method

For one high severity finding:

  1. Read the advisory to find the affected function or feature.
  2. Search your code, and your dependencies' code, for calls to it.
  3. Check configuration. Many issues need a particular option enabled.
  4. Record the outcome as an exploitability statement. VEX exists for this, and CycloneDX describes it as conveying whether a vulnerable component can actually be exploited in the product where it is used.
  5. Revisit when the code changes.

Why it does not scale

Transitive dependencies make the search deep. Dynamic languages hide call paths. Each decision goes stale when code changes. At fifty findings a week, the manual route consumes the time it was meant to save.

What to do with limited time

SituationApproach
Few findingsAnalyse by hand and record VEX statements
Many findings, small teamPrioritise by known exploitation (KEV) and EPSS first
Many findings, audit pressureEvaluate tooling that computes reachability

CISA's catalog of known exploited vulnerabilities and FIRST's daily EPSS scores are free signals that sit alongside reachability, not instead of it.

An honest caveat

Reachability results can be wrong in both directions, especially with reflection and dynamic loading. Treat unreachable as lower priority, not as never.

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.

Record what you learn

When you investigate a finding by hand, write the conclusion where the next person will find it: the finding, the reasoning, the date and the code version. A short note beats redoing the work next quarter. If the same package keeps appearing, the notes show whether the pattern is real or whether your analysis keeps coming out the same way.

Try it yourself

Click through it at your own pace, or open it full screen. Compare the list before and after reachability, and note which findings drop out and why.

Quick check

Is a vulnerable package always a vulnerable application?

No. The vulnerable code may never be called, but confirm before you deprioritise it.

What free signals help prioritise?

Known exploited status from CISA KEV and EPSS scores from FIRST, both published openly.

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.