Safeguard
Security Guides•

How do you read a software composition analysis report?

Read an SCA report in six steps: check coverage, find direct versus indirect findings, read fix versions, weigh exploit signals, then group work by fix.

Safeguard Security Team
4 min read

Read a software composition analysis (SCA) report in this order: confirm what was scanned, split findings by direct and indirect dependency, check the fixed version, weigh exploit signals beyond severity, then group the work by the upgrade that closes the most findings. Severity alone is the wrong place to start.

What an SCA report is

Software composition analysis lists the open source packages in your application, then matches each package and version against databases of known vulnerabilities and, usually, license data. The report is the output of that matching. It is only as good as the inventory underneath it, which is why the first step is not about vulnerabilities at all.

The six steps

  1. Check coverage. Which repositories, manifests, lockfiles and ecosystems did the scan read? A short report can mean a healthy project or a scan that missed half of it. The coverage check post walks through this.
  2. Find the dependency path. For each finding, see which package pulled the vulnerable one in. A direct dependency you can upgrade yourself. An indirect one may need a parent upgrade.
  3. Read the fixed version. Note the first version that contains the fix and whether any upgrade is possible within your version constraints.
  4. Add exploit context. Severity describes the flaw in general. Look for signals such as whether the vulnerability is on CISA's Known Exploited Vulnerabilities list, an exploit probability score, and whether your code can reach the vulnerable function.
  5. Separate runtime from development. A flaw in a test tool is not the same exposure as a flaw in a library that ships to production.
  6. Group by fix. One upgrade often closes several findings. Work from the upgrade, not from the row.

What each common column means

ColumnWhat it tells youWhat it does not tell you
Severity or CVSSHow bad the flaw is in the abstractWhether you are exposed
Fixed inFirst version with a fixWhether upgrading breaks your build
Introduced byThe parent package in the chainWhether the parent has a newer release
Exploit signalWhether attackers are using itWhether your usage is exposed
ScopeRuntime or developmentHow the build output is used

FIRST, which maintains CVSS, states that the CVSS Base Score represents only the intrinsic characteristics of a vulnerability and should be supplemented with contextual analysis of the environment. That is the reason step four exists.

A worked example in words

Say a report lists 40 findings. After step one you learn one service was never scanned, so you add it. After steps two and five, 15 findings sit in development-only tools and 25 in runtime code. After step three, 12 of the runtime findings are fixed by upgrading a single framework. That leaves 13 findings, a smaller and more honest queue than 40 rows sorted by severity.

Try it yourself

Click through it at your own pace, or open it full screen. Look at how each dependency is listed alongside the package that introduced it.

Where Safeguard fits

Safeguard produces SBOM and dependency scanning results with reachability analysis, so the exploit-context step in this list is already attached to each finding. You can run a free scan at gold.safeguard.sh/scan and read the output with these six steps.

Quick check

Should I read the highest severity findings first?

Not on their own. Start with coverage and dependency path, then use exploit signals and reachability to decide which high severity items are really exposed.

Is a short SCA report a good sign?

Only after you confirm coverage. A short report can also mean missing lockfiles or unsupported ecosystems.

Sources

Last reviewed: 19 October 2026.

Never miss an update

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

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.