Standards

CycloneDX 1.7 Deep Dive: Cryptography, Citations, and Patents

CycloneDX 1.7 released in October 2025 with first-class cryptography metadata, a new Citations element, and patent-aware IP fields. We walk through what changed and which producers should adopt now.

Alex
Security Engineer
7 min read

The OWASP CycloneDX working group released specification version 1.7 in late October 2025, with ratification as ECMA-424, 2nd Edition tracking for December 2025. v1.7 is the largest functional release since 1.5: it expands cryptography metadata into a deployable CBOM (Cryptography Bill of Materials), introduces a Citations root element for data provenance, adds patent-aware intellectual property fields, formalizes Traffic Light Protocol distribution constraints, and broadens the Formulations object so it can describe how any referencable BOM element came together rather than only components and services. v1.7 is fully backward compatible with 1.4-1.6, so existing tools and consumers will keep working — but producers who do not opt into the new fields leave a lot of useful metadata on the table.

Why does the cryptography model matter now?

Two reasons. First, post-quantum cryptography migration timelines are firming up — NIST has finalized FIPS 203, 204, and 205 standards for ML-KEM, ML-DSA, and SLH-DSA — and enterprises need a cryptographic inventory before they can plan migration. Second, "find every use of RSA-1024 in our build artifacts" is the kind of question security teams have always wanted to ask and never had a structured answer to. CycloneDX 1.7 adds an algorithmFamily object that lets a BOM declare not just "this binary uses TLS" but "this binary embeds an ML-KEM-768 key agreement and ECDSA-P256 signature algorithm." A standardized list of valid elliptic curves accompanies the algorithm-family additions, so consumers can run policy like "fail any artifact embedding curve25519 below library version X" without parsing free-text vendor data sheets.

{
  "bomFormat": "CycloneDX",
  "specVersion": "1.7",
  "components": [
    {
      "type": "cryptographic-asset",
      "name": "tls-handshake-suite",
      "cryptoProperties": {
        "assetType": "protocol",
        "protocolProperties": {
          "type": "tls",
          "version": "1.3",
          "cipherSuites": [
            "TLS_AES_256_GCM_SHA384",
            "TLS_CHACHA20_POLY1305_SHA256"
          ]
        }
      }
    },
    {
      "type": "cryptographic-asset",
      "name": "signing-key",
      "cryptoProperties": {
        "assetType": "algorithm",
        "algorithmProperties": {
          "primitive": "signature",
          "parameterSetIdentifier": "ML-DSA-65",
          "implementationPlatform": "x86_64",
          "executionEnvironment": "software-encrypted-ram"
        }
      }
    }
  ]
}

What does the new Citations element actually solve?

A long-standing complaint about SBOMs is that consumers cannot tell which fields came from authoritative sources versus which were guessed by a tool. The Citations root element formalizes provenance for BOM data. Each citation describes where data originated — the build system, the SBOM generator, an artifact repository like Maven Central, a vendor catalog, or manual operator input. A field can reference one or more citations via bom-refs. A consumer who only trusts cryptographic data from the build system can now filter the BOM down to that subset; a consumer who wants to know whether a license claim came from the package author or from a heuristic scan can finally tell. This is the long-promised "evidence" layer that vendors had been bolting on with proprietary extensions.

How do patents fit into a BOM?

CycloneDX 1.7 introduces metadata fields for patents and patent families associated with components. The rationale is supply-chain risk: a component that infringes a patent can be a legal-not-technical reason to remove it from a product, and that information has historically lived in spreadsheets disconnected from engineering inventories. With 1.7, a producer can attach patent or patent-family references to a component (evidence.licenses plus the new patent fields), enabling downstream legal-risk policy without conflating it with copyright license risk.

What about distribution constraints and Traffic Light Protocol?

A BOM that contains sensitive information — exploit-relevant cryptographic detail, internal hostnames in deployment metadata, supplier identities — sometimes needs distribution control. 1.7's distribution constraints fields let a BOM author tag the document or specific elements with TLP classification (TLP:CLEAR, TLP:GREEN, TLP:AMBER, TLP:RED). Tools that ingest BOMs are expected to respect those tags when republishing or sharing. This does not provide cryptographic enforcement — it is a signaling layer — but it gives consumers and intermediaries clear instructions rather than implicit assumptions.

How do Formulations change with 1.7?

CycloneDX 1.6 introduced Formulations as a way to describe how components and services came together — workflow, task, command-line, environment. 1.7 broadens the scope: Formulations may now be used to describe how any referencable object within the BOM came together, including components, services, metadata, declarations, or the BOM itself. The change matters for two practical reasons. First, it lets producers describe BOM-level provenance (which generation tool produced this BOM, with what inputs, when, against which build artifact) inside the BOM rather than as out-of-band documentation. Second, it lets attestation-heavy workflows fold Formulations against in-toto Statements so that the BOM is both a static manifest and a verifiable record of how the manifest itself was assembled. Consumers building policy on "do not trust BOMs produced by tools that have not been signed since 2024" become possible to express directly against the document, rather than requiring separate metadata channels.

When should producers actually migrate from 1.6 to 1.7?

If you produce only application-level CycloneDX SBOMs and have no cryptographic inventory needs, there is no urgency: 1.6 BOMs are accepted by every major consumer and 1.7 readers will parse them unchanged. Producers who should move within the next two quarters: anyone with regulatory exposure to post-quantum migration timelines (financial services, defense, healthcare), anyone whose customers require CBOMs as part of TPRM evidence, anyone using SBOMs as legal-risk artifacts where patent awareness matters, and anyone consuming SBOMs from multiple sources who needs Citations to trust-rank the data. For everyone else, plan an upgrade aligned with your next major tooling refresh in 2026.

What about tooling support for 1.7?

The CycloneDX tooling ecosystem updates quickly when a new spec version lands. As of late 2025, the official CycloneDX core libraries for Java, Node.js, Python, Go, .NET, and Rust support 1.7 emission and parsing. Major build-system plugins (Maven, Gradle, npm, pip, cargo, dotnet) have either shipped 1.7 support or have it on near-term roadmaps. Container scanners (Syft, Trivy, Grype) emit 1.7 BOMs. SBOM analyzers (Dependency-Track, OWASP DT) consume them. For producers, the practical question is not whether tooling exists but whether the specific tools in your pipeline have updated; an audit of your SBOM toolchain during the next quarterly review is a low-effort way to surface any laggards. Tools that have not updated to 1.7 by mid-2026 are likely to be deprecated or in transition; selecting forward-looking tooling now reduces refactoring later.

How does 1.7 align with the ECMA-424 ratification process?

ECMA-424 is the standards-organization layer above the OWASP-hosted CycloneDX specification, providing the formal international-standards anchor that some regulatory frameworks require. The first edition of ECMA-424 ratified an earlier CycloneDX version; v1.7 is on track for ratification as ECMA-424, 2nd Edition in December 2025. Practical implications: regulated industries (financial services, healthcare, defense) that prefer to cite formally ratified standards have been waiting for the 2nd Edition before requiring CycloneDX 1.7 in contracts and procurement language. After ratification, expect CycloneDX 1.7 to appear in vendor RFPs, supplier contracts, and government acquisition language alongside SPDX. The standardization layer does not change the technical content of the spec, but it changes which procurement gatekeepers will accept the format. For producers, the message is to plan for CycloneDX 1.7 production to be a contractual expectation by mid-2026, not a forward-looking option.

How Safeguard Helps

Safeguard parses CycloneDX 1.4 through 1.7 natively, with the 1.7 features mapped into the platform's component and risk model. Cryptographic assets surface in a CBOM view that lets security teams query across the tenant for legacy primitives, unapproved curves, or pre-PQC key agreement, with policy gates that block builds containing crypto material below an organizational baseline. The Citations element drives Safeguard's evidence-grading: data sourced from authoritative citations (build systems, signed BOMs) outranks data sourced from heuristic generators, and Griffin AI explains exactly which finding rests on which citation when a developer asks why a result is flagged. Patent-aware fields feed the platform's legal-risk module alongside SPDX license findings. Distribution constraints are honored on SBOM share and export, with TLP-AMBER and TLP-RED BOMs requiring confirmed authorization before they leave the tenant boundary. For producers, Safeguard emits 1.7 BOMs with crypto profile and citations populated from build telemetry, so the upgrade does not require hand-editing.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.