Compare two Software Bills of Materials and see what changed between builds, versions, and releases.
sbomlyze compares component hashes, not only version strings. When an attacker swaps a package without bumping its version, sbomlyze flags it. Generators and vulnerability scanners miss this.
Drift Summary: Version drift: 58 components Integrity drift: 1 component (hash changed, version did not) Metadata drift: 2 components Key Findings: Attack surface: +5 packages (7.0%), +120 files (3.2%) 2 version downgrades: openssl 3.1.4→3.0.2, curl 8.5.0→8.4.0 56 upgrades (2 major, 12 minor, 42 patch) of 65 shared New ecosystem: golang (8 packages) ~ Changed (58): ~ nginx version: 1.29.4-r1 -> 1.27.3-r1 ~ suspicious-pkg [INTEGRITY] hash[SHA256]: abc123 -> def456 !! Policy Violations (1): [deny_integrity_drift] hash changed without version change exit status 1
A component can keep the same name and version while its bytes change. Treating these layers as interchangeable leaves that case unreviewed.
component: pkg:golang/example/project@1.4.2
version: 1.4.2 -> 1.4.2
hash: c4e3...aa89 -> 345c...fa36
verdict: integrity driftRead the full analysis →Generators make SBOMs and scanners find CVEs. sbomlyze tells you what changed between two SBOMs and whether to trust it.
| Capability | sbomlyze | cyclonedx-cli | sbomqs | syft / trivy |
|---|---|---|---|---|
| SBOM-to-SBOM diff | yes | basic | — | — |
| Integrity / tamper drift (hash changed without version) | yes | — | — | — |
| Dependency-graph diff + transitive depth risk | yes | — | — | — |
| NTIA / CISA / BSI compliance scoring | yes | — | yes | — |
| Format conversion (Syft / CycloneDX / SPDX) | yes | yes | — | partial |
| TUI + Web UI explorers | yes | — | — | — |
| Policy gate + SARIF / JUnit / Markdown / HTML / Patch | yes | partial | partial | partial |
Every format is produced from the same analysis, so the terminal, the code-scanning alert, and the report you email to an auditor never disagree.
{
"deny_integrity_drift": true,
"deny_licenses": ["GPL-3.0", "AGPL-3.0"],
"require_licenses": true,
"max_depth": 3,
"min_overall_compliance": 80
}Three public demo repositories carry five reproducible review scenarios each, with public workflow runs and SARIF evidence.