CycloneDX
The OWASP-origin, security-first BOM standard now published as ECMA-424 — covers SBOM, HBOM, SaaSBOM, CBOM, ML-BOM, VEX.
CycloneDX Wiki
A full-stack Bill of Materials standard: lightweight, security-oriented, and now an Ecma international standard (ECMA-424). It describes not just software components, but services, hardware, cryptographic assets, AI models, and compliance evidence.
| Stable release | 1.7.2 · 2026-09-17 |
| Major version | 1.7 · 2025-10-21 |
| Standard status | ECMA-424 2nd ed. |
| Ecma adoption | 2025-12-11 |
Overview
CycloneDX started in 2017 inside the OWASP community, driven by the observation that vulnerability management — not licence compliance — was the problem SBOMs actually needed to solve. That origin shows in the design: a CycloneDX document is a plain, nested, developer-readable JSON structure with first-class support for vulnerabilities, VEX, service topology, and evidence.
The project is now stewarded jointly by the OWASP Foundation and Ecma International TC54. CycloneDX 1.6 was adopted as ECMA-424 1st edition in June 2024, and CycloneDX 1.7 as ECMA-424 2nd edition on 11 December 2025 — putting it on the same procedural footing as JavaScript (ECMA-262) and JSON (ECMA-404), with ISO/IEC fast-track as the next step. For regulated buyers, that edition number is what will appear in contracts and EU Cyber Resilience Act conformity packages.
Version history
| Version | Released | Highlights |
|---|---|---|
| 1.2 | 2020-05-26 | Broad adoption baseline; component pedigree. |
| 1.3 | 2021-05-04 | Compositions, evidence, external references; the version most procurement rules were written against. |
| 1.4 | 2022-01-12 | Vulnerabilities, VEX, formulations, declarations. Still the safest compatibility target. |
| 1.5 | 2023-06-26 | Machine-learning model cards, maturity, provenance. |
| 1.6 | 2024-04-09 | CBOM (cryptographic BOM, contributed by IBM Research) and CDXA (CycloneDX Attestations). Became ECMA-424 1st edition. |
| 1.7 | 2025-10-21 | Citations, TLP distribution constraints, patent metadata, expanded CBOM with algorithmFamily, broader formulations, version ranges for external components, multiple SPDX license expressions, Streebog hashing. |
| 1.7.1 | 2026-06-02 | Schema alignment and bug fixes (ModelCard properties, protobuf fields). Back-ported to 1.6.1/1.6.2. |
| 1.7.2 | 2026-09-17 | Latest. Maintenance: XML schema alignment for related cryptographic assets. |
Good news for operations: 1.7 is fully backward compatible with 1.4 through 1.6. Older consumers simply ignore the new blocks under permissive schema parsing. The only breaking-ish changes are deprecations — for example the loose 1.6
curvestring gives way to a typedalgorithmFamily.curveenum, and componentauthorgives way toauthors/manufacturer.
Document anatomy
A CycloneDX BOM is a single object with a small, predictable top-level shape. Every significant node can
carry a bom-ref — a document-local identifier that other nodes point at.
| Field | Purpose |
|---|---|
bomFormat | Always CycloneDX. Lets tools sniff the format. |
specVersion | The schema version, for example 1.7. |
serialNumber | URN UUID uniquely identifying this BOM instance (for example urn:uuid:…). |
version | Your revision counter for this BOM; incremented on each re-publish. |
metadata | Who and what produced the BOM: timestamp, tools, authors, supplier/manufacturer, and the primary component being described. |
components | The inventory. Types include application, framework, library, container, platform, operating-system, device, firmware, file, machine-learning-model, data, and cryptographic-asset. Components nest to model assemblies. |
services | Endpoints and SaaS dependencies — the basis of a SaaSBOM. |
dependencies | The dependency graph, expressed as bom-ref pairs. This is what makes the BOM a graph rather than a flat list. |
compositions | Completeness assertions: which component sets are complete, partial, or incomplete, and how they aggregate. Critical for honest SBOMs. |
vulnerabilities | Known vulnerabilities plus the author's analysis — the VEX payload. |
formulations | Recipes/workflows: inputs, outputs, steps, and properties describing how something was built or assembled. |
declarations | Conformance and assurance claims. |
externalReferences | Distribution, documentation, VCS, BOM links, and RFC 9116 security.txt. |
properties / annotations | Key–value extension points and timestamped, attributable notes. |
citations (1.7) | Provenance for individual metadata claims: which tool or human asserted what, when. |
distribution (1.7) | Sharing constraints, including a Traffic Light Protocol (TLP) classification carried inside the BOM. |
definitions | Reusable standards, requirements, and evidence definitions referenced elsewhere. |
Identity outward is handled by purl (package URL), cpe, and swid on each component — the same
identifiers SPDX uses, which is what makes cross-format conversion feasible.
BOM flavours
CycloneDX deliberately uses one schema for many kinds of bill of materials:
| Flavour | Describes |
|---|---|
| SBOM | Software components: libraries, frameworks, applications, containers. |
| HBOM | Hardware: devices, firmware, and the components they contain. |
| SaaSBOM | Services and third-party SaaS dependencies, including endpoints, data flows, and providers. |
| ML-BOM / AI-BOM | AI and ML models via model cards: training data, hyperparameters, considerations, and 1.6+ environmental/energy impact. |
| CBOM | Cryptographic assets — algorithms, keys, certificates, protocols — the inventory you need for post-quantum migration planning. |
| VEX | A BOM whose payload is vulnerability exploitability statements rather than an inventory. |
| OBOM | Operational/deployed topology, extended by the broader formulations work in 1.7. |
| CDXA | Attestations: signed claims, evidence, and compliance documentation as a machine-readable artefact. |
What's new in 1.7
citations— a root-level array declaring the origin of each piece of metadata: a build system, an SBOM generator, an artefact repository, or a human reviewer, with a timestamp and provenance link. It lets a consumer attribute a disagreement between two SBOMs to a specific source instead of treating the document as one undifferentiated claim.- Expanded CBOM — a normative
algorithmFamilyobject (primitive type, security strength, NIST status, mode-of-operation requirements) and a closed enumeration of elliptic curves (NIST P-curves, Brainpool, Curve25519/X25519, Curve448, secp curves). The loose 1.6curvestring is deprecated. - Patent metadata — components can declare patents or patent families that read on them.
- Broader formulations — the construct that described how a component was built can now describe how any referenceable object came together: services, declarations, even the BOM itself.
- Distribution constraints — a
distributionblock carrying a TLP classification (CLEAR,GREEN,AMBER,AMBER+STRICT,RED) plus a free-text constraint, so downstream sharing rules travel with the document.
Also in 1.7: external components with version ranges, multiple SPDX license expressions per component, and Streebog hash support.
On TLP enforcement: the constraint is a declared policy, not a cryptographic control. It is advisory in the same way
robots.txtis — a 1.7-aware repository is expected to honour it when serving the BOM, but nothing stops a careless consumer from republishing.
Vulnerabilities & VEX
A vulnerabilities entry carries the identifier (CVE, GHSA…), affected component bom-refs, ratings
(CVSS, OWASP Risk, and others), and — the important part — an analysis block with a state:
resolved/resolved_with_pedigree— fixed, or fixed in a later version.exploitable— confirmed reachable and exploitable.in_triage— not yet assessed.false_positive— reported but not actually present.not_affected— present but not exploitable, with a justification code.
This is what turns a raw scanner dump into something an operations team can act on: the SBOM says what is there, the VEX says whether it matters.
Attestations (CDXA)
Introduced in 1.6, CycloneDX Attestations let an organisation publish machine-readable claims, the evidence supporting them, and signatures over both — "compliance as code" instead of PDFs and spreadsheets. An attestation document references requirements, maps evidence to them, and can be signed so a consumer can verify who asserted what.
Serialization formats
- JSON — the primary format; schema published at
cyclonedx.org/schema/bom-1.7.schema.json. - XML — maintained in parallel with the JSON schema (1.7.2 fixed an XML schema alignment issue).
- Protobuf — supported for high-volume, streaming, and low-footprint use cases.
The project also publishes official libraries for Java, .NET, Go, Python, JavaScript, Rust, and PHP, plus build plugins for Maven and Gradle — which is why "just emit a CycloneDX BOM" is usually a one-line change in most ecosystems.
Example CycloneDX document
{
"bomFormat": "CycloneDX",
"specVersion": "1.7",
"serialNumber": "urn:uuid:9f3e5b7a-2c4d-4f8e-9a1b-6c8d0e2f4a6b",
"version": 1,
"metadata": {
"timestamp": "2026-09-16T09:12:00Z",
"component": {
"type": "application",
"bom-ref": "acme-portal",
"name": "acme-portal",
"version": "1.2.0"
},
"tools": [{ "vendor": "anchore", "name": "syft" }],
"authors": [{ "name": "Acme Corp" }]
},
"components": [
{
"type": "library",
"bom-ref": "pkg:npm/express@4.21.1",
"name": "express",
"version": "4.21.1",
"purl": "pkg:npm/express@4.21.1",
"licenses": [{ "expression": "MIT" }]
}
],
"dependencies": [
{ "ref": "acme-portal", "dependsOn": ["pkg:npm/express@4.21.1"] }
],
"citations": [
{
"bom-ref": "cit-syft-scan",
"source": "tool:syft",
"appliesTo": ["pkg:npm/express@4.21.1"]
}
],
"distribution": {
"tlp": "AMBER",
"constraints": "do-not-redistribute-outside-organization"
}
}Strengths and trade-offs
Strengths
- Broadest tooling and library ecosystem; official plugins for most build systems.
- Security-first: vulnerabilities, VEX, services, crypto inventory, and attestations are all in the core schema.
- Approachable — a developer can read and hand-edit a BOM in minutes.
- Strong backward compatibility across 1.4 → 1.7.
- International standard status via ECMA-424, with ISO fast-track in progress.
Trade-offs
- Document-centric rather than graph-centric: cross-document linking is weaker than SPDX 3's IRI model.
- Deeply nested documents get large; the schema is broad, so implementations vary in what they actually support.
- Licensing is intentionally simpler than SPDX's ExpandedLicensing profile — it borrows SPDX IDs rather than modelling licences in depth.
- Optional-but-recommended features (compositions, pedigree, citations) are frequently left empty, which quietly reduces the value of the BOM.
Where to go next
Compare with SPDX → · Generators and converters → · Regulatory drivers →
Sources: cyclonedx.org, the CycloneDX specification repository release history, and ECMA-424 / Ecma TC54 announcements (retrieved September 2026).