Skip to content

[Feature] Reachability Analysis for Dependency Vulnerabilities #142

Description

@KolaSailaja

Summary

Add a reachability analysis engine that determines whether reported dependency vulnerabilities are actually used or reachable within the scanned codebase, helping users prioritize remediation efforts more effectively.

Motivation

PatchPilot currently reports dependency vulnerabilities discovered by OSV-Scanner and other dependency analysis tools. However, not all vulnerable dependencies are actively used by the application.

This often results in:

  • Alert fatigue
  • Large numbers of low-priority findings
  • Developers spending time fixing vulnerabilities that are not exploitable in practice
  • Difficulty prioritizing remediation efforts

By determining whether a vulnerable package is imported, referenced, or reachable through application code, PatchPilot can provide more actionable security insights.

Proposed solution

Introduce a reachability analysis stage after dependency scanning.

Analysis Flow

Dependency Vulnerability
        ↓
Dependency Mapping
        ↓
Import/Reference Analysis
        ↓
Reachability Classification

Reachability States

  • Reachable
  • Potentially Reachable
  • Unreachable
  • Unknown

Example Output

{
  "package": "log4j-core",
  "cve": "CVE-2021-44228",
  "severity": "Critical",
  "reachability": "Reachable",
  "evidence": [
    "src/logger/config.java",
    "src/service/logging.java"
  ]
}

Backend

  • Build dependency graph parsing utilities.
  • Analyze imports and references.
  • Associate findings with reachability metadata.
  • Include reachability evidence in scan results.

Frontend

Display reachability badges:

CRITICAL | Reachable
HIGH     | Potentially Reachable
MEDIUM   | Unreachable

Add filtering options based on reachability.

Evidence Pack Integration

Include:

reachability-analysis.json
reachability-summary.txt

in exported evidence packs.

ML tier (if applicable)

  • Tier 1 — Triage (severity ranking, deduplication, false positive classification)
  • Tier 2 — Predictive (fix success prediction, exploit scoring, pattern clustering)
  • Tier 3 — Autonomous (LLM patch generation, self-healing pipeline)
  • Not ML-related

Alternatives considered

  1. Display all dependency vulnerabilities equally.

    • Rejected because it creates alert fatigue and poor prioritization.
  2. Depend entirely on scanner severity.

    • Rejected because severity alone does not indicate exploitability within a specific codebase.
  3. External dependency analysis tools.

    • Rejected because users would need separate workflows outside PatchPilot.

Acceptance criteria

  • PatchPilot determines whether vulnerable dependencies are referenced in the codebase.
  • Findings include a reachability classification.
  • Users can filter findings by reachability status.
  • Evidence Packs include reachability analysis artifacts.

Additional context

Modern security platforms increasingly use reachability analysis to reduce noise and focus remediation efforts on vulnerabilities that present actual risk. This feature would significantly improve finding prioritization and make PatchPilot more useful for production environments.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions