2026-06-06·5 min read·sota.io Team

CRA SBOM Compliance Checklist 2026: The Complete Developer Guide — Series Finale

Post #5 in the sota.io EU CRA SBOM Developer Guide Series (2026)

CRA SBOM Compliance Checklist 2026 — Complete Developer Guide

Over the four previous posts in this series, we have covered the regulatory foundation, the format wars, CI/CD automation, and the operational layer of storage and vulnerability reporting. This finale consolidates everything into a single, structured compliance checklist designed to work as a living document for engineering teams navigating the Cyber Resilience Act.

The CRA Notified Bodies become operational on 11 June 2026. Reporting obligations under Art.14 already apply for products placed on the market. The August 2026 application deadline is approaching. If you are shipping software products into the EU market — or running managed infrastructure that EU customers depend on — the time to act is now.

This is not an exhaustive legal analysis. It is a working checklist for engineers, platform teams, and compliance leads who need to translate regulatory text into Jira tickets and pipeline configurations.

Post #1 covered the Art.13 and Annex VII regulatory foundation. Post #2 compared CycloneDX 1.6 and SPDX 2.3 formats. Post #3 covered GitHub Actions and GitLab CI pipeline automation. Post #4 addressed SBOM storage architecture, VEX workflows, and the Art.14 reporting cascade.


Part 1: Regulatory Applicability — Are You In Scope?

Before running through the checklist, confirm your applicability status. The CRA applies to products with digital elements placed on the EU market. This includes:

Out of scope (CRA Art.2):

Classification check — Art.6 and Annex III:

Knowing your class determines whether you need a Notified Body (operational from June 11) and which conformity assessment route applies.


Part 2: SBOM Generation — Mandatory Field Checklist

The Art.13(1) obligation requires manufacturers to identify and document all software components. Annex VII specifies the technical documentation structure. Your SBOM must include, at minimum:

Mandatory Component Fields

For every component in your SBOM:

Document-Level Fields

Scope Coverage


Part 3: Format Compliance Checklist

Post #2 in this series covered the CycloneDX vs SPDX trade-off in detail. This checklist focuses on the compliance-critical elements regardless of which format you have chosen.

If You Use CycloneDX 1.6

If You Use SPDX 2.3

Machine-Readability Validation


Part 4: CI/CD Pipeline Integration Checklist

Post #3 covered GitHub Actions and GitLab CI automation in depth. This checklist summarises the mandatory pipeline controls.

Generation

Validation

Vulnerability Scanning

Artifact Publishing


Part 5: Storage and Retention Checklist

Post #4 covered the Art.31 retention requirements in depth. The key obligation: SBOM documents must be retained for the greater of ten years after market placement or the duration of the product's supported lifecycle.

Storage Architecture

Access and Retrieval

Jurisdiction — CLOUD Act Exposure

This is the checklist item that surprises most teams. If your SBOM store runs on AWS S3, Azure Blob Storage, or Google Cloud Storage — and those accounts are operated by US entities — the stored documents are reachable by US law enforcement via the CLOUD Act without the need for an EU mutual legal assistance treaty request.

For SBOM compliance evidence, this creates a specific risk: a regulator investigating a CRA compliance failure could argue that your compliance documentation itself is accessible to a foreign government outside EU legal channels.

For EU-jurisdiction clean storage:


Part 6: Vulnerability Tracking Checklist

The CRA requirement is not just to produce an SBOM once — it is to keep it current throughout the product lifecycle, and to act when vulnerabilities are discovered.

Continuous Monitoring

VEX Document Management

SBOM Freshness


Part 7: Art.14 Vulnerability Reporting Checklist

Art.14 of the CRA establishes the reporting obligations when an actively exploited vulnerability is discovered in your product. This is the most operationally complex part of CRA SBOM compliance.

The reporting cascade has three tiers:

Tier 1 — Initial report to ENISA (24 hours from discovery) The initial notification to ENISA (via the Single Reporting Platform once operational) must reach them within 24 hours of the manufacturer becoming aware that the vulnerability is being actively exploited in the wild. This is not a full analysis — it is an early warning that a vulnerability exists and is being exploited.

Tier 2 — Detailed technical report (72 hours) Within 72 hours of the initial notification, a more detailed technical report covering the vulnerability, the affected product versions, the SBOM components involved, and the current remediation status must be submitted.

Tier 3 — Final report (14 days) The complete incident report, including remediation timeline, patch availability, and any coordinated disclosure timeline agreed with the security researcher who reported the issue.

Process Checklist

When Art.14 Does Not Apply

Art.14 reporting obligations apply specifically when the vulnerability is actively exploited in the wild. A CVE disclosure alone does not trigger the 24-hour clock — it starts only when the manufacturer has evidence of active exploitation. However, discovered but not-yet-exploited vulnerabilities must still be handled under the Art.13 vulnerability handling requirements (Annex I Part II).


Part 8: Audit Readiness Checklist

CRA enforcement is conducted by Market Surveillance Authorities (MSAs) in each EU member state. Notified Bodies (operational from 11 June 2026) conduct conformity assessment. When a regulatory inquiry arrives, you need to produce:

Documentation Package

Process Evidence

Response Time Targets


Part 9: Jurisdiction Summary — The EU-Native Decision

Across all five posts in this series, the jurisdiction question has appeared repeatedly. Here is the summary:

The compliance risk of US-hosted SBOM infrastructure is not theoretical. If your SBOM store, vulnerability tracking system, or Art.14 reporting records are hosted on AWS, Azure, or Google Cloud — operated by US parent entities — those records are reachable by US government demand under the CLOUD Act without EU-side legal process.

This does not mean you are automatically non-compliant. But it does mean that:

  1. Your compliance evidence can be examined by a foreign government without your knowledge
  2. In a cross-border regulatory dispute, the evidence chain integrity is weakened
  3. A future EU regulation (Data Act, Digital Sovereignty Package) may explicitly require EU-jurisdiction infrastructure for compliance documentation

The EU-native stack for CRA SBOM compliance:

ComponentEU-native Option
SBOM storeMinIO on Hetzner / Scaleway Object Storage / OVHcloud Object Storage
Vulnerability feedOSV.dev (Google, but dataset is open) / ENISA EUVDB (when available)
CI/CDWoodpecker CI (self-hosted) / GitLab CE on Hetzner
Container registryHarbor on Hetzner / Scaleway Container Registry
Managed PaaSsota.io (Hetzner Germany, no US parent)
Audit logImmutable append-only store on EU infrastructure

Part 10: 30-Day Sprint to Compliance

If you are reading this five-post series for the first time and need to get to CRA SBOM compliance quickly, here is a prioritised 30-day sprint:

Week 1 — Baseline

  1. Confirm your CRA applicability and product classification
  2. Run a dependency audit on your most critical product — count direct + transitive dependencies
  3. Generate a first SBOM using Syft or cdxgen — even an imperfect one gives you a starting baseline
  4. Identify which format (CycloneDX or SPDX) your toolchain supports best

Week 2 — Pipeline

  1. Add SBOM generation to your release CI pipeline
  2. Add schema validation to fail the build on invalid SBOM
  3. Add Grype or OSV-Scanner for vulnerability scanning
  4. Set up a minimal SBOM artifact store (even an S3-compatible bucket with versioning is a start)

Week 3 — Operations

  1. Set up daily vulnerability feed polling against your SBOM
  2. Define your Art.14 reporting procedure in the incident runbook
  3. Create ENISA Single Reporting Platform account
  4. Draft Tier 1 and Tier 2 notification templates

Week 4 — Audit Readiness

  1. Produce your EU Declaration of Conformity draft
  2. Review your Annex VII technical documentation package for gaps
  3. Run an internal mock retrieval drill: retrieve the SBOM for your last three releases within 1 hour
  4. Evaluate your infrastructure jurisdiction and plan migration to EU-native if needed

Series Summary

This five-post series has covered the complete CRA SBOM compliance picture:

PostTopicKey Takeaway
#1 RequirementsArt.13, Annex VII, applicabilityKnow your class; SBOM is a legal document, not a build artifact
#2 FormatsCycloneDX vs SPDXCycloneDX for native VEX; SPDX for toolchain breadth — pick one and pin it
#3 CI/CDGitHub Actions, GitLab CIAutomate generation + validation; never produce SBOMs manually
#4 StorageRetention, VEX, Art.1410-year immutable archive + 24h ENISA reporting for actively exploited CVEs
#5 This PostFull compliance checklistRun through every section; assign DRI for each item

The CRA is not a box-ticking exercise. It establishes ongoing obligations that require a security lifecycle process, continuous monitoring, and the operational infrastructure to report and remediate within tight timeframes. The good news: for most software teams, the tooling exists and is free. The primary investment is process design and infrastructure selection — and choosing EU-native infrastructure from the start avoids re-platforming costs when jurisdiction requirements tighten further.


This post is part of the sota.io EU CRA SBOM Developer Guide 2026 series. sota.io is an EU-native managed PaaS — no US parent, no CLOUD Act exposure, Hetzner Germany. Explore sota.io →

EU-Native Hosting

Ready to move to EU-sovereign infrastructure?

sota.io is a German-hosted PaaS — no CLOUD Act exposure, no US jurisdiction, full GDPR compliance by design. Deploy your first app in minutes.