CBOM validation: completeness and accuracy checks
A CBOM that parses is not necessarily a CBOM you can trust. Validation has layers: format, required fields, internal consistency, agreement with reality and coverage of the estate.
- Start with schema validation against the CycloneDX version the CBOM declares, using a tool such as the CycloneDX CLI.
- Then check required fields per asset type, for example CERT-In's minimum elements for algorithms, keys, protocols and certificates.
- Check reference integrity: certificates should point to real algorithm and key assets, and protocols to their cipher suites.
- Accuracy needs cross-checks against independent sources such as live TLS scans, HSM and KMS exports and the SBOM.
- CERT-In recommends periodic audits of CBOM completeness and accuracy and reviews at least quarterly.
Why validate
CERT-In's Version 2.0 guidelines recommend "periodic audits and assessments of the CBOM/QBOM ... to verify completeness, accuracy, and compliance" (rec. 8.4.1.10) [1]. Validation also matters for decisions: a CBOM that omits half the TLS endpoints will under-report weak protocols, and one with wrong key sizes will send remediation effort to the wrong places. Treat validation as a gate that each CBOM passes before it is published or accepted from a supplier.
Layer 1: format
Check that the document is valid against the schema of the CycloneDX version it declares. The CycloneDX CLI provides a validate command, along with diff, merge and convert, and can verify signed BOMs [2]. Common failures include values outside enumerations, for example, a primitive that is not one of the schema's values such as block-cipher, signature, hash or kemand dates that do not use the schema's date-time format [3].
Layer 2: required fields
Schema validity says little about content, because most CycloneDX fields are optional. Apply a field policy per asset type. CERT-In's Table 9 gives a baseline [1]:
| Asset type | Check that these are present | CycloneDX location |
|---|---|---|
| Algorithm | Name, primitive, mode (where applicable), crypto functions, classical security level, OID | algorithmProperties, oid |
| Key | id, state, size, creation date, activation date | relatedCryptoMaterialProperties |
| Protocol | Version, cipher suites | protocolProperties |
| Certificate | Subject, issuer, not valid before/after, signature algorithm reference, subject public key reference, format | certificateProperties |
The CycloneDX mappings follow the property names in the 1.6 schema [3]. Report missing fields per asset, not just a pass or fail for the document, so that producers know what to fix.
Layer 3: internal consistency
- Reference integrity. Every
signatureAlgorithmRef,subjectPublicKeyRefandalgorithmRefshould resolve to an asset in the same BOM [3]. - Plausible values. A certificate's Not Valid Before should precede Not Valid After; a key's activation date should not precede its creation date; the classical security level should match the algorithm and size.
- Valid states. Key states should be one of the lifecycle states, and consistent with dates, a key marked active past its expiration date deserves a question. The schema's six key states match those defined in NIST SP 800-57 Part 1 [6].
- No duplicates. The same certificate fingerprint or key identifier should appear once, referenced where it is used.
Layer 4: accuracy against reality
Compare the CBOM with independent evidence:
- Live endpoints. Re-scan a sample of TLS endpoints with testssl.sh or SSLyze and compare protocols, cipher suites and certificates with what the CBOM claims [4] [5].
- Key stores. Reconcile key assets with HSM and KMS exports by key identifier.
- SBOM. If the SBOM lists a cryptographic library, the CBOM should contain the algorithms that library provides to the application, or explain why not.
- Policy results. A CBOM that shows no deprecated algorithms at all in a large legacy estate may be incomplete rather than clean; spot-check against known baselines such as NIST SP 800-131A Rev. 2 [7].
Layer 5: coverage and freshness
- Coverage. Compare the applications, hosts and products with a CBOM against the asset register. Uncovered items are gaps, not zero-risk.
- Freshness. Check the metadata timestamp. CERT-In recommends scheduled reviews "at least quarterly" [1].
- Authorship. Record which tool or supplier produced each CBOM so quality issues can be traced.
Validating supplier CBOMs
Apply the same layers to CBOMs you receive, and write the required field policy into contracts so that suppliers can validate before delivery. Reject or return CBOMs that fail format or required-field checks; raise accuracy discrepancies as findings with the supplier. See CBOM procurement requirements.
How IntelliXBOM helps
IntelliXBOM validates CBOMs against required-field policies such as CERT-In's minimum elements and reports which assets are missing which fields. Version history and diffs show what changed between submissions, and correlation with vulnerabilities, end-of-life data and business services helps teams confirm that the inventory reflects what is deployed.
Frequently asked questions
How do I validate a CBOM?
Check it in layers: schema validity for its CycloneDX version, required fields per asset type, internal consistency of references and dates, accuracy against live scans and key stores, and coverage of the estate. Tools such as the CycloneDX CLI handle the schema step.
Is schema validation enough?
No. Most CycloneDX fields are optional, so a schema-valid CBOM can still be missing key sizes, certificate dates or cipher suites. A required-field policy, such as one based on CERT-In's Table 9, is needed on top.
How can I tell if a CBOM is complete?
Compare the systems covered by the CBOM with your asset register and look for gaps. Cross-check samples against live scans and key store exports; an unexpectedly clean result in a legacy estate often signals missing coverage.
Sources
- 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
- CycloneDX CLIOWASP CycloneDX (GitHub)github.com/CycloneDX/cyclonedx-cli
- CycloneDX v1.6 JSON Reference (bom-1.6 schema)OWASP CycloneDXcyclonedx.org/docs/1.6/json/
- testssl.shtestssl.sh project (GitHub)github.com/testssl/testssl.sh
- SSLyzeSSLyze project (GitHub)github.com/nabla-c0d3/sslyze
- SP 800-57 Part 1 Rev. 5, Recommendation for Key Management: Part 1 – General (May 2020)NISTcsrc.nist.gov/pubs/sp/800/57/pt1/r5/final
- SP 800-131A Rev. 2, Transitioning the Use of Cryptographic Algorithms and Key Lengths (March 2019)NISTcsrc.nist.gov/pubs/sp/800/131/a/r2/final
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.