Example report · generated by the real engine

Firmware release SBOM comparison

Baseline: harbor-gateway-hg100-1.4.2.cdx.json (15 components). New release: harbor-gateway-hg100-1.4.3.cdx.json (15 components). Generated at build time by the same comparison the tool runs locally.

Added
2
in the new release only
Removed
2
in the baseline only
Updated
2
same identity, new version
Unchanged
11
same identity and version

Every row the engine produced

ChangeComponentBaseline versionNew versionMatched by
addedlibmodbus—3.1.10purl
addedlwip—2.1.3purl
removedlwipunknown—purl
removedvendor-bootloader——fallback
updated@harbor/agent2.4.12.5.0purl
updatedlibcurl8.4.08.5.0purl
unchanged@harbor/ui-bundlelatestlatestpurl
unchangedbusybox1.36.11.36.1purl
unchangedcJSON1.7.181.7.18purl
unchangeddropbear2022.832022.83purl
unchangedharbor-radio-fw1.2.01.2.0fallback
unchangedharbor-telemetry1.9.01.9.0purl
unchangedmbedtls2.28.82.28.8purl
unchangedopenssl3.0.133.0.13purl
unchangedopenssl-libcrypto3.0.133.0.13purl
unchangedsqlite3.44.03.44.0purl
unchangedzlib1.3.11.3.1purl

17 rows · 0 duplicate identity+version occurrence(s) collapsed.

Read the removals carefully. The vendor bootloader disappears from the 1.4.3 declaration. That is more likely an under-declaration than a real removal, and it is exactly the kind of change a reviewer should catch before signing the release.

What this comparison does not tell you

  • Whether the updated libcurl version is affected by any advisory.
  • Whether the firmware image matches either SBOM.
  • Whether the release was authorised, signed or shipped.
  • Whether the new component is vulnerable, licensed correctly, or even needed.

How to compare firmware SBOM versions covers the interpretation method, including how identity changes create false add/remove pairs.