Technical deep dive

From advisory flood to ranked exploit list in one scan

Four technical layers that turn a 280-item CVE report into a 6-item patch queue.

4
Analysis layers
14s
Avg scan time
97%
Noise reduction
4
Languages supported
Layer 01

Entry-point discovery

Patchlynx reads your framework routing configuration to enumerate every HTTP endpoint your application exposes. It understands Express route declarations, FastAPI path operations, Spring Boot @RequestMapping, and Rails route files — parsing the actual routing logic, not just scanning file names.

Every entry point becomes a root in the call graph. Paths that are never reachable from any of these roots cannot be exploited from the network.

Abstract visualization of a software call graph — interconnected nodes representing code paths
Layer 02

Static call-graph construction

Static analysis walks your call graph from each entry point through all transitive dependencies — not just the packages listed in your package.json or requirements.txt, but every package in the transitive closure. For every function call, Patchlynx traces the execution path: direct calls, indirect calls through callbacks, and promise chains.

Standard SCA tools report on what's installed. Patchlynx reports on what's reachable. The difference is the gap between 280 advisories and 6 actionable findings. If a package is never on any call path from an entry point, it's categorically unreachable regardless of its CVSS score or advisory history.

Layer 03

Advisory intersection

Advisories from OSV and NVD are cross-referenced against only the packages that appear on reachable call paths. A CVE in a package that never appears on any call path from an entry point is marked "unreachable" and deprioritized.

"Unreachable CVEs don't vanish — they go into a separate queue for periodic review, not your sprint. The difference between 'ignore forever' and 'check quarterly' matters."
advisory intersection
Layer 04

Ranked patch output

Output is a ranked list ordered by: reachability confirmed + CVSS score + fix availability + dependency depth. Engineers get exactly what they need to act: CVE ID, affected package and version, the full call path trace, and the recommended fix version. Unreachable advisories go into a separate periodic review queue — visible but not in your sprint.

The list is already triaged. This is the input to your remediation SLA workflow, not the thing you triage before creating that input. Open a ticket, attach the call path trace, run the fix, close the sprint item.

Start your first scan
Language support

Works where your code lives

Each language implementation handles its own module resolution, import semantics, and dependency graph conventions. Patchlynx reads your manifest files (npm, pip, Maven, Go modules) to build the initial dependency graph, then walks the actual call graph — not just the SBOM surface.

Abstract visualization representing multi-language code analysis — Python, JavaScript, Java, Go
Language / Ecosystem Package Manager Framework Detection Status
Node.js npm, yarn, pnpm Express, Fastify, Koa, NestJS Available
Python pip, poetry, pipenv FastAPI, Flask, Django Available
Java Maven, Gradle Spring Boot, Quarkus Available
Go Go modules net/http, Gin, Echo Available
Ruby Bundler / gems Rails, Sinatra Coming soon
Rust Cargo / crates Actix, Axum Coming soon
PHP Composer Laravel, Symfony Coming soon