SBOM Quality Checks Reference
July 1, 2026 ยท View on GitHub
This reference document describes all quality checks performed by sbomqs, organized by category.
Check Categories
- NTIA-minimum-elements: Compliance with NTIA's minimum element guidelines
- Structural: SBOM format and specification compliance
- Semantic: Correctness and validity of SBOM field meanings
- Quality: Data completeness and accuracy metrics
- Sharing: Distribution and consumption readiness
- BSI: German BSI TR-03183-2 compliance checks (v1.1, v2.0, v2.1)
Scoring Methodology
- Each quality check has equal weight with a score range of 0.0 - 10.0
- Checks applied to lists average scores across all elements
- Category scores are averaged across all checks in that category
- Overall score is the weighted average of all enabled categories
Quality Checks by Category
NTIA Minimum Elements
| Check ID | Description | Required |
|---|---|---|
comp_with_name | Components have names | Yes |
comp_with_supplier | Components have supplier names | Yes |
comp_with_uniq_ids | Components have unique identifiers | Yes |
comp_with_version | Components have versions | Yes |
sbom_authors | SBOM has author information | Yes |
sbom_creation_timestamp | SBOM has creation timestamp | Yes |
sbom_dependencies | Dependencies are documented | Yes |
Structural Checks
| Check ID | Description | Impact |
|---|---|---|
spec_compliant | Valid SPDX/CycloneDX specification | Critical |
spec_parsable | SBOM can be parsed without errors | Critical |
spec_file_format | Supported file format (JSON, XML, etc.) | High |
sbom_required_fields | All required spec fields present | High |
Semantic Checks
| Check ID | Description | Impact |
|---|---|---|
comp_valid_licenses | Valid SPDX expression syntax (accepts LicenseRef-*) | High |
comp_spdx_listed_license | SPDX standard listed licenses only | High |
comp_with_checksums | Components have integrity checksums | Medium |
comp_with_primary_purpose | Component type/purpose specified | Low |
sbom_with_primary_component | Primary component identified | Medium |
Quality Checks
| Check ID | Description | Impact |
|---|---|---|
comp_with_cpes | CPE identifiers for vulnerability lookup | High |
comp_with_purls | Package URLs for ecosystem identification | High |
comp_with_multi_vuln_lookup_id | Multiple vulnerability identifiers | Medium |
comp_with_source_code_uri | Source code repository links | Medium |
comp_with_executable_uri | Binary/executable download locations | Low |
comp_no_deprecated_licenses | No deprecated license usage | Medium |
comp_no_restrictive_licenses | No highly restrictive licenses | Medium |
Sharing Checks
| Check ID | Description | Impact |
|---|---|---|
sbom_sharable | SBOM has unencumbered license | High |
sbom_with_uri | SBOM has unique identifier/namespace | Medium |
Component-Based Features
Features that evaluate individual components:
comp_with_name: Component has a namecomp_with_version: Component has a versioncomp_with_supplier: Component has supplier informationcomp_with_uniq_ids: Component has unique identifierscomp_valid_licenses: Valid SPDX expression syntax (accepts LicenseRef-*)comp_spdx_listed_license: SPDX standard listed licenses onlycomp_with_any_vuln_lookup_id: CPE or PURL presentcomp_with_deprecated_licenses: Uses deprecated licensescomp_with_multi_vuln_lookup_id: Both CPE and PURL presentcomp_with_primary_purpose: Component purpose specifiedcomp_with_restrictive_licenses: Uses restrictive licensescomp_with_checksums: Has integrity checksumscomp_with_licenses: Has license informationcomp_with_checksums_sha256: SHA-256 checksum presentcomp_with_source_code_uri: Source repository linkcomp_with_source_code_hash: Source code integrity hashcomp_with_executable_uri: Binary download locationcomp_with_associated_license: Associated license presentcomp_with_concluded_license: Concluded license specifiedcomp_with_declared_license: Declared license specified
SBOM-Based Features
Features that evaluate document-level properties:
sbom_creation_timestamp: Creation timestamp presentsbom_authors: Author information includedsbom_with_creator_and_version: Creator tool and versionsbom_with_primary_component: Primary component identifiedsbom_dependencies: Dependency relationships documentedsbom_sharable: Has shareable licensesbom_parsable: Can be parsed successfullysbom_spec: Valid specification formatsbom_spec_file_format: Supported file formatsbom_spec_version: Specification versionspec_with_version_compliant: Version compliancesbom_with_uri: Has unique URI/namespacesbom_with_vuln: Contains vulnerability datasbom_build_process: Build process documentedsbom_with_bomlinks: External SBOM references
Remediation Guidelines
Critical Issues (Fix Immediately)
- Missing component versions - Required for vulnerability scanning
- No unique identifiers - Prevents component tracking
- Invalid specification format - Blocks SBOM usage
High Priority Issues
- Missing supplier information - Supply chain transparency
- No license information - Legal compliance risk
- Missing checksums - Integrity verification
Medium Priority Issues
- No CPE/PURL identifiers - Limited vulnerability matching
- Missing dependency relationships - Incomplete understanding
- No source code links - Reduced transparency
Low Priority Issues
- Missing build information - Process documentation
- No external references - Limited context
- Component purpose not specified - Usage clarity
Custom Configuration
To customize which checks are performed, generate a configuration file:
sbomqs generate features > custom-checks.yaml
Edit the file to enable/disable specific checks and adjust weights, then use:
sbomqs score sbom.json --configpath custom-checks.yaml
See Also
- Compliance Standards Reference - Detailed compliance mappings
- Score Command - How to run quality checks
- Customization Guide - Creating custom profiles