Skip to main content

SCA with reachability — find out if vulnerable code is actually reachable

Project description

DepReach

SCA with reachability — find out if vulnerable code is actually reachable

License: MIT Python 3.10+ CycloneDX SBOM Docker optional SCA reachability

What is DepReach?

DepReach is a Software Composition Analysis (SCA) tool that goes beyond listing CVEs: it tells you whether vulnerable code is reachable from your project. It builds call graphs, maps fixes from GitHub diffs to affected functions and marks issues as reachable or not — so you can prioritize what actually matters.

Preview

Report

Features

Feature Description
SBOM CycloneDX via cyclonedx-py (Python) or cdxgen (Docker)
Vulnerability lookup Local VDB (e.g. appthreat-vulnerability-db)
Reachability Call graph + AST + GitHub diff → which vuln code is reachable
Caching SQLite cache for reachability results
HTML report Interactive dependency graph, filter by package, zoom, “hide clean”

Requirements

  • Python 3.10+
  • Docker (optional) — only if using cdxgen for SBOM
  • Git — for reachability (GitHub diffs)

Install

pip install depreach

Requires Python 3.10+.

Usage

depreach -i <path_to_project> -o report.json [options]

Reports are written to reports/<project_name>/ (JSON, SBOM, HTML). Optionally use --sarif <file> to output SARIF 2.1.

Option Description
-i, --input Source code directory (required)
-o, --output Report filename; output dir is reports/<project_name>/
--skip-update Skip VDB update
--cache Cache reachability in SQLite
-j, --jobs Parallel jobs for reachability (default: 6)
--ignore Comma-separated package names to ignore (e.g. flask,requests)
--sarif Write SARIF 2.1 file (reachability in result.properties) for ASPM/Code Scanning

Exit codes: 0 = no vulns, 1 = vulns but none reachable, 2 = at least one reachable.

Example

depreach -i ./my-app -o report.json --cache --ignore "flask" --sarif report.sarif

Output

Artifact Path Description
JSON report reports/<name>/report.json Vulns with CVE, severity, description, references, reachability
SBOM reports/<name>/<name>_sbom.json CycloneDX SBOM
HTML report reports/<name>/report.html Interactive graph, filter by package, zoom
Console Rich table with reachability status
Log depreach.log Debug log
SARIF path from --sarif SARIF 2.1 with isReachable in result properties (for ASPM)

Use as a library

from depreach import run

vulns, exit_code = run(
    input_dir="./my-app",
    output_file="report.json",
    skip_update=False,
    cache=True,
    jobs=6,
    ignore="flask,requests",
    sarif_path="report.sarif",
)
# exit_code: 0 = ok, 1 = vulns, 2 = reachable vulns

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

depreach-0.1.0.tar.gz (26.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

depreach-0.1.0-py3-none-any.whl (29.3 kB view details)

Uploaded Python 3

File details

Details for the file depreach-0.1.0.tar.gz.

File metadata

  • Download URL: depreach-0.1.0.tar.gz
  • Upload date:
  • Size: 26.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.10

File hashes

Hashes for depreach-0.1.0.tar.gz
Algorithm Hash digest
SHA256 9998701197b5324459e0492673bd5b5885264c04e515b0626fcc87585e418420
MD5 5dc731455b7dbbb85f0ba3252e50241f
BLAKE2b-256 f77403c50801c356651bde13bf97bb4e4e33645ea20f87c926ddf46ce35db5ad

See more details on using hashes here.

File details

Details for the file depreach-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: depreach-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 29.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.10

File hashes

Hashes for depreach-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9a4fb32e97f6a954b669c80a041c0a70725b473c1523e8c7d12c4d1cbff0bfd3
MD5 cba03436040c35280a04edc8b6773374
BLAKE2b-256 d079c53136a4e4e2740c6404e46cd16e1ca997e23d8cda1c2329392a8ce4f6da

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page