Software Bill of Materials (SBOM)
An SBOM is a formal, machine-readable inventory of all software components — including open-source libraries, third-party dependencies, and firmware packages — that make up a product. The EU Cyber Resilience Act requires manufacturers to maintain an SBOM as part of their technical documentation.
An SBOM is a formal, machine-readable inventory of all software components — including open-source libraries, third-party dependencies, and firmware packages — that make up a product. The EU Cyber Resilience Act requires manufacturers to maintain an SBOM as part of their technical documentation.
Technical SecurityWhat Is an SBOM?
A Software Bill of Materials (SBOM) is a structured, machine-readable list of every software component that contributes to a product — analogous to an ingredients list on food packaging. It records each component's name, version, supplier, licence, cryptographic hash, and relationship to other components. The three dominant SBOM formats are CycloneDX (OASIS standard, widely used in Europe), SPDX (Linux Foundation / ISO/IEC 5962), and SWID Tags (ISO/IEC 19770-2). CycloneDX v1.5+ additionally supports hardware components and vulnerability data (VEX), making it particularly well-suited for embedded and IoT product manufacturers subject to the CRA.
SBOM Requirements Under the CRA
Annex I Part II, §1 of the CRA requires manufacturers to identify and document components in their products, including third-party and open-source software. Article 13(3) requires this information to be maintained as part of technical documentation throughout the product support period. Practically, this means:
- An SBOM must be generated at build time and updated with each release.
- The SBOM must cover all components, including transitive dependencies.
- It must be available to market surveillance authorities on request.
- Manufacturers must monitor SBOM components against vulnerability feeds (CVE/NVD) to detect newly disclosed vulnerabilities affecting their products.
Public customer-facing SBOM disclosure is not explicitly required, but is increasingly expected by enterprise buyers.
Generating and Maintaining SBOMs
For most manufacturers, SBOM generation is integrated into the build pipeline:
- Source-level scanning — tools analyse package manifests (npm, Maven, pip, Cargo, Conan) to enumerate declared dependencies.
- Binary analysis — for firmware and compiled artefacts, binary SCA tools identify components not visible from source alone.
- SBOM signing — the generated SBOM document is signed to ensure authenticity and detect tampering.
- Continuous monitoring — the SBOM is submitted to a vulnerability intelligence feed; new CVEs matching component versions trigger triage workflows.
Key tools in the CycloneDX ecosystem include Syft, cdxgen, and Dependency-Track (monitoring). SPDX tooling includes SPDX Tools and FOSSology.
Common SBOM Mistakes
Manufacturers building SBOM programmes frequently encounter:
- Incomplete dependency graphs — capturing only direct dependencies misses transitive vulnerabilities, which account for the majority of supply chain risks.
- Static SBOMs — an SBOM generated once at initial release becomes inaccurate within weeks as dependencies change; automated regeneration per release is required.
- No monitoring — an SBOM that is generated but never checked against vulnerability feeds provides no operational value.
- Ignoring firmware components — OS kernels, bootloaders, and proprietary libraries embedded in firmware must be included; source-only SCA tools miss these.
- Wrong format for the audience — SPDX is preferred for licence compliance; CycloneDX is preferred for security operations and CRA conformity assessment.
CVD Portal makes Software Bill of Materials (SBOM) compliance straightforward.
Public CVD submission portal, acknowledgment tracking, Article 14 deadline alerts, and CSAF advisory generation. Free forever for EU manufacturers.
Start your free portalFrequently asked
Does the CRA require us to publish our SBOM publicly?+
The CRA requires the SBOM to be included in technical documentation and made available to market surveillance authorities on request. There is no explicit requirement for public publication. However, enterprise customers and procurement frameworks are increasingly mandating supplier SBOMs, and ENISA's guidance encourages transparency. Publishing a customer-facing SBOM is best practice for high-risk product categories.
How often should we update our SBOM?+
The SBOM should be regenerated with every software release that changes any dependency. In practice, this means integrating SBOM generation into the CI/CD pipeline as a mandatory build step. Additionally, even without a software release, the monitoring process should flag when a newly published CVE affects a component in the existing SBOM — this may trigger a patch release and SBOM update outside the normal release cycle.
What format should we use — CycloneDX or SPDX?+
Both formats are acceptable under the CRA. CycloneDX is recommended for manufacturers because it supports VEX (Vulnerability Exploitability eXchange) documents, hardware components, and integrates with security tooling commonly used in product security workflows. SPDX is preferred in contexts where licence compliance is the primary concern. Many organisations generate both formats from the same source data.
Related terms
Browse the full CRA Compliance Checklist
See how Software Bill of Materials (SBOM) fits into your complete CRA compliance programme.