What it catches
- Known CVEs in direct + transitive dependencies — CVSS-scored, and enriched with EPSS exploit-probability and CISA KEV (“known exploited”) flags for prioritisation
- Fix availability — whether a patched version exists; findings with no upstream fix are flagged as such (and can be excluded with
--sca-ignore-unfixed) - Dependency licenses — each package’s detected license is recorded on the finding and in the generated SBOM (copyleft licenses such as GPL / AGPL / LGPL / MPL are surfaced)
Ecosystems supported
| Ecosystem | Manifest | Lockfile |
|---|---|---|
| Node.js / npm | package.json | package-lock.json, yarn.lock, pnpm-lock.yaml |
| Python | requirements.txt, pyproject.toml, Pipfile | poetry.lock, Pipfile.lock, uv.lock |
| Go | go.mod | go.sum |
| Java / Kotlin | pom.xml, build.gradle | gradle.lockfile |
| Ruby | Gemfile | Gemfile.lock |
| .NET | *.csproj, packages.config | packages.lock.json |
| Rust | Cargo.toml | Cargo.lock |
| PHP | composer.json | composer.lock |
| Swift | Package.swift | Package.resolved |
Vulnerability sources
SCA uses TigerGate’s dependency-vulnerability (SCA) engine. It matches your dependencies against a vulnerability database that aggregates:- NVD — National Vulnerability Database (CVSS scores)
- GitHub Security Advisories — GHSA IDs, often published earlier than NVD
- OS distribution advisories — Alpine, Debian, Ubuntu, RHEL, Amazon, SUSE, Wolfi, etc. (used for OS/container packages)
Auto-fix suggestions
For most CVE findings, TigerGate suggests the smallest patched version above the installed one, preferring a stable release.- “[email protected] → 4.17.21 (patches CVE-2021-23337)”
- “[email protected] → 8.17.1 (patches CVE-2024-37890)”
Dependency licenses
The scan resolves each dependency’s license — from the package’s own metadata and, offline, from anyLICENSE/COPYING file in its source — and records it on the finding and in the generated SBOM. Copyleft licenses (GPL / AGPL / LGPL / MPL) are therefore visible across your dependency tree. Licenses that can’t be determined offline are shown as Unknown rather than guessed.