Product

Safeguard SCA: Vulnerability Scanning Built for the Supply Chain

Safeguard SCA goes beyond basic CVE matching with multi-source intelligence, version-range precision, and exploitability context that cuts through vulnerability noise.

James
Solutions Architect
6 min read

Software Composition Analysis is a crowded market. There are dozens of tools that scan your dependencies and tell you about known vulnerabilities. So why did we build another one?

Because most SCA tools are optimized for finding vulnerabilities. Safeguard SCA is optimized for making decisions about them.

The Problem With Existing SCA

The typical SCA experience looks like this: you run a scan, get a list of 200 vulnerabilities, and spend the next week triaging them. Half are false positives caused by imprecise version matching. A quarter are in dependencies you do not actually use at runtime. Some are in test-only dependencies that never reach production. A handful are genuinely critical, but they are buried in the noise.

This is not a scanning problem. It is a signal-to-noise problem. And it exists because most SCA tools were built to count vulnerabilities, not to help you prioritize them.

Three specific issues plague existing SCA tools.

Imprecise version matching. NVD data is notoriously inconsistent about which package versions are affected by a given CVE. Many tools match on CPE (Common Platform Enumeration) identifiers, which are ambiguous enough that a CVE affecting jackson-databind version 2.9.x might get matched against jackson-core version 2.9.x because they share a CPE prefix. The result is false positives that erode trust in the tool.

Single-source intelligence. Tools that rely exclusively on NVD data inherit NVD's limitations: delayed publication (often weeks after a vulnerability is publicly known), incomplete affected-version ranges, and sparse metadata. A vulnerability might have a proof-of-concept exploit circulating for days before it appears in NVD.

No prioritization context. A CVSS score tells you the theoretical severity of a vulnerability. It does not tell you whether the vulnerability is exploitable in your specific context, whether an exploit exists in the wild, whether the vulnerable function is even reachable in your code, or whether there is a fix available. Without this context, every high-severity CVE gets the same urgency, which means nothing is truly urgent.

How Safeguard SCA Works

Multi-Source Intelligence

Safeguard SCA aggregates vulnerability data from multiple sources:

  • NVD -- The baseline. Every CVE with official NVD entries.
  • OSV (Open Source Vulnerabilities) -- Community-maintained vulnerability data for open-source ecosystems, often more precise about affected packages and versions than NVD.
  • GitHub Security Advisories -- Curated advisories with specific ecosystem context and affected version ranges.
  • Safeguard Advisory Database -- Our own curated intelligence that addresses gaps in the above sources. When we find NVD entries with incorrect version ranges or missing package mappings, we correct them in our database.

Each source has strengths. NVD has breadth. OSV has ecosystem precision. GitHub has curation quality. Our database has corrections and enrichment. By aggregating across all four, Safeguard SCA provides more accurate results than any single source.

Precise Package Matching

Instead of relying on CPE matching, Safeguard SCA uses Package URL (purl) as the primary identifier for matching vulnerabilities to components. Purl includes the ecosystem, namespace, package name, and version, which eliminates the cross-package false positives that plague CPE-based matching.

For example, a CVE affecting pkg:maven/com.fasterxml.jackson.core/jackson-databind@2.9.8 will never be incorrectly matched against pkg:maven/com.fasterxml.jackson.core/jackson-core@2.9.8. The package name is part of the identifier, not just the version.

Where purl data is not available in the advisory source, we maintain our own purl-to-CVE mappings. This is tedious, manual work, but it is the difference between a tool that generates a wall of noise and one that gives you accurate results.

Exploitability Context

For each vulnerability match, Safeguard SCA provides contextual data that helps you prioritize:

  • Exploit availability -- Is there a known public exploit? Is it being actively exploited in the wild? We track this through CISA KEV (Known Exploited Vulnerabilities), Exploit-DB, and our own monitoring.
  • Fix availability -- Is there a patched version of the affected component? How far is the fix from your current version? Upgrading from 2.9.8 to 2.9.10 is a different effort than upgrading from 2.9.8 to 3.0.0.
  • EPSS score -- The Exploit Prediction Scoring System estimates the probability that a vulnerability will be exploited in the next 30 days. A CVSS 9.8 with an EPSS of 0.01 is a different priority than a CVSS 7.5 with an EPSS of 0.85.
  • Component scope -- Is the vulnerable component a runtime dependency, a development dependency, or a test dependency? Vulnerabilities in test-only dependencies rarely warrant the same urgency as runtime dependencies.

This context is presented alongside the vulnerability data, so your triage decisions are informed by actual risk, not just theoretical severity.

Continuous Monitoring

Safeguard SCA is not a point-in-time scanner. Once your SBOM is in the platform, vulnerability correlation runs continuously. When a new advisory is published, it is checked against your component inventory immediately. When a new SBOM is uploaded, it is checked against the full vulnerability database immediately.

This means you learn about new vulnerabilities in your software within minutes of disclosure, not during your next scheduled scan. For zero-day situations, that speed difference matters enormously.

Output and Integration

Scan results are available in multiple formats:

  • Table -- Terminal-friendly output for local development
  • JSON -- Structured data for programmatic consumption
  • SARIF -- Static Analysis Results Interchange Format for integration with GitHub Advanced Security, Azure DevOps, and other platforms that consume SARIF
  • CycloneDX VEX -- Vulnerability Exploitability eXchange format for sharing vulnerability status alongside SBOMs

SARIF output is particularly useful for pull request integration. Upload the SARIF file to GitHub and vulnerability findings appear as annotations on the specific lines of your manifest file that introduce the vulnerable dependency.

The API provides full access to vulnerability data for building custom dashboards, feeding ticketing systems, or integrating with SOAR platforms.

Comparison With Other Scanners

We are often asked how Safeguard SCA compares with Snyk, Grype, or Trivy. Here is an honest assessment.

Detection coverage is broadly similar across mature SCA tools. The differences are at the margins: specific ecosystems where one tool has better data than another, specific CVEs where version matching is more or less precise. Safeguard's multi-source approach and purl-based matching give us an edge on precision (fewer false positives), but no tool catches everything.

Prioritization is where the gap is widest. Most tools give you CVSS scores and stop there. Safeguard adds EPSS, exploit status, fix availability, and component scope. This context transforms the output from a vulnerability list into a prioritized action plan.

Integration with SBOM lifecycle is unique to Safeguard. Because SCA is built into the same platform that manages your SBOMs, tracks dependency health, and enforces policies, you get a unified workflow. Scan results are linked to your SBOM inventory, policy engine, and reporting. You do not have to correlate data across separate tools.

Getting Started

Run safeguard scan --path . in any project directory. You will get a vulnerability report in seconds. No SBOM upload required for the initial scan -- the CLI generates a temporary SBOM and runs the analysis.

For continuous monitoring, upload your SBOM to the platform and let the correlation engine do its work. You will be notified of new vulnerabilities as they are disclosed, without running another scan.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.