TL;DR: Reachability can show that vulnerable code executes, but it cannot tell teams whether attacker-controlled input, real ingress, preconditions, and compensating controls make exploitation practical, according to Checkmarx. Attackability shifts triage toward demonstrable exploitability, which is the standard security teams actually need.
At a glance
What this is: This analysis argues that reachability is only a starting point because it cannot prove whether a vulnerability is exploitable in a real application context.
Why it matters: It matters because IAM, PAM, and application security teams need triage that reflects attacker control, trust boundaries, and runtime controls, not just code paths.
👉 Read Checkmarx's analysis of attackability and reachability in application security triage
Context
Reachability answers a narrow question: can code get to a vulnerable function? In application security, that is useful for reducing noise, but it does not establish whether an attacker can actually abuse the path, especially when authentication, allowlists, sanitisation, or runtime controls break the chain. For teams managing application risk, the gap is between code execution and practical exploitability, which is where decision-making often fails.
The article's core identity intersection is with secrets, authentication boundaries, and access-controlled ingress. When attacker-controlled inputs are evaluated against real runtime controls, the security question becomes whether a finding represents usable exposure or only theoretical reachability. That distinction matters across NHI, machine identity, and application access governance, because control evidence should drive prioritisation rather than code proximity alone.
Key questions
Q: How do teams know if a vulnerability is truly exploitable?
A: They validate it in the live environment using safe testing that shows whether an attacker can reach the condition, trigger it, and move beyond it. Scanner data alone cannot answer that question reliably. Validation gives defenders evidence they can use to separate theoretical issues from immediate response priorities.
Q: Why do reachability findings create noise in application security programmes?
A: Reachability creates noise because it answers whether code can be invoked, not whether an attacker can use it. That leaves teams with findings that may never be exposed to external input, may depend on rare preconditions, or may already be neutralised by compensating controls. The result is wasted engineering effort and weaker confidence in triage.
Q: What do security teams get wrong about attacker-controlled input in vulnerability triage?
A: They often assume that a vulnerable sink is dangerous whenever it is reachable in code. In practice, the source of input matters as much as the sink itself. If the data comes only from trusted internal systems or crosses an authentication boundary that an attacker cannot bypass, exploitability may be much lower than the scanner suggests.
Q: What is the difference between reachability and attackability in application security?
A: Reachability asks whether code can get to a vulnerable function. Attackability asks whether an attacker can actually drive that path from a real ingress point, under the current controls, and achieve meaningful impact. The second question is the one that supports defensible prioritisation, because it ties the finding to abuse potential rather than theoretical execution.
Technical breakdown
Why reachability misses exploitability
Reachability is typically a graph problem. A scanner asks whether a path exists from application code to a vulnerable sink, then marks the issue as reachable if it does. That can still be misleading because an exploit also needs attacker-controlled input, a usable ingress point, and a missing or ineffective control on the path. A function behind authentication, or one fed only by trusted internal data, may be reachable in code but not exploitable in production. Practical triage therefore has to include environment context, not just call graphs.
Practical implication: treat reachability as an input to triage, not a final severity decision.
How attackability validates a real exploit chain
Attackability extends static analysis by tracing attacker-controlled input from real ingress points such as APIs, webhooks, uploads, queues, or scheduled jobs to the eventual sink. It then checks whether the path is actually open to an external actor and whether controls such as safe parsing, authentication, allowlists, or sanitisation interrupt the chain. The key difference is that exploitability is established by evidence, not by assumption. That makes the verdict more defensible for both developers and security teams.
Practical implication: require path narrative and control validation before escalating a finding.
Why control validation matters more than scanner confidence
A triage result becomes decision-grade only when it explains why a vulnerability is exploitable or not exploitable in the actual deployment context. That means documenting preconditions, such as a privileged network position or a specific configuration, and tying those preconditions to the impact statement. For application security teams, this is a governance shift as much as a technical one: evidence-based acceptance replaces speculative remediation queues. The result is less waste and clearer prioritisation across SCA, SAST, IaC, container, and secrets findings.
Practical implication: standardise exploitability evidence in triage workflows across scanner types.
Threat narrative
Attacker objective: The attacker wants a vulnerability verdict that reflects real abuse potential so they can reach sensitive data, execution, or privilege escalation through an actually usable path.
- Entry occurs when attacker-controlled data reaches an exposed ingress point such as a public API, webhook, upload path, or other externally influenced input.
- Escalation happens when that input reaches a dangerous sink without being stopped by authentication, allowlists, sanitisation, or runtime controls.
- Impact follows when the chain enables data exposure, privilege escalation, remote code execution, or another concrete abuse path.
NHI Mgmt Group analysis
Attackability exposes the reachability blind spot: Reachability tells teams that code can execute, but it does not prove that an attacker can drive the path to impact. The missing context is attacker control, ingress, and compensating controls. In practice, this is the difference between a finding that deserves immediate attention and one that only looks dangerous in a scanner. Security programmes that prioritise exploitable paths reduce noise and improve trust in triage.
Control evidence should outrank static proximity: The presence of authentication, allowlists, safe parsing, or runtime hardening can break an exploit chain even when code is reachable. That means prioritisation should be based on control validation, not just call graphs or dependency depth. For application security teams, the governance question is whether findings are documented with enough evidence to justify remediation or acceptance.
Attackability creates a more usable security model for modern pipelines: SCA, SAST, IaC, container, and secrets findings all need different technical checks, but the decision criterion is the same. Can an external actor actually influence the sink, and does the environment permit impact? Exploitability context: that is the concept this article sharpens, and it is what makes triage defensible across scanner types. Teams should use this lens to standardise how they evaluate findings.
This approach aligns security work with runtime reality: Modern applications are shaped by identity boundaries, deployment settings, and control layers that scanners often flatten away. The more the environment matters, the less useful theoretical reachability becomes on its own. Organisations that want faster remediation need a triage model that reflects how attackers behave, not just how code is connected. That makes attackability a governance improvement, not merely a tooling feature.
What this signals
The practical signal for programmes is that vulnerability triage is moving away from binary reachability and toward evidence-based exploitability. That shift favours teams that can document real ingress, control breaks, and impact in the ticket itself. It also reduces the chance that critical work is crowded out by findings that look severe but cannot be abused in the deployed environment.
Exploitability-first triage: organisations should treat this as a governance model, not a scanner toggle. Once teams can prove which controls interrupt the path to impact, risk acceptance becomes more defensible and remediation queues become more meaningful. For identity-heavy environments, that also means evaluating authentication boundaries, secrets scope, and privilege context as part of the triage decision, not after it.
As applications become more distributed and identity-dependent, triage will increasingly need to account for the behaviour of secrets, service accounts, and runtime trust relationships. The organisations that will scale fastest are the ones that can connect detection, code analysis, and access context without overreacting to every reachable issue.
For practitioners
- Require exploitability evidence in triage: Ask teams to document attacker-controlled input, real ingress, control validation, and concrete impact before a finding is prioritised. A finding without those elements should remain a hypothesis, not a remediation emergency.
- Separate reachable from exploitable findings: Build workflow labels that distinguish code-path reachability from verified exploitability so engineering time goes to issues that can be abused in production. Use the same language across SCA, SAST, IaC, containers, and secrets reviews.
- Map control breaks to the exploit chain: Record the exact point where authentication, allowlisting, sanitisation, or runtime hardening interrupts the path to impact. That control evidence should be visible in ticketing and risk-acceptance decisions.
- Treat secrets exposure as contextual, not automatic: For leaked credentials, validate scope, rotation state, repository visibility, and downstream blast radius before assigning severity. Exposed does not always mean immediately usable, but valid credentials with broad access still warrant urgent response.
Key takeaways
- Reachability is useful, but it does not prove that an attacker can actually abuse a vulnerability in production.
- Exploitability becomes the right decision criterion when triage includes attacker control, ingress, and the controls that break the chain to impact.
- Security teams should standardise evidence-based triage so remediation effort follows abuse potential, not just code-path proximity.
Standards & Framework Alignment
This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.
MITRE ATT&CK address the attack and risk surface, while NIST CSF 2.0, NIST SP 800-53 Rev 5 and CIS Controls v8 set the governance and control requirements practitioners need to meet.
| Framework | Control / Reference | Relevance |
|---|---|---|
| NIST CSF 2.0 | PR.AC-4 | Access control context matters when deciding whether a path is actually exploitable. |
| NIST SP 800-53 Rev 5 | AC-6 | Least privilege reduces the chance that reachable code can be abused for broad impact. |
| MITRE ATT&CK | TA0006 , Credential Access; TA0009 , Collection; TA0040 , Impact | Exploitability often culminates in credential abuse, data collection, or impact. |
| CIS Controls v8 | CIS-16 , Application Software Security | Application security controls support evidence-based validation of code paths and sinks. |
Map confirmed abuse paths to the relevant ATT&CK tactics and prioritise findings that enable them.
Key terms
- Reachability analysis: Reachability analysis checks whether a vulnerability can actually be exploited in the application’s real code paths and dependency graph. It helps teams distinguish theoretical findings from issues that an attacker can reach, which makes prioritisation far more accurate for both AppSec and identity risk management.
- Attackability: The likelihood that a finding can be turned into a working attack in the real environment where the code or system actually runs. It combines exploitability, reachability, and exposure window, making it more useful than severity alone for prioritisation.
- Exploitability context: Exploitability context is the evidence used to decide whether a vulnerability matters in a specific environment. It includes reachability, code path exposure, compensating controls, and product-specific advisories, and it turns raw scan data into a decision that can be defended.
- Real ingress point: A real ingress point is an externally reachable entry path such as an API, webhook, upload, queue, or similar input surface that an attacker can influence. If no such point exists, a reachable sink may still be unexploitable in practice.
What's in the full article
Checkmarx's full article covers the operational detail this post intentionally leaves for the source:
- The five-step attackability workflow used to validate attacker-controlled input, ingress, and exploitability
- Scanner-specific examples showing how SCA, SAST, IaC, container, and secrets findings are judged differently
- The evidence trail used to support a verdict of exploitable, not exploitable, or risk accepted
- How minimal-disruption remediation is documented alongside control validation and path narratives
Deepen your knowledge
NHI Foundation Level course, the industry's only accredited NHI security programme, covers NHI governance, identity lifecycle, secrets management, and workload identity. It is designed for practitioners who need to connect access control, privilege, and operational risk across modern environments.
Published by the NHIMG editorial team on August 2, 2026.
NHI Mgmt Group — the independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org