---
title: "SBOM and the EU Cyber Resilience Act (CRA) – What Software Vendors Need to Know"
description: "The EU Cyber Resilience Act makes SBOMs mandatory for software products sold in Europe starting December 2027, with fines up to €15 million for non-compliance. Here's what software vendors need to know and how to prepare."
url: "https://safedep.io/blog/sbom-and-eu-cra-cyber-resilience-act"
author: "Arunanshu Biswas"
published: "2025-06-13"
---

# SBOM and the EU Cyber Resilience Act (CRA) – What Software Vendors Need to Know

The EU Cyber Resilience Act (CRA) -- [Regulation (EU) 2024/2847][eu-cra-law] --
makes an SBOM mandatory for every "product with digital elements" sold in
Europe. From 11 December 2027, manufacturers (including software publishers)
must generate a machine-readable SBOM covering at least top-level dependencies,
keep it up to date, and supply it to market-surveillance authorities on request.
Non-compliance can
[trigger fines of up to €15 million or 2.5% of global turnover][non-compliance-fines]. This post unpacks what the CRA really requires,
compares it with the
US SBOM playbook, answers four practitioner questions, and shows where SafeDep’s
open-source tool Vet slots in.

[eu-cra-law]: https://eur-lex.europa.eu/eli/reg/2024/2847/oj/eng
[non-compliance-fines]: https://eur-lex.europa.eu/eli/reg/2024/2847/oj/eng#:~:text=amendment%20affecting%20them.-,2.%C2%A0%C2%A0%C2%A0Non%2Dcompliance%20with%20the%20essential%20cybersecurity%20requirements%20set%20out%20in,worldwide%20annual%20turnover%20for%20the%20preceding%20financial%20year%2C%20whichever%20is%20higher.,-4.%C2%A0%C2%A0%C2%A0The%20supply

## Introduction

The European Union’s [Cyber Resilience Act (CRA)][cra-short] is a new regulation
aimed at improving the cybersecurity of products with digital elements. It
imposes mandatory security requirements on hardware and software products,
requiring manufacturers (and others who place products on the EU market) to
ensure security throughout the product’s lifecycle. From IoT gadgets to software
applications, the CRA seeks to address the current inadequate security in many
products and the lack of timely updates. Crucially for software vendors, the CRA
introduces an obligation to produce a **Software Bill of Materials (SBOM)** for
products: essentially an "ingredients list" of software components. This
matters because it pushes vendors to maintain transparency about third-party
components and known vulnerabilities, which in turn helps regulators and
customers trust that products are built and maintained securely.

[cra-short]: https://digital-strategy.ec.europa.eu/en/policies/cyber-resilience-act

## CRA Legislative Timeline

To understand the CRA’s journey and compliance deadlines, let’s look at the key
milestones from proposal to enforcement. The table below highlights the
legislative timeline of the CRA and when its provisions kick in:

| **Date**        | **Milestone**                                                                                                                                                                                                                                               |
| --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **15 Sep 2022** | European Commission proposes the Cyber Resilience Act.                                                                                                                                                                                                      |
| **1 Dec 2023**  | [Political agreement reached between EU lawmakers][cra-agreement] on final CRA text. Open-source exemptions introduced (e.g. concept of "open source steward") after community feedback.                                                                    |
| **March 2024**  | European Parliament formally approves the CRA.                                                                                                                                                                                                              |
| **10 Oct 2024** | [EU Council adopts][cra-eu-adoption] the CRA regulation.                                                                                                                                                                                                    |
| **10 Dec 2024** | CRA published in the EU Official Journal; **enters into force** 20 days later (Dec 30, 2024).                                                                                                                                                               |
| **11 Sep 2026** | **Early obligations start** - certain CRA provisions (e.g. vulnerability reporting requirements) become mandatory 21 months after entry into force. Manufacturers must be ready to report exploited vulnerabilities to EU authorities (ENISA) by this date. |
| **11 Dec 2027** | **Full enforcement** - All CRA requirements (including SBOM provisions) apply after a 36-month transition. Products placed on the EU market from this date must fully comply (or else be barred from the market).                                           |

[cra-agreement]: https://en.wikipedia.org/wiki/Cyber_Resilience_Act#:~:text=effect%20on%20open%20source%20software,8
[cra-eu-adoption]: https://openssf.org/public-policy/eu-cyber-resilience-act/#:~:text=The%20Cyber%20Resilience%20Act%20,market%20to%20follow%20this%20regulation

The timeline allows a three-year transition, so organizations have until
December 2027 to achieve full compliance, with some requirements (notably
vulnerability disclosure processes) kicking in earlier in September 2026.

## SBOM in the Cyber Resilience Act -- What the Law Says

One of the most significant elements of the CRA for software producers is the
Software Bill of Materials (SBOM) requirement. Here’s a breakdown of where and
how SBOMs are addressed in the text of the CRA:

- **Definition:** The [CRA defines a **"software bill of materials"**][cra-definition]
  as "a formal record containing details and supply chain relationships of
  components included in the software elements of a product with digital
  elements". In other words, an SBOM enumerates the software components
  (libraries, modules, packages, etc.) that make up a product.

- **Obligation to produce an SBOM:** According to
  [Article 13 §1(h) + Annex I Part II (1)][cra-manufacturer-sbom],
  Manufacturers must "identify and document components contained in
  the product, including by drawing up a software bill of materials in a commonly
  used and machine-readable format covering at least the top-level dependencies."

  This essentially requires an SBOM that lists the direct software components
  your product uses.

  Notably, listing only top-level dependencies is the minimum. You are not
  explicitly required by law to include nested sub-components, which is a relief
  for vendors concerned about disclosing deep dependency trees. (However, as
  we’ll discuss, including more detail can be good practice for security.)

- **No public disclosure requirement:** Importantly, [the CRA explicitly states][cra-no-pub-disclosure]
  that "Manufacturers should not be obliged to make the SBOM public". The EU
  lawmakers acknowledge that SBOMs can contain sensitive information (e.g.
  revealing proprietary components or potential vulnerabilities) and therefore
  stop short of requiring you to publish them openly.

- **Possible future standards for SBOMs:** The European Commission is [empowered
  to specify SBOM formats][sbom-formats] and elements more precisely via
  implementing acts. [CEN/CENELEC workshop notes (Apr 2025)][cenelec-workshop] confirm that a draft
  horizontal standard will flesh out Annex I requirements—including the SBOM
  schema—by mid-2026. For now, the law doesn’t dictate a specific format like
  **SPDX** or **CycloneDX**, but it does require a "commonly used, machine-readable
  format".

  The key takeaway is to ensure your SBOM is structured and digital (not just a
  PDF list of components)

- **Provide SBOM to authorities on request:** Market surveillance authorities in
  the EU [can request the SBOM to check compliance][sbom-compliance-req].
  Manufacturers must be able to supply the SBOM upon a "reasoned request" from
  regulators. This emphasizes that SBOMs are primarily seen as a regulatory
  transparency tool.

  You don’t have to automatically share them with each customer, but you do need
  them ready for inspection.

- **Security focus:** [The CRA’s text][cra-track-vuln] makes clear that SBOMs
  are intended to improve cybersecurity. The recitals note that an SBOM "helps
  manufacturers and users track newly emerged vulnerabilities and cybersecurity
  risks". The law positions SBOMs as a tool to enable **situational awareness for
  authorities** and facilitate **vulnerability management** (e.g., if a new
  critical flaw in a library is announced, those with SBOMs can quickly identify
  if they use that library).

[cra-definition]: https://eur-lex.europa.eu/eli/reg/2024/2847/oj#:~:text=%E2%80%98software%20bill%20of%20materials%E2%80%99%20means,of%20a%C2%A0product%20with%20digital%20elements
[cra-manufacturer-sbom]: https://eur-lex.europa.eu/eli/reg/2024/2847/oj#:~:text=identify%20and%20document%20vulnerabilities%20and%20components%20contained%20in%20products%20with%20digital%20elements%2C%20including%20by%20drawing%20up%20a%C2%A0software%20bill%20of%20materials%20in%20a%C2%A0commonly%20used%20and%20machine%2Dreadable%20format%20covering%20at%20the%20very%20least%20the%20top%2Dlevel%20dependencies%20of%20the%20products%3B
[cra-no-pub-disclosure]: https://eur-lex.europa.eu/eli/reg/2024/2847/oj#:~:text=Manufacturers%20should%20not%20be%20obliged%20to%20make%20the%20SBOM%20public.
[sbom-formats]: https://anchore.com/sbom/eu-cra/#:~:text=While%20the%20CRA%20does%20not,and%20elements%20of%20the%20SBOM
[cenelec-workshop]: https://www.cencenelec.eu/media/CEN-CENELEC/Events/Events/2025/2025-04-08_cyber-resilience-act-and-the-horizontal-standards-workshop.pdf
[sbom-compliance-req]: https://eur-lex.europa.eu/eli/reg/2024/2847/oj#:~:text=where%20applicable%2C%20the%20software%20bill,requirements%20set%20out%20in%20Annex%C2%A0I
[cra-track-vuln]: https://eur-lex.europa.eu/eli/reg/2024/2847/oj#:~:text=by%20drawing%20up%20an%20SBOM,emerged%20vulnerabilities%20and%20cybersecurity%20risks

## Scope of CRA -- Who Is Covered (and Who Is Exempt)

The [scope of the CRA is broad][cra-scope] -- it covers virtually all
**"products with digital elements"** that are placed on the EU market, whether
hardware or software, if they have any direct or indirect connectivity to a
device or network. This includes obvious items like computers, IoT devices, and
software packages, but also [less-obvious products][cra-scope-fossa] like
firmware, operating systems, developer libraries distributed commercially, and
so on. **If you are a manufacturer or developer selling a digital product in
Europe, the CRA likely applies to you.**

That said, the law carves out some important exemptions and clarifications:

- **Open-Source Software (non-commercial):** The [CRA does not generally
  apply][cra-oss-exception] to free and open-source software that is not marketed
  as part of a commercial activity. This means open-source projects or developers
  publishing code for free, without any commercial sale or support, are outside
  the scope. The rationale is to avoid discouraging open-source collaboration.

  However, if an open-source component is integrated into a commercial product,
  the manufacturer of that product is responsible for its security (even though
  the open-source author isn’t directly liable).

  > Furthermore, the supply of products with digital elements qualifying as free
  > and open-source software components intended for integration by other
  > manufacturers into their own products with digital elements should be
  > considered to be making available on the market only if the component is
  > monetised by its original manufacturer.

  The [final text even introduces][cra-oss-steward] the concept of “open-source
  software stewards” for cases where organizations support open-source projects
  in a structured way, but these stewards have only light obligations (like
  maintaining a security policy) and do not bear the same responsibilities as
  manufacturers.

  > Taking into account the importance for cybersecurity of many products with
  > digital elements qualifying as free and open-source software that are
  > published, but not made available on the market within the meaning of this
  > Regulation, legal persons who provide support on a sustained basis for the
  > development of such products which are intended for commercial activities, and
  > who play a main role in ensuring the viability of those products (open-source
  > software stewards), should be subject to a light-touch and tailor-made
  > regulatory regime.

- **Highly regulated sectors:** [Products][cra-regulated-exception] that are
  already subject to equally rigorous EU cybersecurity rules are mostly excluded
  to avoid double regulation. For example, medical devices, automobiles, aviation
  products, and military equipment are exempt from the CRA because these sectors
  have their own laws that cover product security and safety.

  > exclusions such as certain open-source software or services products that
  > are already covered by existing rules, which is the case for medical devices,
  > aviation and cars.

- **Software-as-a-Service (SaaS) and cloud services:** Pure services are
  generally outside the CRA’s scope. The CRA is about products (tangible or
  downloadable) placed on the market. Cloud services and SaaS offerings with no
  tangible product distributed are instead addressed by the [NIS2
  Directive][saas-nis2-directive] on network and information security.

  So, if you run a cloud software service without supplying software to
  customers to install, CRA requirements like SBOMs do not directly apply.
  However, if you deliver any client software or appliance as part of the
  service, that delivered component would fall under CRA.

[cra-oss-exception]: https://digital-strategy.ec.europa.eu/en/policies/cyber-resilience-act#:~:text=The%20regulation%20applies%20to%20all,allow%20buyers%20to%20make%20more
[cra-oss-steward]: https://eur-lex.europa.eu/eli/reg/2024/2847/oj#:~:text=Taking%20into%20account,made%20regulatory%20regime.
[cra-regulated-exception]: https://digital-strategy.ec.europa.eu/en/policies/cyber-resilience-act#:~:text=exclusions%20such%20as%20certain%20open%2Dsource%20software%20or%20services%20products%20that%20are%20already%20covered%20by%20existing%20rules%2C%20which%20is%20the%20case%20for%20medical%20devices%2C%20aviation%20and%20cars.
[saas-nis2-directive]: https://eur-lex.europa.eu/eli/dir/2022/2555/oj/eng
[cra-scope]: https://digital-strategy.ec.europa.eu/en/policies/cyber-resilience-act#:~:text=The%20regulation%20applies%20to%20all,allow%20buyers%20to%20make%20more
[cra-scope-fossa]: https://fossa.com/blog/sbom-requirements-cra-cyber-resilience-act/#:~:text=The%20CRA%20applies%20to%20devices,short%2C%20almost%20everything%20we%20use

## Open Questions for Practitioners (and SafeDep’s Take)

Even with the legislation in hand, practitioners still face some open questions
about how to implement SBOM requirements in day-to-day practice. Here are four
pressing questions, along with SafeDep's perspective on each:

### What exactly needs to be in our SBOM to satisfy the CRA?

The law mandates at least top-level components, but doesn't list specific
fields. Aim to include all the "minimum elements" you would for
any robust SBOM. At a minimum, list each software component name, version, and
supplier, and ideally the dependency relationship. Using a standard format like
CycloneDX or SPDX will inherently cover the key fields (component ID, version,
relationships, licenses, etc.). While CRA says top-level only, consider
capturing deeper dependencies where feasible. It will improve your security
posture.

The good news is that authorities aren't expecting an exhaustive tree of every
nested module and transitive dependencies; a comprehensive list of direct
dependencies (third-party libraries, open-source packages, etc.) in the product
will meet the requirement.

However, do keep an eye on forthcoming EU guidance – but if you follow
NTIA/NIST’s SBOM guidance, you'll likely exceed CRA’s baseline.

### How often should we update SBOMs

The CRA implies SBOMs should be updated as part of technical documentation, but
doesn’t dictate frequency. You should generate a fresh SBOM for every product
release or update. In practice, integrating SBOM generation into your CI/CD
pipeline is ideal. Every build that could go to production should produce an
SBOM, so that you always know the exact components in that version. Also, if you
patch or hotfix a component, update the SBOM accordingly. Regulators will want
to see that your SBOM is current – an outdated SBOM is nearly as bad as none at
all.

Many teams use tools (like [SafeDep's Vet][safedep-vet] or other SCA tools) to
auto-generate SBOMs as part of the build process, ensuring continuous SBOM
availability. **Remember, the SBOM is part of "technical documentation" that must
be kept for 10 years after a product is on the market.** Hence, treat SBOM
updates as a routine part of your development lifecycle.

### What if some components are open source or from suppliers who don’t give SBOMs

_In other words, how do we handle SBOM for third-party components we use?_

Most open-source components won’t come with an SBOM from their maintainers –
you’ll have to generate the entries for them yourself. Use your SCA tooling to
identify all included OSS libraries and include those in your SBOM (the tool can
pull info like name, version, license, etc.). For third-party commercial
software or binary blobs,
[request an SBOM from those suppliers][fossa-sbom-req]; if they can’t provide
one, you may need to treat that component as a "black box" but at least list it
in your SBOM as a top-level item. The CRA is ultimately holding you, the product
manufacturer, responsible for knowing what’s in your product.

### How will compliance actually be verified, and what about sensitive IP in the SBOM

_Are we going to be audited? Will regulators or customers demand the SBOM routinely?_

The enforcement model for CRA will likely be spot-checks or incident-driven. You
might never be asked for your SBOM unless there’s a security incident or a
random audit. However, from December 2027 onward, you should operate under the
assumption that at any moment, a regulator could request your SBOM to verify
you’re meeting requirements.

> where applicable, the software bill of materials, further to a reasoned
> request from a market surveillance authority provided that it is necessary in
> order for that authority to be able to check compliance with the essential
> cybersecurity requirements set out in Annex I.

The CRA does not force you to disclose source code or deep design secrets - only
the identity of software components. If you’re concerned about confidentiality,
note that authorities must treat SBOM info confidentially and only share
aggregated, anonymized dependency data at the EU level.

## [SafeDep Vet][safedep-vet]: CRA-Aligned SBOM Generation and Policy-as-Code

SafeDep's open-source tool Vet is designed to make SBOM and compliance
management easier for teams preparing for regulations like the CRA. SafeDep Vet can
automatically generate SBOMs in standard formats (including CycloneDX support),
as part of your build pipeline, ensuring you have up-to-date SBOMs for every
release. It's as easy as:

```bash
vet scan -D ./project/ --report-cdx=sbom.json
```

Moreover, Vet provides policy-as-code capabilities, allowing you to encode your
compliance rules and security policies (for example, "no high-severity
vulnerabilities present" or "no GPL-licensed components in product") and
automatically enforce them. This means you can set up Vet to fail a build or
alert your team if a new dependency violates your policies -- effectively
embedding CRA-related controls into CI/CD.

[safedep-vet]: https://github.com/safedep/vet
[fossa-sbom-req]: https://fossa.com/blog/sbom-requirements-cra-cyber-resilience-act/
