6 min read
Known CVEs vs Zero-Day Candidates: What CA9 Should Find
How CA9 separates reachable known Python CVEs today and how a defensive agent can surface unknown vulnerability candidates in owned code.
by SkylosCA9 catches reachable Python dependency CVEs by proving which vulnerable packages, submodules, and covered code paths are actually used. Turn noisy SCA alerts into a handful of actionable fixes.
What CA9 catches
CA9 starts from known vulnerability reports, then checks your repository to decide which findings are reachable, unreachable, or still need more evidence.
Flags scanner-reported CVEs when the vulnerable dependency is imported by application code.
Checks whether the affected module path, not just the top-level package, appears in Python imports.
Distinguishes packages your app uses directly from dependencies that only sit in the environment.
Uses coverage evidence to identify vulnerable files or packages that actually ran during tests.
Emits JSON and SARIF so high-confidence reachable CVEs can become build or code-scanning signals.
Produces evidence for CVEs that are installed but not imported, helping teams justify suppressions.
Parses vulnerability reports directly from Snyk, Dependabot, Trivy, pip-audit, or OSV.dev.
Scans your Python AST for specific submodule imports and checks pytest coverage for runtime execution.
Spits out clean JSON, CLI tables, or SARIF files ready for GitHub Advanced Security and CI pipelines.
We ran CA9 against real Python projects scanned by leading SCA tools. Here's what happened to the noise.
Snyk scan
Snyk flagged 34 CVEs. CA9 proved only 4 were reachable.
pip-audit scan
pip-audit found 25 vulnerabilities. Only 2 were actually imported.
Trivy scan
Trivy reported 18 CVEs. CA9 narrowed it to 4 reachable issues.
Based on CA9 reachability analysis against real open-source Python projects.
Next: CA9 Agent
CA9 handles known dependency CVEs today. The agent layer is for your own repositories: it reviews Python code for suspicious data flows, dangerous sinks, and missing security checks before a CVE exists.
Looks for SSRF, command injection, path traversal, unsafe deserialization, authz gaps, and secret exposure patterns.
Connects sources, sanitizers, sinks, routes, jobs, and tests so reviewers see why a finding matters.
Links each candidate to files, functions, reachable entry points, and the assumptions behind the verdict.
Prioritizes defensive patches, tests, and review notes for maintainers working on authorized code.
Field notes
6 min read
How CA9 separates reachable known Python CVEs today and how a defensive agent can surface unknown vulnerability candidates in owned code.
5 min read
A practical guide to using import and coverage evidence to separate reachable Python CVEs from dependency scanner noise.
6 min read
A workflow for ranking Python SCA alerts by reachability evidence before assigning fixes to engineering teams.