This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Standards and Formats

Compares SPDX and CycloneDX, the two standard formats for expressing an SBOM in a machine-readable form.

Since an SBOM requires machine readability, a standard format is necessary. Among the three formats specified by the US NTIA minimum elements, SPDX and CycloneDX split practical use between them. The third, the SWID tag, is used mainly in asset management; its role as an identifier is covered in Identifiers and Licenses.

SPDX

SPDX (System Package Data Exchange) is a project under the Linux Foundation. Version 2.2.1 became an international standard as ISO/IEC 5962:2021 in August 2021. It is worth noting that the current ISO standard refers strictly to version 2.2.1.

The Linux Foundation released SPDX 3.0 on April 16, 2024, introducing a structure of purpose-specific profiles. The approach layers Security, Build, Dataset, and AI profiles on top of a core model. The AI profile carries model training and characterization information, the Dataset profile carries data provenance and licensing, and the Security profile carries vulnerability identification, severity, exploitability, and mitigation plans. A patch release, 3.0.1, followed in December of the same year. Whether SPDX 3.x is being re-standardized with ISO had not been confirmed as of June 2026.

CycloneDX

CycloneDX is a full-stack BOM standard that originated at OWASP (Open Worldwide Application Security Project). Its distinguishing feature is native support for Vulnerability Exploitability eXchange (VEX) within the format itself. International standardization proceeded through Ecma International’s technical committee TC54. Version 1.6 was published as ECMA-424 1st edition in June 2024, adding a Cryptographic Bill of Materials (CBOM) and CycloneDX Attestations, and v1.7 was announced in October 2025 and standardized as ECMA-424 2nd edition in December 2025. v1.7 added post-quantum cryptography readiness, structured citations, and support for patent objects.

CycloneDX can express software (SBOM), hardware (HBOM), services (SaaSBOM), and machine learning models (ML-BOM) all within a single format.

Comparing the Two Formats

SPDXCycloneDX
StewardLinux FoundationOWASP / Ecma TC54
International standardISO/IEC 5962:2021 (based on v2.2.1)ECMA-424 1st edition (v1.6, 2024-06), 2nd edition (v1.7, 2025-12)
Latest specification3.0 (2024-04), 3.0.1 (2024-12)1.7 (2025-10)
Extension mechanismPurpose-specific profiles (Security, Build, Dataset, AI)Component types and auxiliary objects, native VEX
StrengthsLicense expression and legal compliance historyVulnerability/VEX integration, security-operations friendly

Table 1. Comparison of the two major SBOM standard formats (source: ISO/IEC 5962:2021, Linux Foundation 2024, Ecma International ECMA-424. Retrieved 2026-06-14)

The two standards differ in design philosophy. SPDX extends its scope of application through profiles, while CycloneDX expresses it through component types and auxiliary objects. Both, however, target the same problem in that they carry component identification, licensing, and dependency relationships. Whichever you choose, conversion tools exist between the two formats, so you can choose based on the format your trading partners require and the format your own tool chain supports well. If license compliance is the focus, SPDX is the familiar starting point; if vulnerability operations is the focus, CycloneDX is.

Next, we look at the minimum elements that define what a format must contain, and identifiers and licenses for consistently pointing to components.

Sources

ISO/IEC (2021). ISO/IEC 5962:2021 — SPDX Specification V2.2.1. The Linux Foundation (2024). SPDX 3.0 Release. https://www.linuxfoundation.org/press/spdx-3-revolutionizes-software-management-in-systems-with-enhanced-functionality-and-streamlined-use-cases. Ecma International. ECMA-424 — CycloneDX Bill of Materials Specification. https://ecma-international.org/publications-and-standards/standards/ecma-424/. CycloneDX (2025). CycloneDX v1.7 Released. https://cyclonedx.org/news/cyclonedx-v1.7-released/. (All retrieved: 2026-06-14)

1 - Minimum Elements of an SBOM

Covers the data fields an SBOM must contain, from the NTIA 2021 minimum elements to the CISA 2025 revision draft.

Once a format is chosen, the next question is what that format must contain. The documents that define this floor are the US Minimum Elements series. Though they are recommendations, they function as the de facto standard for federal procurement, and SBOM requirements in the EU and other jurisdictions largely reference this same framework.

Lineage: From NTIA 2021 to CISA 2025

The National Telecommunications and Information Administration (NTIA) published The Minimum Elements For a Software Bill of Materials (SBOM) in July 2021, under the delegation of Executive Order 14028. The document organized the minimum elements into three categories: the data fields to track per component, automation support requiring a machine-readable format, and practices and processes covering generation frequency, depth, and the like.

Stewardship of the community’s work then moved to the Cybersecurity and Infrastructure Security Agency (CISA), and two lines of revision followed. One was the third edition (September 2024) of Framing Software Component Transparency, a reference document that defines attributes, which added License and Copyright Notice to the baseline attributes. The other was a revision of the minimum elements document itself: CISA released 2025 Minimum Elements for a Software Bill of Materials as a public comment draft in August 2025, with the comment period closing on October 3, 2025. As of June 2026, this revision remains in draft status, and the date of a final version has not been confirmed.

The Data Fields and Three Categories of NTIA 2021

The NTIA 2021 minimum elements set seven per-component data fields.

Data fieldDescription
Supplier NameThe entity that supplied the component
Component NameThe name of the component or library
VersionThe version identifier of the component
Other Unique IdentifiersIdentifiers such as PURL, CPE
Dependency RelationshipThe inclusion relationship with the parent component
Author of SBOM DataThe entity that generated this SBOM
TimestampThe date and time of generation

The three categories are as follows.

  • Data fields: The seven items above — the basic information for tracking and identifying components.
  • Automation support: Specified SPDX, CycloneDX, and SWID as standard formats for automated generation and machine readability.
  • Practices and processes: Covers generation frequency, depth, handling of known unknowns, distribution and delivery, access control, and how errors are accommodated.

What the CISA 2025 Draft Adds

The CISA 2025 minimum elements draft expanded the data fields to reflect the maturing state of tooling. Four core elements were newly added.

New fieldPurpose
Component HashEnsures integrity and precise identification through a cryptographic hash
LicensePrimary data for tracking legal compliance
Tool NameRecords which tool generated it
Generation ContextRecords at which stage of the lifecycle it was created

Existing items were also revised. The roles of SBOM Author and Software Producer were distinguished, “Other Unique Identifiers” was updated to “Software Identifiers,” and the access control element, previously separate, was folded into the distribution and delivery item. The trajectory of License — entering as a baseline attribute in Framing 3rd edition and hardening into a data field in the 2025 draft — shows that the SBOM is establishing itself as primary data for open source license compliance, beyond a security inventory. Behind adding Tool Name, Generation Context, and Hash together lies the concern that an SBOM produced by an untrustworthy tool cannot itself be trusted. Tool integrity is covered in 5. Tools and Automation.

Practical Recommendations

The minimum elements are, as the name says, a floor. Organizations can, and should, add fields suited to their own purposes. Carrying CVE references and patch status for vulnerability identification, SPDX license identifiers and copyright notices for license management, and release and End-of-Life dates for lifecycle management, together in one SBOM, lets a single SBOM answer multiple operational questions. If you are introducing an SBOM for the first time, starting with the NTIA seven fields as a base but including the four new fields from the CISA 2025 draft — especially hash and license — from the outset saves the effort of rebuilding it later.

Sources

NTIA (2021). The Minimum Elements For a Software Bill of Materials (SBOM). https://www.ntia.gov/files/ntia/publications/sbom_minimum_elements_report.pdf. CISA (2024). Framing Software Component Transparency, Third Edition. https://www.cisa.gov/resources-tools/resources/framing-software-component-transparency-2024. CISA (2025). 2025 Minimum Elements for a Software Bill of Materials (SBOM) (public comment draft). https://www.cisa.gov/resources-tools/resources/2025-minimum-elements-software-bill-materials-sbom. (All retrieved: 2026-06-14)

2 - Identifiers and Licenses

Covers the PURL, CPE, and SWID identifiers used to consistently point to components, and how to notate SPDX license identifiers.

If the same component is named differently across SBOMs, automated matching breaks down, because there is no way for a machine to know that “Apache Tomcat,” “tomcat,” and “Apache Software Foundation Tomcat” are the same thing. This is why an identifier system that consistently points to components, and a convention for notating licenses with standard codes, are both necessary.

Three Identifiers: PURL, CPE, SWID

The three identifiers used together in practice serve different roles. They are not mutually exclusive, so recording them together where possible is recommended.

IdentifierMaintained byPrimary use
PURL (Package URL)Community (purl-spec)Precisely points to a component within a package manager ecosystem
CPE (Common Platform Enumeration)NISTNotates a product with a consistent name to look up its CVEs
SWID (Software Identification Tag)ISO/IEC 19770-2Structured metadata for product, version, and producing entity

Table 1. Identifiers used together in an SBOM (source: purl-spec, NIST NVD, ISO/IEC 19770-2. Retrieved 2026-06-14)

A Package URL points to a component within a package manager ecosystem in the following format.

pkg:maven/org.apache.logging.log4j/log4j-core@2.14.1
pkg:npm/lodash@4.17.21
pkg:pypi/requests@2.31.0

After pkg: come the ecosystem type (maven, npm, pypi, etc.), namespace, name, and version. Because the same component can be pointed to with the same string everywhere, it links automatically to vulnerability databases and license databases.

CPE was developed by MITRE in the mid-2000s and is now maintained by NIST. It notates products under a fixed naming rule and is used to look up the vulnerabilities (CVEs) corresponding to a product. SWID is a tag format standardized as ISO/IEC 19770-2 that structurally describes a product’s version and producing/distributing entity, and it is mainly used in asset management. The CISA 2025 minimum elements draft updating “Other Unique Identifiers” to “Software Identifiers” also reflects the maturing of this identifier ecosystem.

License Notation: SPDX License Identifiers

License management is one of the earliest use cases for an SBOM. Recording exactly which license each component is distributed under is what prevents obligation violations and conflicts in advance. Free-text descriptions cannot be matched automatically, so standard codes are used.

SPDX license identifiers assign each license a unique code such as Apache-2.0, MIT, or GPL-3.0-only. When multiple licenses apply together, they are combined with a license expression.

Apache-2.0 OR MIT
GPL-2.0-only WITH Classpath-exception-2.0
(MIT AND BSD-3-Clause)

OR indicates a choice among multiple licenses, AND indicates multiple licenses applying simultaneously, and WITH indicates combination with an exception clause.

The principles to follow in practice are as follows.

  • The license of every individual component, not just the license of the product as a whole, must be visible.
  • When encountering a license not on the standard list, assign it an identifier with a prefix indicating its source (for example, a LicenseRef- prefix) to track it.
  • If the license text has been trivially modified but its meaning has not changed materially, use the same identifier as the original.
  • Analyze license compatibility to identify in advance the conflicts that can arise when combining components under different licenses.

Even when a license field is auto-extracted by a tool, its accuracy is a separate matter. Precisely identifying non-standard licenses, handling dual licensing, and confirming compliance with licenses that carry field-of-use restrictions remain the responsibility of people and policy. The boundary of automation is covered in 5. Tools and Automation.

Sources

Package URL specification https://github.com/package-url/purl-spec. NIST. Common Platform Enumeration (CPE) https://nvd.nist.gov/products/cpe. ISO/IEC 19770-2:2015. SPDX License List https://spdx.org/licenses/. SPDX License Expressions https://spdx.github.io/spdx-spec/v2.3/SPDX-license-expressions/. (All retrieved: 2026-06-14)