← Back to CRA Guide

CRA SBOM Requirements: What You Need to Know

The Cyber Resilience Act requires a Software Bill of Materials (SBOM) for all products with digital elements. Learn the format, content, and delivery requirements.

Last updated: September 5, 2026

What is a Software Bill of Materials (SBOM)?

A Software Bill of Materials (SBOM) is a formal, machine-readable inventory of all software components, dependencies, and libraries that make up a product. Think of it as a "list of ingredients" for software.

Why SBOM Matters for CRA

The CRA mandates SBOM because it enables rapid identification of products affected by newly discovered vulnerabilities. When a vulnerability is found in a popular library, an SBOM allows you to quickly determine if your product is affected.

SBOM Key Components

  • Component name: The name of each software component or library
  • Version: The specific version number being used
  • Supplier: Who created or provides the component
  • Unique identifier: Such as CPE, PURL, or SWID
  • Dependency relationships: How components relate to each other
  • License information: The license under which each component is distributed

What Does the CRA Require for SBOM?

The Cyber Resilience Act (specifically Annex I, Part II) mandates that manufacturers create and maintain an SBOM. Here's what the regulation requires:

1

Machine-Readable Format

The SBOM must be in a machine-readable format. The CRA doesn't mandate a specific standard, but recommends widely adopted formats.

Recommended formats: CycloneDX (JSON/XML) or SPDX (JSON/RDF/Tag-Value)
2

At Minimum: Top-Level Dependencies

The SBOM must include at least the top-level dependencies. Deeper dependency trees are encouraged but not strictly required.

Example: If your app uses React, list React. You're not required to list every sub-dependency of React, though it's best practice.
3

Keep SBOM Updated

The SBOM must be updated whenever the software composition changes—at each release or when dependencies are updated.

4

Available to Authorities

The SBOM must be provided to market surveillance authorities upon request. It does not need to be public, but must be available.

Recommended SBOM Formats

While the CRA doesn't mandate a specific format, two standards are widely recommended:

CycloneDX

A lightweight standard designed for security use cases. Popular in vulnerability management workflows.

  • JSON or XML format
  • Supports VEX (Vulnerability Exploitability eXchange)
  • Well-supported by security tools
  • OWASP project

Recommended for CRA compliance

SPDX

An ISO standard (ISO/IEC 5962:2021) with strong focus on licensing and legal compliance.

  • Multiple format options (JSON, RDF, Tag-Value)
  • ISO standardized
  • Strong license tracking
  • Linux Foundation project

Good for license compliance needs

Which Format Should You Use?

For most CRA compliance scenarios, CycloneDX JSON is recommended because it's optimized for vulnerability tracking and has excellent tooling support. However, if you also need strong license compliance tracking, consider SPDX.

How to Generate an SBOM

There are several approaches to generating SBOMs, from automated CI/CD integration to manual tools:

Recommended Tools

Syft (by Anchore)

CLI tool that generates SBOMs from container images, filesystems, and archives.

Recommended for CRA
syft . -o cyclonedx-json > sbom.json

Trivy

Vulnerability scanner that also generates SBOMs. Good for combined security workflows.

trivy fs --format cyclonedx -o sbom.json .

CycloneDX Plugins

Build system plugins for Maven, Gradle, npm, pip, and more.

npm install --save-dev @cyclonedx/cyclonedx-npm

Get step-by-step instructions for generating your first SBOM:

SBOM Generator Guide →

SBOM Best Practices for CRA

1

Automate SBOM Generation

Integrate SBOM generation into your CI/CD pipeline so it's automatically updated with each release.

2

Include Transitive Dependencies

While only top-level is required, including full dependency trees helps with vulnerability tracking.

3

Version Your SBOMs

Store SBOMs alongside release artifacts so you can trace which SBOM corresponds to which version.

4

Validate SBOM Quality

Use validation tools to ensure your SBOM is well-formed and contains required fields.

5

Monitor for Vulnerabilities

Use SBOM-aware vulnerability scanning to get alerts when new CVEs affect your components.

SBOM FAQ

Do I need to make my SBOM public?

No. The CRA requires that you provide the SBOM to authorities upon request, but you are not required to publish it publicly. However, some industries are moving toward SBOM transparency.

How often should I update my SBOM?

Update your SBOM whenever your software composition changes. This typically means generating a new SBOM with each release, and when you update dependencies between releases.

What if I use open-source components?

Open-source components should be included in your SBOM. In fact, tracking open-source dependencies is one of the primary use cases for SBOMs, enabling you to respond quickly when vulnerabilities are discovered.

Is there a minimum depth requirement?

The CRA requires at minimum the top-level dependencies. Deeper dependency trees are best practice but not strictly mandated. However, for effective vulnerability management, capturing the full tree is recommended.

Generate Your CRA-Ready SBOM

Use our step-by-step guide to create your first Software Bill of Materials.