Safeguard
Security Guides•

Is the vulnerable code in a zero-day actually reachable?

Reachability analysis checks whether your code can call a flaw. How to use it to rank a zero-day response without marking real exposure as safe.

Safeguard Security Team
3 min read

Reachability analysis checks whether your application can actually call the vulnerable function in a dependency. In a zero-day it helps you rank which systems to fix first. It should not be used to declare a system safe on its own, because the code, the configuration and the attacker's options can change.

What reachability tells you

A dependency may contain a flaw in a function your code never calls. Static analysis follows call paths from your entry points into the library. If no path reaches the vulnerable function, the flaw is less likely to be exploitable in your application as built.

What it does not tell you

LimitWhy it matters
Dynamic behaviorReflection, plugins and configuration can create paths a static check misses
Future changesA later commit may begin calling the function
Other consumersA different team may use the same library differently
Not the same as patchedThe flaw is still present

For these reasons, keep the flaw on the list and rank it lower, rather than removing it.

A triage order

  1. Internet-facing, reachable, exploitation reported: first.
  2. Internet-facing, reachable, no reported exploitation: next.
  3. Internal, reachable: after the above.
  4. Not reachable: schedule with normal updates and record the reasoning.

Record why you marked something not reachable. An auditor, a customer or your future self may ask. Consider a structured statement such as a VEX entry; see VEX not affected justifications for unreachable code.

Combine with exposure and exploitation

Reachability is one signal. Pair it with whether the system is exposed to untrusted networks and whether exploitation is reported. Reachability versus EPSS versus KEV versus CVSS compares how the signals complement each other.

Example

A web service imports a parsing library but only calls its safe functions. A flaw is reported in a function the service never calls. The finding is lower priority, yet it stays on the list with a note, and the library is updated in the next normal cycle.

Try it yourself

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

Check how a finding's priority changes once exploitability is considered.

Where Safeguard fits

Safeguard includes reachability analysis alongside SBOM and dependency scanning, so you can rank findings by whether vulnerable code is called. A free scan shows how it looks on a real repository.

Quick check

If code is unreachable, can we skip the update?

Not forever. Rank it lower, record the reasoning, and update with the normal cycle.

Does reachability replace the exposure check?

No. Use both. A reachable flaw on an internet-facing system is the top priority.

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.