Safeguard
Security Guides•

Does reachability analysis belong in an ASPM evaluation?

Yes, if your backlog is full of dependency findings. Reachability shows whether your code calls the vulnerable part. How to test it fairly in a trial.

Safeguard Security Team
6 min read

Yes. If most of your backlog is vulnerable dependencies, reachability analysis belongs in an ASPM evaluation, because it shows whether your code can actually call the vulnerable function. It narrows the list, but you should test it on your own code and treat its output as evidence, not proof.

What reachability analysis is

A dependency can contain a flaw in a function your application never calls. Reachability analysis examines how your code uses a library and reports whether a path exists from your code to the vulnerable part. If no path exists, the finding is real but less urgent.

It is a form of context, like exposure or exploitation data, added on top of a severity score.

What it can and cannot tell you

QuestionReachability helps?
Does my code call the vulnerable function?Yes
Is the service reachable from the internet?No, that is exposure
Is exploitation happening in the wild?No, use sources like the CISA KEV catalog
Could my usage change next release?Not until it is rescanned
Does dynamic loading hide a call?Sometimes missed, so check the limits

Static analysis has known limits with reflection, dynamic loading and generated code. Ask any vendor which languages are supported and what happens in those cases.

How to test it fairly

  1. Pick a repository with a long list of dependency findings.
  2. Choose ten findings marked unreachable. Ask a developer to confirm by reading the code.
  3. Choose ten marked reachable. Confirm that a real call path exists.
  4. Note any disagreement and ask the vendor to explain it.
  5. Check that a finding marked unreachable stays visible, with a reason, rather than vanishing.

The second part of step five is a trust issue. You want to be able to reverse a decision when code changes.

Pairing it with other signals

Reachability is strongest alongside other signals. A reachable flaw in a component that appears in the CISA KEV catalog is a strong candidate for immediate work. FIRST's EPSS adds a probability of exploitation in the next 30 days. An unreachable flaw with a low probability can be scheduled with routine updates.

Recording the decision

When a team sets a finding aside because it is unreachable, record that, with the analysis date and the person who reviewed it. Revisit when the dependency or the code changes. Treat it as a time limited statement about the code as it was.

Questions for your evaluation

Which languages and package managers does reachability cover? Does it run on every scan or only on request? Can I see the call path? Can I override it? Does it handle transitive dependencies?

A worked example: one dependency finding

Suppose a service depends on a large utility library. An advisory affects a function that handles a rarely used file format. The scanner flags the library as high severity.

QuestionAnswer in the example
Does the code import the library?Yes
Does the code call the affected function directly?No
Does any other library in the tree call it?Reachability analysis reports no call path
Is the service internet facing?Yes
Is the advisory in a known exploited list?No
DecisionSchedule with the next routine upgrade, record the reason and review date

The finding stays in the system. The analysis changed its priority, and the reason is recorded. If the code later starts handling that file format, a rescan should surface the change.

Step by step: designing the evaluation test

  1. Select two or three repositories with different languages.
  2. Pull a list of dependency findings from your current scanner.
  3. Run the platform's reachability analysis over the same repositories.
  4. Pick ten findings the platform marks unreachable. Ask developers to verify by reading code.
  5. Pick ten marked reachable and verify the call paths.
  6. Count disagreements and ask the vendor about each.
  7. Check what happens after you change code to add or remove a call.

Step seven shows whether analysis keeps up with change, which matters as much as the first result.

Questions about coverage

Reachability support differs by language and framework. Ask for a written list of supported languages and package managers, and for known limitations such as reflection, dynamic loading, code generation and native extensions. Make sure the list matches the languages you run, not only the ones in the demo.

How to use the output

Treat reachable findings as the first queue. Treat unreachable findings as scheduled work with a review date. Treat findings where analysis cannot decide as reachable until proven otherwise. That conservative default avoids dismissing a real problem because a tool lacked support.

What to tell developers

Explain that unreachable does not mean unimportant forever. It means the risk today is lower than the score suggests, and the work can be batched. Developers tend to welcome that message because it respects their time while keeping the list honest.

Where Safeguard fits

Safeguard provides reachability analysis along with SBOM and dependency scanning. You can see the effect on your own repositories with the free scan at gold.safeguard.sh/scan.

Try it yourself

Click through it at your own pace, or open it full screen. Watch how many findings remain once call paths are checked.

Quick check

Is an unreachable finding safe to ignore forever?

No. Code changes, so revisit it when the dependency or your usage changes.

Does reachability replace severity scoring?

No. It adds context. Use it with severity, exploitation data and exposure.

What if the platform says a finding is not reachable but we are unsure?

Treat it as reachable until a developer confirms. Record the review so the decision is not repeated, and ask the vendor to explain the analysis.

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.