SBOM: the software bill of materials required by the CRA
An SBOM is the list of ingredients in a piece of software. The Cyber Resilience Act makes it mandatory for manufacturers: minimum content, SPDX and CycloneDX formats, VEX, and how buyers use it to manage vulnerabilities and assess suppliers.
An SBOM (software bill of materials) is the formal, machine-readable inventory of every component that makes up a piece of software, with their versions, suppliers and dependencies. The Cyber Resilience Act (CRA) makes it mandatory for manufacturers of digital products sold in the European Union. For their customers, it is the tool that quickly answers the question every new flaw raises: "am I affected?". This article is part of our Cyber Resilience Act series.
What is an SBOM (software bill of materials)?
The term comes from manufacturing, where the bill of materials lists the parts of a product. Applied to software, it lists the open-source libraries, commercial modules and other building blocks a vendor has assembled to build its application. Modern software often contains hundreds, many of them not chosen directly by the vendor: each library brings its own dependencies, which bring others.
We therefore distinguish direct dependencies (top-level), which the vendor explicitly included, from transitive dependencies, pulled in indirectly. Bad surprises often hide in the latter.
An SBOM is only useful if it is machine-readable: a hand-written spreadsheet cannot be automatically matched against public vulnerability databases across thousands of components. Hence the importance of standard formats, covered below.
Why the SBOM became essential
The turning point came in December 2021 with Log4Shell (CVE-2021-44228), a critical flaw in Log4j, a Java logging library found in countless products. The CERT-FR alert, published on 10 December 2021, advised checking internal applications too and contacting the developer or vendor of each product to find out whether it was exposed. Not knowing what was inside their software, many organisations had to question their suppliers one by one. Google's security team counted, as of 16 December 2021, 35,863 Java packages on Maven Central depending on Log4j (over 17,000 for the vulnerable log4j-core module alone, as of 19 December), and found that most depended on it only indirectly.
Since then, attacks on the software supply chain have multiplied, and authorities have made the SBOM a pillar of transparency. In the United States, Executive Order 14028 of May 2021 made it part of the security of software bought by the federal government. In Europe, the CRA makes it mandatory. In its June 2026 adoption survey, ENISA found the regulation acted as an "accelerator": organisations are investing in automated SBOM generation and in integrating it into the development lifecycle.
Minimum content of an SBOM
NTIA minimum elements (2021)
The first reference is the document published on 12 July 2021 by NTIA, an agency of the US Department of Commerce. It sets seven data fields: supplier, component name, version, other unique identifiers, dependency relationships, SBOM author and timestamp. It also requires an automatable format and practices: update frequency, depth (at least top-level dependencies), known unknowns, distribution.
The 2026 update, co-signed by ANSSI
At the end of July 2026, CISA published with the NSA, the FBI and fifteen foreign agencies, including France's ANSSI, Germany's BSI and Italy's ACN, a revised version: the 2026 Minimum Elements for a SBOM. It separates SBOM metadata from component data and adds, among other things, the component's cryptographic hash and algorithm, the licence, the generation tool name and version, the generation context (the point in the lifecycle at which the SBOM was produced) and the author's signature. It no longer settles for top-level depth: it covers all components, including transitive ones.
BSI technical guideline TR-03183-2
In Europe, the most detailed reference is BSI's TR-03183-2, designed to prepare manufacturers for the CRA (version 2.1.0 of 2025, regularly updated). It requires at least CycloneDX 1.6 or SPDX 3.0.1, in JSON or XML, and lists for each component: creator, name, version, filename, dependencies, licences, SHA-512 hash and a few technical properties. It requires dependencies to be resolved recursively and forbids including vulnerability information, which belongs in other documents (CSAF or VEX).
| Reference | Status | Depth | Main contributions |
|---|---|---|---|
| CRA, Annex I | Legal obligation (EU), 11 December 2027 | At least top level | Commonly used, machine-readable format |
| NTIA (2021) | US guidance | At least top level | Seven basic fields, distribution practices |
| CISA and partners (2026) | International guidance, co-signed by ANSSI and BSI | All components | Hash, licence, tool, generation context |
| BSI TR-03183-2 | German technical guideline | Recursive | Detailed mandatory fields, SHA-512, format versions |
SBOM formats: SPDX, CycloneDX and VEX
SPDX
SPDX (Software Package Data Exchange), backed by the Linux Foundation, was born for open-source licence compliance. Its version 2.2.1 is standardised as ISO/IEC 5962:2021, and version 3 extended the format to security.
CycloneDX
CycloneDX, an OWASP flagship project, was designed from the outset for security and supply chain risk management. It is standardised by Ecma International as ECMA-424. It can also describe services, hardware and AI models.
Both formats are recognised by all the guides above; ENISA's December 2025 analysis recommends using their latest version. The choice depends mostly on the tools in your development pipeline and your customers'.
VEX: saying whether a flaw is exploitable
An SBOM shows that a component is present, not that it is exploitable. A vulnerable library may be shipped without the faulty function ever being called. VEX (Vulnerability Exploitability eXchange) fills that gap: it is a manufacturer statement that, for a given vulnerability and product, assigns one of the four statuses defined by CISA: not affected, affected, fixed or under investigation, with a justification when the product is not affected. VEX can be expressed in CycloneDX or in the CSAF security advisory format, which BSI recommends.
SBOM and the CRA: what Annex I requires
Part II of Annex I of Regulation (EU) 2024/2847 lists the vulnerability handling requirements. Its first point requires the manufacturer to identify and document vulnerabilities and components contained in the product, "including by drawing up a software bill of materials in a commonly used and machine-readable format" covering at the very least the top-level dependencies of the product.
Several provisions complete this requirement:
- Technical documentation: Annex VII mentions the SBOM in the description of vulnerability handling processes (point 2(b)) and provides for it to be handed to the market surveillance authority on reasoned request (point 8).
- Harmonised format to come: Article 13(24) allows the Commission to specify the format and elements of the SBOM by implementing act. As of 28 September 2026, to our knowledge no such act had been adopted; the forthcoming European standard on vulnerability handling, being prepared at CEN-CENELEC, may also specify its content.
- Dependency assessment: Article 13(25) allows authorities to request the SBOMs of certain product categories to measure the Union's dependency on components, especially open-source ones.
- Timeline: the obligation applies to products placed on the market from 11 December 2027. The SBOM must be kept up to date during the support period and retained with the technical documentation.
The legal minimum, top level, falls short of technical guides that cover all dependencies. Yet the animation above shows why it matters: with Log4Shell, the vulnerable library was most often a transitive dependency. An SBOM limited to the bare minimum would not have shown it. The SBOM also supports the CRA's other obligations, such as reporting actively exploited vulnerabilities and the stricter conformity assessment for important and critical products.
Who gets access to the SBOM?
The CRA does not make the SBOM a public document. Recital 77 says so explicitly: manufacturers "should not be obliged to make the SBOM public". In practice:
- market surveillance authorities (ANFR in France, according to ANSSI) can require it during a check;
- notified bodies see it when they review the technical documentation;
- users get access only if the manufacturer decides so: the instructions must then say where to find it (Annex II, point 9).
For buyers, access to the SBOM is therefore a matter of contract. Because the SBOM reveals part of the product's architecture, ENISA recommends tiered access (public, authenticated customer, privileged), with access logging. Provide for it in your contracts, under a non-disclosure agreement if needed.
How buyers use an SBOM
Managing vulnerabilities
Imported into a software composition analysis or vulnerability management tool, your suppliers' SBOMs are continuously matched against public databases (NVD, CERT-FR advisories, CISA's Known Exploited Vulnerabilities catalogue). When a flaw is published, you know immediately which products contain it, and the supplier's VEX tells you whether it is exploitable. This is the mechanism shown in the animation.
Assessing suppliers
A vendor's ability to produce a complete, up-to-date SBOM in a standard format says a lot about the maturity of its development. It belongs in your vendor security questionnaire and your third-party risk management. An SBOM also reveals weak signals: components abandoned by their maintainers, very old versions, licences incompatible with your use.
Contracting
In your contracts or your security assurance plan, provide for:
- delivery of an SBOM with each major release, in SPDX or CycloneDX, covering transitive dependencies;
- VEX statements or CSAF advisories when a significant vulnerability affects a component;
- a notification deadline when an exploited vulnerability affects the product;
- confidentiality terms for the SBOM.
For entities subject to NIS 2 or DORA, which must manage their suppliers' security (see our article on NIS 2 and DORA third-party requirements), these clauses provide concrete evidence of due diligence.
Limits of the SBOM
- A snapshot: an SBOM describes one specific version. If it is not regenerated with each release, it becomes wrong.
- Variable quality: according to ENISA, generation tools do not always interpret specifications the same way or interoperate reliably. Two tools may produce two different SBOMs for the same software.
- Imperfect identifiers: matching a component with a vulnerability requires reliable identifiers (purl, CPE), often missing or ambiguous, leading to false positives and misses.
- No exploitability verdict: without VEX, an SBOM triggers many irrelevant alerts.
- Blind spots: code copied into a project without a package manager, firmware and online services used by the product are hard to inventory.
- A tool, not a protection: as ENISA points out, the SBOM is a data layer; it only helps when built into a maintained vulnerability management process.
These limits do not reduce its value: without an SBOM, "am I affected?" has no quick answer. To organise the collection of this information from your suppliers, see our vendor risk management module.
Summary
A machine-readable list of ingredients
An SBOM lists a piece of software's components, their versions, suppliers and dependencies, in a standard format (SPDX or CycloneDX) that tools can match against vulnerability databases.
Mandatory for manufacturers under the CRA
Annex I requires an SBOM covering at least top-level dependencies. It is part of the technical documentation, handed to authorities on request; the manufacturer does not have to publish it.
A lever for buyers
Requested from suppliers and complemented by VEX statements, an SBOM lets you know within minutes whether a flaw affects you, instead of waiting for their answers.
Frequently asked questions
What is an SBOM?
An SBOM (software bill of materials) is the formal, machine-readable inventory of the components that make up a piece of software: open-source libraries, commercial modules, with their version, supplier, identifiers and dependency relationships. It plays the same role for software as the ingredient list on a food product.
Is an SBOM mandatory under the Cyber Resilience Act?
Yes, for manufacturers of products with digital elements. Annex I, Part II, point 1 of Regulation (EU) 2024/2847 requires them to identify and document components, including by drawing up an SBOM in a commonly used, machine-readable format covering at least top-level dependencies. The obligation applies to products placed on the market from 11 December 2027.
Must the manufacturer publish its SBOM?
No. Recital 77 of the CRA states that manufacturers are not obliged to make the SBOM public. It is part of the technical documentation, which the market surveillance authority may request with a reasoned request. If the manufacturer chooses to make it available to users, the instructions must say where to find it.
What is the difference between SPDX and CycloneDX?
They are the two most widespread SBOM formats. SPDX, backed by the Linux Foundation, was born for licence compliance and standardised as ISO/IEC 5962:2021. CycloneDX, an OWASP project standardised by Ecma International (ECMA-424), was designed for security. Both are accepted by the reference guides, including BSI technical guideline TR-03183-2.
What is VEX?
VEX (Vulnerability Exploitability eXchange) is a statement that accompanies the SBOM and says, for a given vulnerability, whether the product is actually affected: not affected, affected, fixed or under investigation. It avoids treating as urgent flaws that sit in a component but cannot be exploited in the product.
What does an SBOM contain at a minimum?
According to the minimum elements published by NTIA in 2021: the supplier, the component name and version, other unique identifiers, dependency relationships, the SBOM author and the timestamp. The update published at the end of July 2026 by CISA with ANSSI, BSI and other agencies adds, among other things, the cryptographic hash, the licence, the tool and the generation context.
Sources (16)
- EUR-Lex — Règlement (UE) 2024/2847 (Cyber Resilience Act) : considérant 77, article 13, annexe I partie II point 1, annexe II point 9, annexe VII
- NTIA — The Minimum Elements for a Software Bill of Materials, 12 juillet 2021
- CISA et partenaires (dont ANSSI et BSI) — 2026 Minimum Elements for a Software Bill of Materials, juillet 2026
- ASD's ACSC — Présentation des Minimum Elements 2026 et liste des agences coautrices
- BSI — TR-03183-2, Cyber Resilience Requirements, Part 2 : Software Bill of Materials, version 2.1.0
- ENISA — SBOM Landscape Analysis, Towards an Implementation Guide, décembre 2025
- ENISA — SBOM Adoption State of Play 2026, 9 juin 2026
- SPDX (Linux Foundation)
- ISO/IEC 5962:2021 — SPDX Specification V2.2.1
- OWASP CycloneDX
- Ecma International — ECMA-424 (CycloneDX)
- CISA — Minimum Requirements for Vulnerability Exploitability eXchange (VEX), avril 2023
- OASIS — Common Security Advisory Framework (CSAF) 2.0
- NIST NVD — CVE-2021-44228 (Log4Shell)
- CERT-FR — CERTFR-2021-ALE-022, Vulnérabilité dans Apache Log4j
- Google Security Blog — Understanding the Impact of Apache Log4j Vulnerability, 17 décembre 2021
A platform and service that adapt to you
Our platform is designed for fine-tuned configuration and broad adaptability to your needs.