Safeguard
Security Guides•

How do you explain reachability analysis to a customer's security reviewer?

How to explain to a customer reviewer why you did not fix every flagged dependency: reachability, exposure and evidence, in language they can accept.

Safeguard Security Team
4 min read

Explain reachability as a triage step: a flagged dependency is only urgent if your code actually calls the vulnerable function and an attacker can reach it. Show the evidence for each deferred finding, keep the decision reviewable and set a date to look again.

Why reviewers push back

A scan listing hundreds of findings looks bad. If you answer "most of those do not matter", a reviewer hears an excuse. The way through is to show your reasoning and evidence, and to never drop a finding without a record.

What reachability means

A vulnerability lives in a specific function or feature of a library. If your application never calls that code, or the feature is switched off, the flaw cannot be triggered through your product. Reachability analysis checks whether a call path from your code to the vulnerable code exists. It narrows a long list to the findings that deserve attention first.

It is a prioritisation aid, not a license to ignore things. Some reviewers will still want upgrades on a schedule.

How to present it

Finding stateWhat you tell the reviewerEvidence
Reachable and exposedWe are fixing it, with a target dateTicket, fix pull request
Reachable, not exposedWe have a compensating control and will fix in the next releaseControl description, ticket
Not reachableWe deferred it with a recorded reason and review dateAnalysis output, notes
Fix not availableWe track upstream and apply a mitigationAdvisory link, mitigation

Every row has an owner and a date. The not reachable rows are the ones to handle most carefully: record how you determined it, and re-check when the code or the advisory changes.

A sample explanation

"We prioritise findings by whether our code reaches the vulnerable function and whether it is exposed to outside input. Of the findings flagged, these are reachable and being fixed by the dates shown. The remainder are not reachable in our current code; each has a recorded analysis and a review date, and we re-check when dependencies or code change."

Limits to state up front

  • Analysis depends on language and framework support, and call paths through reflection or dynamic loading can be hard to see.
  • A finding that is unreachable today can become reachable after a code change.
  • Reachability does not replace updating libraries; it orders the work.

Saying these out loud builds trust. Reviewers hear a team that understands the method, not one hiding behind it.

Try it yourself

Open the reachability demo and watch a long list of findings narrow to the ones with a call path. Look at what the tool shows you to justify each call.

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

Safeguard includes reachability analysis alongside dependency scanning, so you can show which findings have a call path. See a sample result with the free scan at https://gold.safeguard.sh/scan.

Quick check

Can we close unreachable findings?

Defer them with a recorded reason and a review date rather than deleting them from the record.

Will every reviewer accept this?

No. Some will want upgrades regardless. Offer a schedule for those.

What if our analysis is wrong?

That is why reviews are dated and repeated. Correct the record and tell the customer if it mattered.

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.