Safeguard
Security Guides•

Should a reachable vulnerability block a new dependency at intake?

Reachability helps rank risk at intake, but it should not be the only rule. Here is when to block, when to allow with a plan, and what to record.

Safeguard Security Team
3 min read

Usually yes for serious, reachable, fixable vulnerabilities, and no for the unreachable ones, with caveats. Reachability tells you whether your code can call the vulnerable function. Use it to prioritise and to decide between block and allow-with-plan, but keep fixed rules for malicious packages and for severe issues with an available fix.

What reachability means

Reachability analysis checks whether the vulnerable code in a dependency can be reached from your application's entry points. A vulnerability in a function you never call is much less urgent than one in a path that handles untrusted input. It is a way to cut noise, not a verdict that unreachable means safe forever.

Limits of reachability at intake

At intake, the candidate package is not used yet. So the analysis is about how you plan to use it, which is partly unknown.

  • Your future code may call the vulnerable function later.
  • Transitive paths can change when your own code changes.
  • Static analysis can miss dynamic calls, so an unreachable result is a strong hint, not a guarantee.

A decision table

FindingReachableFix availableSuggested decision
Malicious packageNot relevantNot relevantBlock, no exception
Critical or known exploited vulnerabilityYesYesBlock, pick the fixed version
Critical vulnerabilityYesNoBlock, or allow only with a mitigation and expiry
High vulnerabilityNoYesAllow, update soon, record the reason
High vulnerabilityNoNoAllow with an owner and review date
Low severityAnyAnyAllow, track

Adjust the thresholds to your own risk appetite, and write them as policy.

Record what you decided

For each allow-with-plan decision, store the vulnerability identifier, the reachability result at the time, the reason, the owner and a review date. When the code changes, rerun the analysis. A reachable result tomorrow turns yesterday's allowance into a task.

Common mistakes

  • Using unreachable as a permanent pass. Revisit on every significant change.
  • Skipping the fixed version check. If the next patch release removes the issue, choosing it costs little.
  • Applying reachability to malicious packages. A package built to steal credentials at install time does not need its functions called.
  • Ignoring the exploitation context. A vulnerability known to be exploited in the wild deserves a harder line than its reachability suggests.

Try it yourself

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

Compare how a finding looks before and after the exploitability question is asked, then think about what you would record as the decision.

Where Safeguard fits

Safeguard offers reachability analysis alongside SBOM and dependency scanning, and policies and gates that can turn your decision table into pull request checks. Try the free scan.

Quick check

Does unreachable mean the vulnerability can be ignored?

Not forever. It lowers urgency now, but you should recheck when the code or the dependency changes.

Should reachability override a malicious package flag?

No. Malicious packages are blocked regardless of whether their code is called.

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.