Run scans

Dependency reachability

Keep only the dependency advisories your application can actually reach.

View as Markdown

A dependency scan reports every advisory that touches your lock files, and most of them are not worth acting on: the vulnerable function is never called, or the advisory does not apply to the installed version. Dependency reachability keeps only the advisories that matter. It looks at the critical and high advisories with known real-world exploitation, checks that each one applies to the version you install, and then checks whether your code actually uses the vulnerable part of the library. Advisories that fail are left out of the AI report and out of Vulnerabilities.

It works on the results of Dependency Check (SCA), so it adds nothing when that scanner is off.

Before you start

PrerequisiteHow to check
Dependency Check (SCA) is onStatic Code Analysis → AI Featured Code Analysis: the Dependency Check (SCA) switch is on (the default).
The team has AITeams → AI tab → AI provider: Use is set to the system AI or the team's own models, not No AI. See AI providers and cost.
AI budget is leftTeams → AI tab → Monthly token budget: the meter is below the limit. When the budget is used up, AI features pause.
The exploitable vulnerabilities database is filledVuln DB in the sidebar lists entries. See Exploitable Vulnerabilities Database.
The repository has manifest or lock filesFor example package-lock.json, poetry.lock, pom.xml or go.sum. Without them there is nothing to check.

Turn it on

  1. 01
    Open Static Code Analysis in the sidebar
  2. 02
    Find Dependency Check (SCA) under AI Featured Code Analysis

    Its switch must be on.

  3. 03
    Switch on Verify findings reachability under it

    It is on by default until you change it; the form then remembers your choice for the team.

  4. 04
    Set the rest of the form and click Start Analysis

    See Static Code Analysis for the other fields.

OptionWhat it doesDefaultWhen to change it
Verify findings reachability (under Dependency Check)Checks the critical and high advisories with known exploitation and keeps only those your code can reach.OnSwitch it off to get the plain dependency report only, with no AI cost.

From a pipeline, the standard-ai (default) and full-ai bundles of scansuite-ci include dependency checks with reachability, and --no-ai-verification drops it. See CI/CD and automation.

What you get

The reachable advisories appear in the scan's AI report, next to the AI Native SAST findings of the same scan. Each one carries its severity, the package, the installed and fixed versions, where the dependency is declared and any exploit references; the mitigation names the version to upgrade to, and the last column holds the Reachable verdict:

ScanSuite AI dependency analysis report
The AI report for a dependency check: reachable findings with their exploit references and verdict
  • Every reachable advisory has a flowchart from the application's entry point, through the place the library is imported, to the vulnerable part of the library. It is drawn inline in the HTML report.
  • Exploit references are clickable links in the HTML report and one per line in the XLSX export.
  • A package with a public exploit is still reported as not reachable if your code never uses it.
  • An advisory judged not reachable is remembered for that revision of the repository, so a rescan of the same commit neither checks nor reports it again.

Where the results go

AdvisoryVerify findings reachability onVerify findings reachability off
ReachableAI report, the dependency report and Vulnerabilities (scan type dependency)The dependency report. Also stored on Vulnerabilities while Teams → Scanning → Store scanner findings is On (the default), from the severity set there (Medium by default).
Checked and not reachableRemoved from the dependency report as well, so the two reports agree
Medium or lower, or no known exploitationNot checked; stays in the dependency report only

The dependency report is the spreadsheet in the scan's report ZIP (Download report on the scan page). Dependency Check results are not exported to DefectDojo, with or without reachability.

When it does not run

The scan still finishes and the dependency report is still produced, but no advisory is checked. When the analysis did not complete, for example without AI or with an AI service that does not answer, the log also says Dependency reachability analysis did not complete; the scanner's dependency findings are stored without reachability verification., and the dependency findings are stored on Vulnerabilities as with Verify findings reachability off. The scan log on the scan page says which case it was:

Scan log saysWhat to do
Dependency reachability analysis was skipped because an AI provider is not configured.Give the team AI on the Teams page, AI tab, then scan again.
The AI service does not answerCheck the connection with Test connection on the Teams page, AI tab, or ask your system administrator about the system AI.
Dependency reachability analysis was stopped because the known-exploited vulnerability database could not be queriedAsk your operator to check the exploitable vulnerabilities database, then scan again.
No critical/high dependency finding has a known exploit, so there is nothing to verify for reachability.Nothing to do: no advisory needed checking.

Cost

Each advisory that is checked uses AI tokens. Scans of large operating-system package sets can report hundreds of CVEs, so they take longer and cost more. What a scan spent is shown on its page and in Scan History.

If a scan reports many high-severity OS package CVEs and you only care about the application's own dependencies, scan the application's source rather than a tree that includes the OS packages. See AI providers and cost for how token spend is tracked and capped.

Last reviewed 2026-10-19