SBOM
An SBOM lists every software component in a product with version and supplier. Formats, minimum elements, what the Cyber Resilience Act requires and how to use one.
Updated This page as Markdown
In short
An SBOM (software bill of materials) is a machine-readable inventory of the software components in a product: name, version, supplier, unique identifiers and the dependencies between them. The common formats are SPDX and CycloneDX. The Cyber Resilience Act requires manufacturers to draw up an SBOM covering at least the top-level dependencies as part of vulnerability handling (Annex I Part II). An SBOM is useful only if it is complete, kept current and matched against vulnerability data continuously.
What is an SBOM?
A software bill of materials (SBOM) is a formal, machine-readable inventory of the components that make up a piece of software: open-source libraries, vendor SDKs, operating system packages, the bootloader, the RTOS, the crypto library. For every component it records at least the name, version, supplier and a unique identifier, plus the dependency relationships between components, and metadata about who created the SBOM and when. The analogy is the parts list that comes with physical products; the purpose is the same: when a part turns out to be faulty, you can find every product that contains it.
Two formats dominate. SPDX, maintained under the Linux Foundation and standardised as ISO/IEC 5962, and CycloneDX, an OWASP project standardised by Ecma. Both are produced by common build tools and consumed by vulnerability scanners. A companion document type, VEX (Vulnerability Exploitability eXchange), records whether a known vulnerability in a listed component is actually exploitable in the product.
Where is it defined?
The baseline is the NTIA report The Minimum Elements for a Software Bill of Materials (2021). It names the required data fields (supplier name, component name, version, other unique identifiers, dependency relationship, author of the SBOM data, timestamp), requires automation support through a standard format, and describes the practices around generation and distribution. CISA has continued that work.
In the EU the Cyber Resilience Act makes the SBOM a legal requirement for products with digital elements. Annex I Part II point 1 requires manufacturers to identify and document vulnerabilities and components contained in the product, including by drawing up an SBOM in a commonly used and machine-readable format covering at least the top-level dependencies. The SBOM belongs to the technical documentation (Annex VII). In Germany the BSI Technical Guideline TR-03183 Part 2 specifies the fields, formats and depth it expects, which is more detailed than the regulation itself.
What it means in practice
For application code built with a package manager, an SBOM is a build step. For embedded products it is the hard part of CRA compliance:
- Incomplete inventories. Yocto and Buildroot generate SPDX for the packages they build, but vendor SDKs, binary blobs, bootloaders, radio stacks and libraries copied into the source tree years ago are missing.
- Wrong versions. The SBOM says OpenSSL 3.0.x; the binary on the device identifies as 1.1.1. When we extract firmware in a hardware test, comparing the real binaries with the declared SBOM is one of the first things we do, and the two rarely match.
- Top-level only. The CRA minimum is the top-level dependencies, but most CVEs sit in transitive ones.
- A document, not a process. The SBOM is generated once for the technical file and never regenerated after the next firmware release. It needs to be rebuilt with every build and matched against vulnerability feeds continuously, with VEX statements for the matches you have assessed.
- No identifiers. Components listed by name only, without PURL or CPE, cannot be matched automatically.
Zyberum verifies SBOMs against extracted firmware, builds the vulnerability-handling process the CRA requires around them, and checks SBOM depth and format in CRA gap analyses for device manufacturers.
Common misunderstandings
An SBOM does not make a product secure; it makes it possible to know what is in it. It is not required to be public under the CRA; it must exist and be available to authorities, and customers increasingly ask for it in contracts. And the output of a binary scanner is an estimate of an SBOM, not the SBOM itself; the authoritative list comes from the build.
FAQ
Frequently asked questions
Does the Cyber Resilience Act require an SBOM?
Yes. Annex I Part II point 1 requires manufacturers to identify and document vulnerabilities and components in the product, including by drawing up an SBOM in a commonly used and machine-readable format that covers at least the top-level dependencies. The SBOM is part of the technical documentation (Annex VII) that market surveillance authorities can request. The regulation does not require manufacturers to publish it.
Which SBOM format should I use?
SPDX or CycloneDX; both are machine-readable, widely supported by build tools and scanners, and accepted by the BSI Technical Guideline TR-03183-2. Choose the one your toolchain produces natively and make sure every component carries a version and a unique identifier such as a package URL (PURL) or CPE, otherwise matching against vulnerability databases fails.
Is an SBOM the same as a vulnerability scan?
No. The SBOM is the inventory. A scanner matches that inventory against CVE data and produces a list of potentially affected components. A VEX (Vulnerability Exploitability eXchange) statement then records whether each match is actually exploitable in your product. Inventory, matching and assessment are three steps, and the CRA expects all three to be ongoing.
Sources
- Regulation (EU) 2024/2847 (Cyber Resilience Act), Annex I Part II and Annex VII
- NTIA: The Minimum Elements for a Software Bill of Materials (SBOM), 2021
- CISA: Software Bill of Materials (SBOM)
- BSI TR-03183: Cyber Resilience Requirements for Manufacturers and Products, Part 2: Software Bill of Materials (SBOM)
Related pages
- GlossaryCyber Resilience Act (CRA)The Cyber Resilience Act (Regulation (EU) 2024/2847) sets cybersecurity requirements for products with digital elements. Scope, duties, classes, 2026 and 2027 deadlines.
- GlossaryCVECVE (Common Vulnerabilities and Exposures) gives every public vulnerability one ID. How CVE records are created, what they contain and how to use them.
- InsightsCyber Resilience Act: What Manufacturers Must Do by 2027A practical guide to the EU Cyber Resilience Act: scope, product classes, deadlines, reporting duties and the concrete steps manufacturers should take now.
- InsightsVulnerability Management: A Process That Works in PracticeHow to set up vulnerability management that holds: sources, triage with CVSS and exploit data, SLAs by severity, SBOM, coordinated disclosure and the duties the CRA adds.
- GlossaryFirmware ExtractionFirmware extraction means getting the code and data out of a device for analysis. The methods from update files to chip-off, what attackers find, and how to make it hard.
- ServicesMake your products CRA-compliant, without slowing development.Get CRA-ready: gap analysis, secure development lifecycle, vulnerability handling, SBOM and penetration testing for products with digital elements.
