Safeguard
Supply Chain•

What is reachability analysis, and do you need it in a scanner?

Reachability analysis checks whether your code can call a vulnerable function. See what it does, where it helps, where it cannot, and who needs it.

Safeguard Security Team
3 min read

Reachability analysis checks whether your application can actually call the vulnerable code inside a dependency. If it cannot, the finding is usually lower priority. You need it when your scanner output is too long to act on. If you have a handful of findings, you may not.

How it works in plain terms

A scanner says package X version 2 has a flaw in function f. Reachability analysis builds a call graph of your code and asks whether any path leads from your entry points to f. If yes, the finding is marked reachable. If no path exists, it is marked unreachable.

What it is good for

Cutting noise. Many projects pull in large libraries and use a small part of them. A flaw in a part you never call is real but rarely urgent.

It also helps in conversations with auditors and customers, because you can state why a specific finding was deprioritised.

What it cannot do

  • Guarantee safety. Dynamic features such as reflection, plugin loading and generated code can hide paths from static analysis.
  • Cover every language equally. Support depth varies by ecosystem. Ask which languages and what depth.
  • Replace fixing. Unreachable today can become reachable after a refactor. Treat it as a ranking signal, not a dismissal.

Questions to ask

  1. Which languages are supported at function level, and which only at package level?
  2. What happens when the tool cannot decide? Good tools say unknown rather than guess.
  3. Can I see the path it found?
  4. Can I override it with a reason?

Do you need it?

You probably do if you have hundreds of findings, several teams, or developers who have started ignoring the scanner. You probably do not if you maintain one small project and fix everything promptly anyway.

Using the results well

Treat reachable findings as the first queue and unreachable ones as a second queue with a longer deadline. Revisit the second queue when a major refactor lands, since new code paths can make old findings reachable. Reviewers should also spot check a handful of unreachable verdicts each quarter by reading the code. Doing so builds or breaks your confidence in the analysis, using evidence from your own system.

Try it yourself

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

Look at how the list changes when unreachable findings are separated out.

Where Safeguard fits

Safeguard includes reachability analysis alongside dependency scanning. A free scan is a way to see your inventory first.

Quick check

Is unreachable the same as safe?

No. It means lower priority for now. Keep tracking it and fix it on a normal schedule.

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.