Wissen · SBOM

CycloneDX oder SPDX: welches SBOM-Format für den CRA?

Der CRA schreibt kein Format vor, er verlangt eine SBOM in einem gängigen maschinenlesbaren Format (Anhang I Teil II Nr. 1). In der Praxis sind das CycloneDX und SPDX. Die Technische Richtlinie TR-03183-2 des BSI verlangt seit Version 2.1.0 CycloneDX ab 1.6 oder SPDX ab 3.0.1, als JSON oder XML. Für Firmware taugen beide; wichtiger als das Format sind die Felder, die Sie füllen.

Stand 20. Oktober 2026 · 3 Min. Lesezeit

Der Prüfling

Datei
CycloneDX-Export der App zu ble_freertos_amota.axf
Build
Öffentliches Keil-Projekt, Apollo3, FreeRTOS
SHA-256
c4b38f3a52b01e3a8def5645c27b273b69cd8b0e1ea3b1981c421f4096f3a444

Build: sparkfun/AmbiqSuiteSDK, Commit e280cbd

Was der CRA zum Format sagt

Anhang I Teil II Nr. 1 verlangt, Schwachstellen und Komponenten zu dokumentieren, unter anderem durch eine Software-Stückliste in einem gängigen maschinenlesbaren Format, aus der zumindest die obersten Abhängigkeiten hervorgehen. Ein bestimmtes Format nennt die Verordnung nicht.

Die Kommission kann Format und Elemente per Durchführungsrechtsakt festlegen (Art. 13 Abs. 24). Bis zum 20.10.2026 ist kein solcher Rechtsakt erlassen. Die SBOM-Pflicht gilt ab dem 11.12.2027.

Die beiden Formate, Stand Oktober 2026

FormatVersionen und Status
CycloneDXAktuell 1.7 (21.10.2025), davor 1.6 (09.04.2024). Als Ecma-Standard ECMA-424, zweite Ausgabe Dezember 2025 für Version 1.7. JSON, XML, Protocol Buffers.
SPDXSPDX 2.3 (03.11.2022) und SPDX 3.0.1 (17.12.2024). SPDX 2.2.1 ist als ISO/IEC 5962:2021 genormt. Version 3 ist ein neues Datenmodell mit Profilen, etwa für Sicherheit und Build.
BSI TR-03183-2, v2.1.0Neu erstellte SBOMs als JSON oder XML, gültig nach CycloneDX ab 1.6 oder SPDX ab 3.0.1 (§ 4). Bis Version 2.0.0 galten CycloneDX 1.5 und SPDX 2.2.1.

Was die TR-03183-2 je Komponente verlangt

Die Richtlinie ist für deutsche Hersteller die genaueste Vorgabe, was in einer SBOM stehen soll. Pflicht sind für die SBOM selbst Ersteller und Zeitstempel (§ 5.2.1), für jede Komponente:

  1. 01

    Ersteller der Komponente, als E-Mail-Adresse oder URL.

  2. 02

    Name und Version. Gibt es keine Version, das Änderungsdatum der Datei.

  3. 03

    Dateiname der Komponente.

  4. 04

    Abhängigkeiten zu anderen Komponenten, mit der Angabe, ob die Aufzählung vollständig ist.

  5. 05

    Lizenzen der Weitergabe.

  6. 06

    Hashwert der ausgelieferten Komponente als SHA-512.

  7. 07

    Ob die Komponente ausführbar, ein Archiv und strukturiert ist.

Wie die Formate eine Firmware-Komponente beschreiben

Für Firmware zählt vor allem, ob eine Komponente eindeutig erkannt wird, denn daran hängt der Abgleich mit Schwachstellen. Beide Formate tragen dafür Package URL (purl) und CPE. CycloneDX kennt den Komponententyp firmware, SPDX 2.3 den Zweck FIRMWARE, SPDX 3.0.1 den Zweck firmware.

Format und Version des Exports
jq -r '.bomFormat, .specVersion' sbom.json
Ausgabe
CycloneDX
1.6
Das Produkt selbst, als Firmware
jq '.metadata.component | {type,name}' sbom.json
Ausgabe
{
  "type": "firmware",
  "name": "ble_freertos_amota.axf"
}
Eine Komponente mit Package URL
jq '.components[] | select(.name=="FreeRTOS") | {type,name,version,purl}' sbom.json
Ausgabe
{
  "type": "library",
  "name": "FreeRTOS",
  "version": "10.1.1",
  "purl": "pkg:generic/FreeRTOS@10.1.1"
}

Unterschiede, die im Alltag zählen

ThemaCycloneDX und SPDX
KennungCycloneDX: purl, CPE, dazu OmniBOR und SWHID. SPDX 2.3: externalRefs der Kategorien SECURITY und PACKAGE-MANAGER. SPDX 3.0.1: cpe22, cpe23, packageUrl, gitoid, swhid, swid.
HashBeide können SHA-512, wie die TR es verlangt.
AbhängigkeitenCycloneDX: dependencies, Vollständigkeit über compositions. SPDX 3.0.1: Beziehungen mit eigener Angabe zur Vollständigkeit.
Schwachstellen und VEXCycloneDX hat VEX-Zustände im Format, SPDX 3.0.1 ein Sicherheitsprofil. Nach der TR gehören Schwachstellen nicht in die SBOM; sie gehen als CSAF mit VEX-Profil an den Kunden (§ 8.1.14).
LizenzenBeide mit SPDX-Lizenzkennungen und -Ausdrücken. SPDX trennt erklärte und festgestellte Lizenz.

Was Sie entscheiden sollten

  1. 01

    Fragt ein Kunde oder Prüfer nach der TR-03183-2

    CycloneDX ab 1.6 oder SPDX ab 3.0.1, JSON oder XML.

  2. 02

    Nutzt Ihre Toolchain schon ein Format

    dabei bleiben. Werkzeuge wandeln zwischen beiden, verlieren aber Felder, die das Ziel nicht kennt.

  3. 03

    Für jede ausgelieferte Firmware-Version eine eigene SBOM, aus dem Build, der ausgeliefert wird.

  4. 04

    Schwachstellenstatus getrennt pflegen

    die SBOM sagt, was drin ist, VEX und CSAF sagen, was davon ausnutzbar ist.

Die Konformitätsaussage treffen Sie. Diese Seite und unsere Berichte liefern technische Feststellungen als Grundlage dafür.

Häufige Fragen

01Schreibt der CRA CycloneDX oder SPDX vor?

Nein. Er verlangt ein gängiges maschinenlesbares Format. Die Kommission kann Format und Elemente per Durchführungsrechtsakt festlegen (Art. 13 Abs. 24); bis zum 20.10.2026 ist keiner erlassen.

02Reicht SPDX 2.3?

Für den CRA ja, er nennt kein Format. Die TR-03183-2 des BSI verlangt seit Version 2.1.0 für neu erstellte SBOMs SPDX ab 3.0.1 oder CycloneDX ab 1.6.

03Gehören Schwachstellen in die SBOM?

Die TR-03183-2 schließt das aus: Eine SBOM mit Schwachstellen ist nicht TR-konform (§ 8.1.14). Schwachstellen gehören in CSAF mit VEX-Profil. Der Grund: Die Stückliste ändert sich mit dem Release, die Schwachstellenlage jeden Tag.

04Welche Formate exportiert LegacyMind?

CycloneDX 1.6 JSON, SPDX 2.3 JSON und SPDX 3.0.1 JSON, dazu CSV. Lieferanten-SBOMs lesen wir in CycloneDX (JSON, XML) und SPDX (JSON, Tag-Value, 3.0 JSON-LD).

Quellen

  1. [1]CycloneDX: Spezifikation
  2. [2]Ecma International: ECMA-424
  3. [3]SPDX: Spezifikationen
  4. [4]BSI TR-03183-2, Version 2.1.0
  5. [5]Verordnung (EU) 2024/2847, Cyber Resilience Act, Amtsblatt

Prüfen Sie Ihr eigenes Image

Im kostenfreien CRA-Readiness-Check laden Sie ein AXF, ein Firmware-Image oder eine Lieferanten-SBOM hoch. Bericht und SBOM bekommen Sie binnen drei Werktagen.