Article partially generated by artificial intelligence.
TL;DR: An SBOM (software bill of materials) is a list of the libraries, modules and versions a product is built from. From 11 December 2027, the Cyber Resilience Act requires manufacturers of products with digital elements to draw up an SBOM in a commonly used, machine-readable format covering at least top-level dependencies. It does not have to be public, but it must be part of the technical documentation. For device makers it is also what makes the CRA’s 24-hour vulnerability reporting deadline, already in force, achievable.
This requirement comes from Annex I, Part II of the Cyber Resilience Act.
It must cover at least top-level dependencies and be machine-readable.
The most widely used formats are SPDX (ISO/IEC 5962:2021) and CycloneDX (ECMA-424).
Market surveillance authorities can request it; manufacturers do not have to publish it.
What is an SBOM and why does a manufacturer need one?
A bill of materials is to software what an ingredients list is to food. It shows which ready-made parts the software is built from: open-source libraries, supplier components, real-time operating systems, drivers. For each part it records the name, version, supplier and dependencies.
Manufacturers need a bill of materials for three reasons. First, the Cyber Resilience Act requires it. Second, without one you cannot quickly tell whether a new flaw in a popular library affects your product, and since 11 September 2026 an actively exploited vulnerability must be reported within 24 hours; we explain the CRA’s 24-hour reporting deadline separately. Third, customers covered by NIS2 increasingly ask suppliers for one as part of supply chain checks.
CRA SBOM requirements: what does the regulation say?
Under Regulation (EU) 2024/2847, manufacturers must identify and document the vulnerabilities and components in their products, including by drawing up a software bill of materials in a commonly used, machine-readable format covering at least the top-level dependencies. It belongs in the technical documentation that the manufacturer keeps and provides to market surveillance authorities on request.
The regulation does not prescribe a format, but in practice the choice is SPDX or CycloneDX. The NTIA minimum elements for an SBOM remain a good baseline for the data to include: supplier name, component name, version, unique identifiers, dependency relationships, author of the data and a timestamp.
SPDX or CycloneDX: which SBOM format?
SPDX is maintained by the Linux Foundation, is an international standard (ISO/IEC 5962:2021) and is strong on licensing. CycloneDX originated at OWASP and is security-focused: it handles vulnerability data well and supports VEX documents, in which a manufacturer explains that a given vulnerability does not affect the product. Both meet the “commonly used, machine-readable” requirement. The choice usually depends on your existing tools and what your customers expect.
SBOM tools and where device makers get stuck
For a web application, standard tools can generate a bill of materials from the package manager in minutes. Devices and machines are harder:
C and C++ firmware often has no package manager, and libraries are copied straight into the repository.
Chip vendors’ SDKs include binary components with incomplete descriptions.
Several product versions are in circulation, and each needs its own bill of materials.
Some software comes from subcontractors who do not supply a component list.
That is why it should be generated automatically on every build, not by hand once a year. CISA’s resources cover VEX and sharing SBOMs with customers.
A 13-month plan to December 2027
List your products with digital elements and the software versions you support.
Choose a format (SPDX or CycloneDX) and tools; mature open-source tools exist for generating and analysing SBOMs.
Add bill-of-materials generation to the build pipeline so every release has its own bill of materials.
Add by hand what tools miss: libraries copied into the code and binary SDK components.
Ask suppliers and subcontractors for SBOMs and make it a contractual duty.
Connect the bill of materials to vulnerability monitoring and decide who responds to alerts.
SBOM and VEX: how not to drown in alerts
The first time a bill of materials meets a vulnerability database, the result is usually a shock: hundreds of alerts for a single product. Most of them are not real threats. A library may contain a vulnerable function the product never calls, or the flaw may depend on a configuration the device does not use.
VEX (Vulnerability Exploitability eXchange) exists for exactly this. It is a document in which the manufacturer gives a status for each known vulnerability, such as “not affected”, “affected, fix in progress” or “fixed in version X”. VEX saves time for your team and for customers who receive it, because they do not have to analyse every alert themselves. CycloneDX supports VEX directly, and CISA’s materials describe minimum requirements for such documents.
Every “not affected” decision should have a documented rationale. If the vulnerability turns out to be exploited after all, the market surveillance authority will ask on what basis it was dismissed.
How to share an SBOM with customers and authorities
The Cyber Resilience Act does not require publishing it, but industrial customers, especially those covered by NIS2, increasingly ask for it during supplier assessments. Three models are common. First, it stays in the technical documentation and goes to authorities on request. Second, customers get it under a non-disclosure agreement, for example through a customer portal. Third, it is public, which mainly makes sense for open-source software or products where transparency is a selling point.
Whatever the model, the bill of materials should be tied to a specific product version and updated with every release. A two-year-old list for a device that has since received five updates is worse than none, because it gives a false sense of knowing what is inside.
Common SBOM implementation mistakes
Generating the bill of materials by hand once a year instead of automatically on every build.
Missing binary components and libraries copied into the repository because the tool did not detect them.
No owner: the list exists, but nobody responds to alerts about new vulnerabilities.
One bill of materials for a whole product family instead of one for each version in circulation.
No requirements for subcontractors, so part of the software stays a black box.
Each of these mistakes can be avoided when the process is designed. They are most expensive to fix under time pressure, for example on the day you have 24 hours to find out whether a new vulnerability affects a product sold three years ago.
SBOM in practice: a controller with a Wi-Fi module
A heating controller maker sells three generations of devices. The latest runs firmware on a real-time operating system, with a networking stack from the chip vendor and a dozen open-source libraries, including a TLS library. On top of that come a mobile app and a cloud backend that delivers updates.
The full picture needs several SBOMs: one for each supported firmware generation, one for the mobile app and one for the backend. Firmware is the hardest, because some libraries were copied into the repository years ago and the chip vendor’s SDK contains binaries. So the team generates SBOMs automatically in the build system and fills the gaps from SDK documentation and a manual review of third-party code folders.
The payoff comes with the first serious alert. When a critical vulnerability appears in the TLS library, the team establishes within minutes that it affects two of the three generations, checks whether the vulnerable function is used and prepares a VEX document for customers. Without one, the same analysis would mean searching repositories and asking former employees which library version went into which firmware release.
SBOM generation in your build pipeline, set up and maintained
Sanddev sets up automated bill-of-materials generation in the build pipeline, untangles dependencies in older codebases and connects it to vulnerability monitoring. See our approach to building SBOM generation into your build pipeline.
Frequently asked questions
What is an SBOM?
An SBOM (software bill of materials) is a list of the libraries, modules and versions a product is built from, with suppliers and dependencies. It lets a manufacturer check quickly whether a new vulnerability affects its product.
Does the Cyber Resilience Act require an SBOM?
Yes. From 11 December 2027, the Cyber Resilience Act requires manufacturers of products with digital elements to draw up a machine-readable SBOM covering at least top-level dependencies, as part of the technical documentation.
Does an SBOM have to be published?
No. The Cyber Resilience Act does not require publishing it. The manufacturer keeps the bill of materials in the technical documentation and provides it to market surveillance authorities on request, and may choose to share it with customers.
Which SBOM format should we use, SPDX or CycloneDX?
Both meet CRA requirements. SPDX is the ISO/IEC 5962:2021 standard and is strong on licensing; CycloneDX (ECMA-424) is security-focused and supports VEX documents. The choice depends on your tools and customers.
Which SBOM tools should a device maker use?
Mature open-source SBOM tools can generate SPDX or CycloneDX files from package managers and container images. For C and C++ firmware, expect to combine build-time generation with manual entries for copied libraries and binary SDK components.