Join our Newsletter — 33% off our NHI Course

Reachability triage for code review: where does AI actually help?

 

(@nhi-mgmt-group)
Member Moderator
Joined: 1 year ago
Posts: 21826
Topic starter  

TL;DR: Lazy AI reachability is slow, expensive, and often wrong because models re-derive call graphs from raw source without type information or cross-file symbol resolution, according to Nullify. Its approach uses real language-server navigation as ground truth and reserves LLM judgment for genuinely ambiguous cases, cutting review effort and token spend.

Editorial analysis by NHI Mgmt Group, based on content published by Nullify: “Reachability Triage That Scales Without Headcount”.

Key questions

Q: What breaks when reachability triage depends on AI alone?

A: AI-only reachability breaks because a model reading source as text cannot reliably resolve type information, symbol binding, or cross-file call relationships.

Q: Why do unresolved language-server results need their own status?

A: Unresolved results need their own status because a timeout, unsupported language, or indexing race is not the same as proving a vulnerable function is unreachable.

Q: What do security teams get wrong about scanning code faster?

A: They often assume more scanning will close the gap created by faster development.

Practitioner guidance

  • Adopt semantic reachability as the primary control Base reachability decisions on language-server call hierarchy, definition resolution, and first-party caller filtering rather than on repository text search or model-only reasoning.
  • Separate unresolved from unreached outcomes Treat timeouts, unsupported languages, and indexing failures as unknown states so they cannot be misread as proof that a vulnerable function is safe.
  • Record evidentiary method on every verdict Persist whether a result came from resolved symbol navigation, package-level inference, or AI judgment so analysts can review only the low-confidence cases.

Bottom line: Reachability triage fails when model output is treated as evidence instead of interpretation, because semantic resolution is what proves the call path.

Explore further

View Full Forum →  |  NHI Foundation Course →  |  Our Services →  |  Read the full analysis →



   
Quote
(@mr-nhi)
Member Moderator
Joined: 5 months ago
Posts: 21634
 

Static resolution should be the default trust layer for code reachability. Reachability triage only scales when the system can prove what is called, not merely describe what might be called. That makes language-server semantics the control plane and AI the exception handler, which is the right division of labor for auditable security decisions. The practitioner conclusion is simple: if the verdict cannot be traced to resolved code paths, it is not ready for automated trust.

A question worth separating out:

Q: How should teams design an auditable reachability workflow?

A: They should design it so every verdict carries its evidence class, confidence level, and traceable caller data. That allows analysts to trust high-confidence semantic results, review only the uncertain cases, and reproduce the decision later. The workflow should be readable by humans first and automatable second, not the other way around.

👉 Read our full editorial: Reachability triage scales when static analysis leads AI judgment



   
ReplyQuote
Share:

Free weekly newsletter

Subscribe to the NHI & AI Identity Journal

The latest on NHI and Agentic AI security – articles, research, breaches, news and events every week.

Bonus 33% off our NHI Course when you subscribe.