NTIA SBOM Minimum Elements: What Federal Contractors Must Deliver in 2026

The National Telecommunications and Information Administration defined the baseline for SBOM compliance in 2021. CISA has since expanded and refined those requirements. Here is exactly what a compliant SBOM must contain — and how to verify yours measures up.

The Origin of SBOM Minimum Elements

In July 2021, the National Telecommunications and Information Administration (NTIA) published "The Minimum Elements for a Software Bill of Materials (SBOM)" — a foundational document that defined the baseline data fields that any SBOM must contain to be considered complete and useful.

This document was a direct response to Executive Order 14028 (May 2021), which required the Department of Commerce and NTIA to publish guidance on the minimum elements of an SBOM. The goal was not to define the most comprehensive possible SBOM — it was to define the minimum that would enable meaningful security and compliance activities.

Since then, CISA has released additional guidance including "Framing Software Component Transparency" (September 2024) and a draft "2025 Minimum Elements for SBOM" that refines and expands on the original NTIA document. In early 2026, these updated guidelines represent the current authoritative standard.

The Seven NTIA Minimum Elements

The NTIA defined seven data fields that every component entry in an SBOM must include. These map to specific fields in both SPDX and CycloneDX formats.

# Element Description SPDX Field CycloneDX Field
1 Supplier Name Name of the organization that created or maintains the component PackageSupplier component.supplier
2 Component Name The name of the library, package, or module PackageName component.name
3 Version The specific version of the component in use PackageVersion component.version
4 Unique Identifier A unique identifier to enable cross-referencing with vulnerability databases. PURL (Package URL) or CPE recommended. ExternalRef (PURL/CPE) component.purl
5 Dependency Relationships Which components depend on which others — enables graph analysis of the full dependency tree Relationship: DEPENDS_ON dependencies
6 SBOM Author Who created the SBOM (person, tool, or organization) Creator metadata.tools / metadata.authors
7 Timestamp When the SBOM was created — enables time-based analysis and audit trails Created metadata.timestamp

Deep Dive: Each Minimum Element

1. Supplier Name

The Supplier Name identifies who created or distributes the component. For well-known open source projects, this is often the project's maintaining organization (e.g., "Apache Software Foundation" for Log4j). For packages distributed via package managers, the supplier is typically the package author or the organization listed in the package metadata.

Important: "Supplier" is not the same as "Originator" in SPDX terminology. The supplier is the entity from whom you received the component — which could be a package registry, a vendor, or the open source project directly.

2. Component Name

The Component Name is the canonical name of the library or package. For package manager-sourced components, this should be the exact package name as listed in the registry (e.g., log4j-core, not Apache Log4j). Consistency with package manager naming enables accurate matching against vulnerability databases.

3. Version

The Version must be a specific, exact version — not a range. 2.14.1 is valid; >=2.0.0 is not. Version is the most critical field for vulnerability matching: CVEs are almost always tied to specific version ranges, and an imprecise version renders vulnerability scanning inaccurate.

// Common Error: Version Ranges

Many build systems store dependency version constraints (^1.2.0, ~1.2) rather than the resolved version. Your SBOM generator must resolve these to the exact installed version, not the constraint. Always scan lock files or build artifacts, not just package manifests.

4. Unique Identifier

The NTIA recommends a Unique Identifier to enable reliable cross-referencing across systems. Two standards are accepted:

Best practice is to include both PURL and CPE when possible, as different vulnerability databases use different identifiers.

# PURL examples by ecosystem
npm: pkg:npm/lodash@4.17.21
PyPI: pkg:pypi/requests@2.31.0
Maven: pkg:maven/org.springframework/spring-core@6.1.0
NuGet: pkg:nuget/Newtonsoft.Json@13.0.3
Go: pkg:golang/github.com/gorilla/mux@v1.8.0
Cargo: pkg:cargo/serde@1.0.193

5. Dependency Relationships

Dependency relationships define how components are connected — which depends on which. This graph structure is essential for understanding the blast radius of a vulnerability: if Component A is vulnerable and Component B depends on Component A, then any application using Component B is also affected.

SPDX uses relationship types (DEPENDS_ON, CONTAINS, DYNAMIC_LINK, etc.) to capture these connections. CycloneDX uses a dedicated dependencies array. Both should represent the full transitive graph, not just direct dependencies.

6. SBOM Author

The SBOM Author field records who — or what tool — generated the SBOM. In automated pipelines, this is typically the tool name and version (e.g., Tool: syft-1.0.1). For manually curated SBOMs, it may include a person's name and organization.

This field matters for audit trails. When a regulator asks about an SBOM from two years ago, knowing the tool and version that generated it helps assess its completeness and reliability.

7. Timestamp

The Timestamp records when the SBOM was created, in ISO 8601 format (e.g., 2026-01-15T09:32:00Z). It enables time-based analysis — you can compare SBOMs across release versions, determine how current a given SBOM is, and correlate SBOMs with CVE publication dates.

CISA 2025/2026 Updates: What Changed

CISA's September 2024 guidance ("Framing Software Component Transparency") and the 2025 draft updates expanded on the NTIA minimum elements in several ways:

Verifying Your SBOM Meets the Requirements

Before submitting an SBOM to a federal customer, regulator, or auditor, verify it against the minimum elements:

  1. Open the SBOM file and check that every component entry has all seven fields populated — not just the document header.
  2. Verify that versions are exact (not ranges or "unknown").
  3. Confirm that PURLs or CPEs are present for all components to enable vulnerability matching.
  4. Check that dependency relationships form a graph — not just a flat list of components.
  5. Validate the file against the SPDX or CycloneDX schema using a validator tool.
  6. Verify the timestamp is present and current (generated at build time, not a stale document).
// Compliance Made Simple

Generate NTIA-Compliant SBOMs Automatically with Fossity

Fossity generates SBOMs that meet NTIA minimum element requirements — and go beyond them. Every SBOM generated by Fossity includes all seven mandatory fields for every component, plus enriched metadata (license data, hash values, VEX statements) recommended by CISA's 2025/2026 guidance. Fossity's continuous monitoring means your SBOMs stay current — you always have an accurate, up-to-date component inventory ready for any regulatory inquiry.

Generate Compliant SBOMs →

Practical Checklist for Federal Contractors

// Author: Esteban C.