Safeguard
Supply Chain•

What happens when you scan the same SBOM with a second tool?

Feeding one SBOM to two scanners removes input differences and exposes data differences. Learn what stays the same, what shifts, and how to read it.

Safeguard Security Team
4 min read

Scanning one SBOM with two tools removes the input as a variable, so any remaining difference comes from advisory data, matching rules or how each tool reads the SBOM. It is a clean way to see data differences, but it cannot add packages the SBOM never listed.

What stays the same

The component list. Both tools start from the same names, versions and, if present, package URLs. A package absent from the SBOM stays invisible to both. This is the main limit of the method, and it is worth saying out loud: the SBOM is only as complete as the process that built it.

What can still differ

FactorWhy results shift
Identifier usedA tool may match on package URL, another on name and version, another on a CPE style name
Advisory sourceOne tool reads reviewed advisories, another a wider feed
Range logicVersion comparison rules differ at the edges
Handling of missing fieldsAn entry without a package URL may be skipped by one tool and guessed by another
Data timingThe two tools may have ingested a new advisory on different days

The Package-URL introduction says a purl is a standard URL based syntax to identify software packages, independent from their ecosystem or distribution channel. If your SBOM carries a purl for each component, matching becomes more consistent between tools. If it does not, expect more disagreement.

A procedure

  1. Check the SBOM first. Count components, and count how many have a package URL and a version. A component without a version cannot be matched reliably.
  2. Run both tools on the identical file. Record the file hash so the input is provable.
  3. Export results and normalize. Use one key, such as the package URL plus advisory ID.
  4. Bucket differences. Identifier issue, advisory source, range logic, missing fields, timing.
  5. Investigate a sample. Read the advisory for each sampled difference and decide who is right.
  6. Fix the SBOM if needed. Missing versions or identifiers are generator problems, not scanner problems. Correct them upstream.

What this tells you about your generator

If both tools struggle with the same components, the likely cause is the SBOM. Entries with no version, odd names, or no identifier tend to get skipped or mis-matched. Fixing those entries at the source helps every consumer of the SBOM, including customers who receive it.

If the tools agree on the SBOM but disagree on your source scan, the difference lies in how each tool builds its own component list. That points back to the input files, scope and resolution rather than advisory data.

Do not mistake agreement for completeness

Two tools can agree on a list that is missing a package. Compare the SBOM against the built artifact from time to time, for example by checking that the number of installed packages in the image matches the number in the SBOM.

Try it yourself

Click through it at your own pace, or open it full screen. Check that each component shows a name and exact version, which is what any scanner needs to match an advisory.

Quick check

If I scan an SBOM, am I scanning my software?

You are scanning the list the SBOM claims. If the list is incomplete, so is the scan.

Do package URLs reduce disagreements?

They help, because tools can match the same identifier. They do not remove differences in advisory data.

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.