How to validate an SBOM: a step-by-step guide
A repeatable procedure for checking an SBOM you generated or received, from schema checks to comparing it with the artefact. Commands use well-known open-source tools; adapt them to your pipeline.
- Validate in order: identify, schema, fields, quality, integrity, accuracy, then record the result.
- Use the format's own validator first; field and quality checks come after.
- Compare the SBOM with an independent analysis of the delivered artefact to catch omissions.
- Automate the steps in CI/CD and at supplier intake, and keep the results as evidence.
Before you start
Decide which baseline you are validating against, for example the CERT-In 21 fields, the CISA 2026 Minimum Elements or BSI TR-03183-2. For the concepts behind each step, see SBOM validation. The commands below are examples from each tool's documentation; check current options before use.
Step 1: Identify the document
Record the format, specification version, author, timestamp, tool and product version the SBOM claims to describe. The 2026 CISA elements expect the format name and version, tool name and version, and generation context to be present [1]. If any are missing, note it now.
Step 2: Validate against the schema
For CycloneDX, use CycloneDX CLI, which returns a non-zero exit code on errors when asked to [2]:
cyclonedx validate --input-file bom.json --fail-on-errors
For SPDX 2.2 or 2.3, SPDX tools-python parses and validates the document [3]:
pyspdxtools -i sbom.spdx.json
A schema failure means consumers' tools may reject or misread the document. Fix it before anything else.
Step 3: Check required fields
For SPDX documents, the NTIA Conformance Checker tests the NTIA minimum elements by default, or CISA's 2024 framing baseline [4]:
sbomcheck sbom.spdx.json --comply fsct3-min
For CycloneDX or SPDX, sbomqs runs compliance profiles such as BSI TR-03183-2 and FSCT, and can list components missing a feature such as a version or supplier [5]:
sbomqs compliance --bsi-v2 sbom.json
sbomqs list sbom.json --feature comp_supplier --missing
No open-source checker named here tests the CERT-In list as a built-in profile, so map CERT-In's fields to the document's properties and check them with a script or a policy engine. Distinguish declared unknowns from silent gaps, as NTIA asks [6].
Step 4: Score quality
Run a quality score to compare SBOMs and set thresholds [5]:
sbomqs score sbom.json
Use the score as a gate for supplier intake and track it per supplier over time. Avoid features that upload the SBOM to an external service if the document is confidential.
Step 5: Verify integrity
- If the SBOM is signed, verify the signature. CycloneDX CLI includes sign and verify commands [2].
- Compute the hash of the delivered artefact and compare it with the hash recorded in the SBOM.
CERT-In recommends digitally signing shared SBOMs so recipients can confirm authenticity and detect tampering [7].
Step 6: Check accuracy against the artefact
Generate an independent SBOM from the delivered image or files and compare. For example, with Syft [8]:
syft <image> -o cyclonedx-json=./analysed.cdx.json
Then diff the two with CycloneDX CLI [2]:
cyclonedx diff supplied.cdx.json analysed.cdx.json --component-versions
Components found by analysis but missing from the supplied SBOM are questions for the supplier. CISA notes that analysed SBOMs can verify SBOMs from other sources [9].
Step 7: Run a vulnerability check
Confirm the SBOM is usable by scanning it, for example with Trivy [10] or Grype [11]:
trivy sbom sbom.json
grype sbom:./sbom.json
If components produce no matches because identifiers are missing, the SBOM will not support vulnerability management.
Step 8: Record the result
Store the SBOM as received, the validation outputs, the date and the decision (accepted, accepted with gaps, rejected). Request corrections from the supplier with the specific failures listed. Re-run steps 3 and 7 periodically, because vulnerability, patch-status and EOL information in the SBOM goes stale after delivery.
To automate the procedure, run steps 2 to 4 as pipeline gates for your own software, and steps 2 to 7 at supplier intake before the SBOM enters your inventory.
How IntelliXBOM helps
IntelliXBOM automates these checks on generation and intake: it validates CycloneDX and SPDX SBOMs against required-field policies including CERT-In's, flags missing and stale fields, and keeps validation results with each SBOM version as timestamped evidence.
Frequently asked questions
How do I check if an SBOM is valid?
First validate it against its format's schema with a tool such as CycloneDX CLI or SPDX tools-python. Then check required fields against your baseline, score its quality, verify integrity and compare it with an independent analysis of the artefact.
Is there a tool that checks CERT-In SBOM fields?
The open-source checkers described here offer NTIA, FSCT and BSI profiles rather than a built-in CERT-In profile. Map the 21 CERT-In fields to the document's properties and check them with a script or a policy-based platform.
Should SBOM validation run in CI/CD?
Yes. Running schema and field checks in the pipeline, with a non-zero exit code on failure, stops non-conforming SBOMs from being released. Apply the same checks when supplier SBOMs arrive.
Sources
- CISA Releases the 2026 SBOM Minimum ElementsFOSSAfossa.com/blog/cisa-releases-2026-minimum-sbom-elements/
- CycloneDX CLICycloneDX/cyclonedx-cli (GitHub)github.com/CycloneDX/cyclonedx-cli
- SPDX tools-pythonSPDX (GitHub)github.com/spdx/tools-python
- NTIA Conformance CheckerSPDX (GitHub)github.com/spdx/ntia-conformance-checker
- sbomqs, SBOM quality score and compliance checkssbomqs (GitHub)github.com/interlynk-io/sbomqs
- The Minimum Elements for a Software Bill of Materials (full report, PDF)NTIA, U.S. Department of Commercewww.ntia.gov/files/ntia/publications/sbom_minimum_elements_report.pdf
- Technical Guidelines on SBOM, QBOM & CBOM, AIBOM and HBOM, Version 2.0 (9 July 2025)CERT-In, Government of Indiawww.cert-in.org.in/PDF/TechnicalGuidelines-on-SBOM,QBOM&CBOM,AIBOM_and_HBOM_ver2.0.pdf
- Syft, CLI tool and library for generating SBOMsanchore/syft (GitHub)github.com/anchore/syft
- Types of Software Bill of Material (SBOM) Documents (2023)CISAwww.cisa.gov/sites/default/files/2023-04/sbom-types-document-508c.pdf
- Trivy documentation, SBOM as a scan targetTrivytrivy.dev/docs/latest/target/sbom/
- Grype, vulnerability scanner for container images, filesystems and SBOMsanchore/grype (GitHub)github.com/anchore/grype
Sources checked in September 2026. Regulations and guidance change; always refer to the issuing body’s current publication. This content is for general information and is not legal advice.