SBOM

CycloneDX 1.7 Migration Guide From 1.5

A practical migration path from CycloneDX 1.5 to 1.7 covering schema changes, machine learning BOM additions, formulation, and the tooling adjustments required.

Vikram Iyer
Staff Engineer
5 min read

CycloneDX 1.7 brings the most significant schema changes since 1.4, and teams still emitting 1.5 will need to plan a real migration rather than a drop-in upgrade. This guide walks through the changes that matter, the tooling adjustments required, and the pitfalls I have seen the early adopters hit.

The audience is engineering teams who own their SBOM generation pipelines and need to ship 1.7-compliant output to customers, auditors, or downstream consumers in 2026.

What are the headline schema changes?

The big additions in 1.7 are first-class machine learning BOM components, expanded formulation support, and tightened semantics around vulnerability disclosure. The ML BOM elements let you describe model artifacts with the same rigor previously available only for software components: model identity, training dataset provenance, evaluation metrics, and the relationship between a model and the inference framework it depends on. Organizations shipping AI-enabled products are the primary beneficiaries, and the format change is non-optional if you intend to claim CycloneDX compliance for those products.

Formulation, which describes how an artifact was produced rather than just what it contains, was experimental in 1.5 and is production-ready in 1.7. The schema now supports detailed workflow descriptions including the steps, inputs, outputs, and environment used in the build. For SLSA level 3 alignment, formulation is the missing piece that lets a CycloneDX SBOM stand in for a separate provenance attestation in some pipelines.

How does the ML BOM change your inventory?

The ML BOM section requires you to know things about your models that many organizations do not currently track in machine-readable form. At minimum you need the model identifier, the framework and version, the training data source description, and the hash of the model file. Best practice extends this to evaluation metrics, training compute environment, and lineage back to the upstream foundation model if one was used.

The migration work for ML BOMs is mostly an inventory exercise, not a tooling exercise. The CycloneDX libraries in Python, Java, and Go all support emitting the new fields; the question is whether your model registry, MLOps platform, or training pipeline knows the metadata. If you are running on MLflow, Weights and Biases, or Kubeflow, most of the data is captured but not exported in a 1.7-compatible shape. Plan for an integration layer between the model registry and the SBOM generator.

What tooling needs updating?

Tooling adjustments cluster into three areas. First, your SBOM generator needs to be on a version that supports 1.7 output. cyclonedx-cli reached 1.7 support in late 2025, the official libraries followed shortly after, and syft from Anchore added 1.7 in early 2026. If you are generating SBOMs through Trivy, Grype, or a similar scanner, check the version against the CycloneDX support matrix; some tools still emit 1.4 by default.

Second, consumer-side tools need 1.7 parsers. The risk is that you upgrade the generator, start emitting 1.7, and discover that the downstream vulnerability scanner you ship the SBOM to silently falls back to a partial parse and drops the ML BOM section. Test the full pipeline end to end before flipping the default.

Third, validation tooling needs the updated schema. Run every emitted SBOM through a schema validator in CI, fail the build on validation errors, and treat schema drift as a real bug. CycloneDX has published the JSON Schema and XML Schema for 1.7, and integrating them into a pre-commit or CI step is a few hours of work.

Where are the migration pitfalls?

The most common pitfall is mixed-version SBOM trails. Teams upgrade the SBOM generator for new builds but keep historical SBOMs at 1.5, and the storage layer ends up with both formats. Downstream consumers then need to handle both versions, which is doable but a source of subtle bugs. The cleaner approach is to either keep the historical archive untouched and start 1.7 from a clean cutover point, or backfill the active set of artifacts to 1.7 with the formulation and ML BOM sections best-effort populated.

The second pitfall is the vulnerability disclosure schema tightening. CycloneDX 1.7 enforces stricter semantics around the affected-versions field and the analysis state for VEX statements embedded in the BOM. SBOMs that were valid 1.5 documents may fail 1.7 validation if the vulnerability section was historically sloppy. Audit the SBOMs you have shipped to customers for the affected sections before the upgrade.

The third pitfall is downstream tooling that expects component property keys that have changed. Several namespaced property keys in the cdx namespace were renamed for consistency, and consumer scripts that hardcode the old keys will silently miss data.

What is the suggested migration timeline?

A reasonable timeline for a mid-size engineering organization is six to ten weeks. Week one for the inventory and tooling audit, weeks two through four for the generator upgrade and validator integration, weeks five through seven for the ML BOM data integration and downstream consumer testing, and the remaining time for cutover, monitoring, and historical backfill if you choose to do it. Smaller teams may compress this; teams with complex MLOps stacks will likely need longer for the ML BOM data work alone.

How Safeguard Helps

Safeguard's SBOM workflow has supported CycloneDX 1.7 since the specification reached release candidate, including full ML BOM ingestion and formulation parsing. Griffin AI consumes 1.7 SBOMs natively and runs reachability and policy evaluation across both software components and ML model artifacts in the same pipeline. The platform stores SBOMs in their original format with lossless retention, so the historical archive question becomes a non-issue when downstream consumers need to retrieve older versions. Policy gates can enforce a minimum schema version, blocking builds that emit stale 1.5 SBOMs once the organization has committed to 1.7. TPRM ingestion accepts supplier-provided SBOMs at any version from 1.4 forward, normalizing the data for analysis without forcing suppliers onto your schedule.

Never miss an update

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