Est.

SPDX vs CycloneDX for FedRAMP Auditors

Choose between them based on whether your audit hinges on licenses or vulnerabilities.

Staff Writer · · 13 min read
Cover illustration for “SPDX vs CycloneDX for FedRAMP Auditors”
SBOM Audit Evidence · September 10, 2026 · 13 min read · 2,830 words

FedRAMP auditors picking between SPDX and CycloneDX aren't making a developer-tooling choice. They're making a compliance bet on which format's ISO status, VEX support, and version history hold up when someone checks a package review against a specific citation. That bet matters because the two formats split apart early and never grew back together. SPDX started in 2010 as a Linux Foundation project built for license compliance, with security and provenance bolted on years later. CycloneDX started in 2017 as an OWASP project built from day one for application security and supply chain risk. Most FedRAMP submissions go wrong the moment someone assumes one format quietly covers both jobs: it doesn't, and treating the choice as interchangeable is the single most common mistake in the whole process. If the audit lives or dies on vulnerability response, use CycloneDX. If it lives or dies on license provenance, use SPDX. Anyone telling you to pick one and stop thinking about it is selling you something.

The ISO/IEC 5962:2021 detail that trips up FedRAMP submissions

Here's the detail that catches people off guard: ISO/IEC 5962:2021 codifies SPDX 2.2.1, not SPDX 3.0.1 and not the 3.1 release candidate now moving through Linux Foundation and Object Management Group review. That gap matters more than it sounds like it should.

When a FedRAMP package submission, a procurement clause, or an agency requirement cites "ISO/IEC 5962:2021," it names the capabilities of SPDX 2.2.1, full stop. It doesn't reference the Security profile, the native VEX support, or the profile-based document architecture that arrived with SPDX 3.0. Those features exist in the newer spec, but the ISO number on the page doesn't cover them yet, and nobody has gone back to fix the citation.

CycloneDX took a different road entirely. Version 1.6 was ratified as ECMA-424, 1st Edition in 2024, and version 1.7 followed as ECMA-424, 2nd Edition in December 2025. Ecma recognition, plus flagship status inside OWASP, carries real weight with security teams, but it's a different kind of credential than an ISO/IEC number. Auditors used to treating "ISO-standardized" as a checkbox need to know the difference before they write it into a requirement, because the two credentials don't mean the same thing and don't cover the same features.

Neither choice comes free. Pick SPDX to satisfy an "ISO-standardized format" clause, and the organization is locked into 2.2.1's feature set unless someone rewrites the clause. Pick SPDX 3.0 instead, for its Security profile and its VEX-adjacent features, and the artifact now sits on a version the cited ISO number doesn't actually describe. The format itself isn't the failure point here. The failure point is submitting an SBOM without knowing, concretely, which version your own tooling spits out, before that version gets baked into a compliance citation somebody else has to defend later.

Where FedRAMP's SBOM requirements actually stand in 2026, and what is still being written

SBOMs are not, under the current Rev5 baselines, an explicit requirement. They can help a CSP show compliance, but nothing in the standing baseline forces one. That's changing fast, faster than most compliance teams have budgeted for.

FedRAMP 20x launched in March 2025 with a goal that sounds almost aggressive next to the legacy process: 90 to 180 day authorizations, down from an 18 to 24 month baseline, driven by OSCAL machine-readable submissions and continuous monitoring, with a target of automating validation for more than 80 percent of requirements. Pilot data through the fourth quarter of 2025 shows 12 Low authorizations granted out of 26 submissions, and the cost to authorize dropping from a $2 to $5 million range down to roughly $500,000 to $1.5 million per pilot. Numbers like that change how agencies think about SBOMs, because manual review at that cost can't scale to machine speed.

The draft Key Security Indicators under 20x go further, stating that CSPs "must obtain a Software Bill of Materials for third-party commercial software components" as part of supply chain risk management. Then came RFC-0024, released January 13, 2026, which mandates machine-readable packages for all FedRAMP Rev5 providers. The timeline is specific: FedRAMP publishes adoption materials by April 15, 2026, requirements take effect September 30, 2026 with public notification for non-compliance, and a grace period runs out September 30, 2027, after which non-compliant Rev5 Class D (High) services lose certification outright.

On top of that, the Consolidated Rules for 2026 (CR26), released June 26, 2026, replace the accumulated pile of memos, templates, guides, and RFCs with one stable ruleset. FedRAMP even published an enhanced markdown version of CR26 built for AI agents, a small but telling sign that the program now expects machines, not just compliance officers, to read its rules directly.

Separately, OMB M-26-05, issued in January 2026, scrapped the rigid attestation forms that used to govern this space. Agencies now have the option to require an SBOM, and if they exercise that option for cloud providers, the memo requires them to specify that the runtime production SBOM be available "upon request." CISA's 2025 update to its Minimum Elements guidance, building on the 2021 NTIA baseline, is out for public comment right now. Through all of it, no format gets mandated. CISA endorses both CycloneDX and SPDX by name, and the choice stays with whoever produces the artifact, which is exactly the gap this piece is trying to close.

How the two formats split along the license-compliance versus vulnerability-response axis in practice

Watch where each format actually shows up, and the pattern holds without exception. SPDX clusters in legal-heavy contexts: FedRAMP package submissions, open-source license review, anywhere a document has to answer what license governs this file. CycloneDX clusters in security-heavy contexts: vulnerability response pipelines, continuous monitoring workflows, and security-focused attestations.

That split traces straight back to origin and architecture. SPDX defines the SPDX License List, the standard set of license identifiers the whole industry uses, including CycloneDX documents that need to point to a license. It also draws a distinction between "declared" and "concluded" license status at the file level, a distinction legal teams lean on when a GPL-3.0 source file might have gotten relicensed somewhere in a build chain. SPDX's relationship model backs this up with specific relationship types (DEPENDS_ON, CONTAINS, BUILD_TOOL_OF, and a wider set beyond those), which makes a question like which files in this binary derive from a GPL-3.0 source answerable in a way a flatter model struggles with. That granularity costs something concrete: an SPDX 3.0 document for a typical Node service runs 1.2 to 1.8 MB, reflecting the file-level detail packed into every entry.

CycloneDX makes the opposite bet. It carries a dedicated vulnerabilities array at the document level, VEX data inline, and a JSON-first schema built to move through a pipeline without snagging on anything. The same Node service, described in CycloneDX 1.6, comes out at 600 to 900 KB: lighter on file-level detail, but faster to parse and match against a vulnerability database.

Tooling followed the same lines and locked the split in further. Most container scanners and VEX tools are CycloneDX-first. FOSSology, ScanCode Toolkit, and most legal-tool integrations are SPDX-first. A FedRAMP audit sits right at the intersection of both needs, since license provenance still matters for supply chain review and exploitability still matters for continuous monitoring. Auditors who grab one format and assume it covers both jobs are making an assumption the tooling landscape flatly doesn't support, and that's exactly where otherwise solid submissions fall apart on review.

Why VEX support is the sharpest differentiator for FedRAMP auditors specifically

Picture the scan output an auditor actually faces: a modern application carries hundreds of components, the scanner flags dozens of CVEs across them, and without context on exploitability, every one of those CVEs turns into a finding somebody has to sort through by hand. The 2026 Black Duck OSSRA report puts a number on that burden: 98 percent of commercial codebases contain open-source components, 87 percent carry at least one known vulnerability, and the mean number of vulnerabilities per codebase more than doubled year over year to 581. Without exploitability data attached, that's 581 manual judgment calls per codebase, repeated across every application in a portfolio.

VEX exists to answer exactly one question for the auditor: is this CVE, sitting in the SBOM, actually reachable in the build that shipped. CycloneDX answers it natively. Its vulnerabilities array carries CVE IDs, CVSS scores, affected version ranges, and an analysis.state field with defined values covering exploitability and resolution status, all embedded in the same document the auditor is already reading. VEX support has been part of CycloneDX since 2021, so the tooling around it has had years to mature into something that actually holds up at scale.

SPDX had no native equivalent until the Security profile arrived in SPDX 3.0 in 2024, and even now it leans more on companion documents (OpenVEX or CSAF) than on inline analysis. Three VEX formats compete for adoption today, OpenVEX, CycloneDX VEX, and CSAF VEX, and publishers who support more than one reach the widest audience of consumers. CSAF treats VEX as a standalone advisory profile, useful when exploitability data needs to travel separately from the SBOM itself, but that separation is exactly the friction CycloneDX's inline model was built around.

For a FedRAMP auditor, that difference isn't academic, and it isn't close. CycloneDX's inline VEX lets an organization show, in one artifact, which vulnerabilities in third-party components are actually exploitable in its own build, which speaks directly to the continuous monitoring and supply chain risk demands of both Rev5 controls and the draft 20x Key Security Indicators. SPDX 3.0's Security profile narrows the gap, sure, but as of 2026 the tooling maturity and ecosystem support behind CycloneDX VEX still run well ahead of it. An auditor betting on SPDX to close that gap on its own timeline is betting against the evidence sitting in front of them right now. If the audit hinges on exploitability, CycloneDX is the format that answers the question without a companion document, and treating that as a close call is how submissions stall in review.

Provenance depth and transitive dependency visibility, where each format earns its place in a supply chain audit

Federal requirements now reach past the libraries a developer knowingly typed into a manifest. They demand visibility into transitive dependencies: the packages those packages pull in, and the packages beneath those. An SBOM that lists only top-level dependencies no longer clears that bar. The Linux Foundation's own estimate puts the scale of the problem in perspective: 70 to 90 percent of a typical application is third-party code. That's the actual surface area an SBOM has to cover to survive federal review, a lot bigger than most teams assume when they scope the work.

CycloneDX 1.7 pushed its provenance model forward with citations for verifiable provenance, patent and patent-family metadata, distribution constraints expressed through Traffic Light Protocol markers, and a wider cryptography registry. SPDX answers with breadth of a different kind: its profile-based architecture lets a single 3.0 document carry a Software profile, a Security profile, a Build profile, an AI profile, and a Dataset profile together, and the 3.1 release candidate adds Functional Safety, Hardware, Operations, Service, and Supply Chain profiles on top of that.

One distinction gets blurred constantly and shouldn't be: an SBOM and a SLSA provenance attestation are not the same artifact, and neither substitutes for the other. An SBOM answers what's in this artifact. It doesn't answer which registry distributed this artifact, and it carries no cryptographic proof of the distribution path. SLSA's maturity ladder runs across multiple levels of build provenance assurance, and the SBOM format chosen has zero bearing on which SLSA level a build achieves. A defensible supply chain posture needs both artifacts, generated together, attached to the same release. In practice that means running SLSA provenance generation inside the build pipeline, generating the SBOM itself with a dedicated tool (or a build tool's native SBOM plugin) at the same build step, and shipping both alongside the release artifact rather than treating either as optional.

Format choice still shows through here, and it splits along the same line as everything else in this piece. SPDX's relationship model and file-level detail give it the edge for legal and license-focused provenance questions. CycloneDX's lifecycle phase metadata fits more naturally into a pipeline that needs provenance tracked automatically as code moves through stages.

Tooling that generates, validates, and analyzes SBOMs for FedRAMP workflows

No single tool covers this whole job, and anyone shopping for one is wasting time looking. A working SBOM pipeline needs three separate capabilities: generation, vulnerability matching, and lifecycle management. Most organizations end up stitching together tools from each category rather than finding one platform that does all three well.

On generation, Syft stands out as a leading open-source option, producing both CycloneDX and SPDX output from container images, filesystems, or archives, which makes it a reasonable default when a team hasn't committed to one format yet. Trivy covers generation and vulnerability scanning together and fits cleanly into CI. Beyond those, most build ecosystems ship their own SBOM emitters: Maven and Gradle plugins, npm and pip tooling, Go and Rust and Cargo integrations. The majority of these emit CycloneDX natively, which only reinforces that format's pipeline-first reputation.

On vulnerability matching, Grype pairs naturally with Syft and runs head-to-head against Trivy on database depth and scan speed. Dependency-Track is the best-known consumer of CycloneDX specifically, built around continuous component analysis and VEX workflows rather than one-off scans. Bomber and GUAC round out the open-source tier with additional analysis angles.

On lifecycle management, FOSSA is the leading commercial option for license compliance and ongoing SBOM lifecycle work, and its strength lines up with SPDX's own strength: legal review and license tracking over time. The license-specific tooling story runs SPDX-first almost across the board, with FOSSology and ScanCode Toolkit as the open-source anchors for that side of the work.

A practical starting point for a team with no pipeline yet: wire Syft and Grype into CI and CD. That combination costs nothing, covers generation and vulnerability scanning, and satisfies the core machine-readable inventory requirement that FedRAMP 20x and RFC-0024 are both pushing toward. Commercial tools layer lifecycle management and policy enforcement on top once that foundation exists, not before.

One thing gets skipped constantly in tooling discussions: an SBOM is only as reliable as the environment that produced it. A dependency that resolves to 2.3.1 on a developer's laptop and 2.3.4 on the CI runner, because of a floating version range nobody pinned, produces two different SBOMs describing two different builds, and only one of them ships. That drift is a known source of SBOMs that miss dependencies or misreport versions, and it undermines the whole artifact no matter which format it's written in. Keeping build environments consistent across architectures and operating systems isn't a format question. It's a precondition for trusting the format's output at all.

The case where producing both formats is the right answer, and the case where it is an avoidance strategy

Producing both SPDX and CycloneDX makes sense when an organization genuinely has separate audiences reading its SBOMs for separate reasons. Legal review needs SPDX's file-level license detail and its declared-versus-concluded distinctions. Security operations needs CycloneDX's inline VEX and vulnerability array to run continuous monitoring at the speed FedRAMP 20x now demands. A CSP selling into both a legal procurement review and a security operations center isn't duplicating effort by producing both artifacts. It's answering two different questions that happen to need two different documents, and most generation tools (Syft chief among them) already output both formats from the same scan, so the marginal cost of the second artifact is close to nothing.

Producing both turns into an avoidance strategy the moment it substitutes for a decision instead of serving a real second audience, and most teams should be honest with themselves about which one they're doing. An organization that hasn't figured out whether its FedRAMP citation actually points to SPDX 2.2.1 or SPDX 3.0, and hasn't decided whether its continuous monitoring workflow needs CycloneDX's native VEX or can skip it, sometimes ships both formats hoping the redundancy papers over the unresolved question. It doesn't, and it can't. An auditor checking a citation against ISO/IEC 5962:2021 still needs to know which SPDX version the organization's tooling emits. A security team still needs to know whether its VEX data lives inline or in a companion document, and whether that companion document is OpenVEX, CSAF, or something else. Two formats sitting side by side answer neither question; they just postpone the reckoning.

And the runway for that kind of postponement is shorter than it used to be. RFC-0024's timeline runs April 2026 guidance, September 2026 enforcement, September 2027 loss of certification for non-compliant services. Shipping two formats without resolving which one actually answers your citation, or your VEX question, isn't caution. It's a decision dressed up as due diligence, and the deadline doesn't care which format did the work, only that one of them did.

Sources

  1. Best SBOM Tools 2026: Syft Leads OSS, FOSSA Leads Commercial
  2. CycloneDX vs SPDX: Which SBOM Format to Choose in 2026 | Interlynk
  3. ISO/IEC 5962:2021 - Information technology — SPDX® Specification V2.2.1
  4. fossa.com

More in SBOM Audit Evidence