SBOM — software bill of materials

SBOM: the inventory, and what to do with your supplier’s.

An SBOM — software bill of materials — is a machine-readable inventory of every component inside a piece of software, including the dependencies its authors inherited rather than wrote. It exists because you cannot patch, or even assess, a component you cannot enumerate. This page covers what an SBOM is, the formats and minimum fields, how SBOMs are generated, what regulation now requires, and the question almost nobody writes about: what to actually do when a supplier sends you one.

Last reviewed

What is an SBOM?

SBOM meaning, without the supply-chain metaphor being stretched too far.

A software bill of materials is a formal, machine-readable list of the components that make up a piece of software: their names, versions, suppliers, and how they relate to one another. The analogy is the bill of materials in manufacturing — the parts list for a physical product — and it holds up reasonably well, with one important difference. A car’s parts list is finite and known at the point of assembly. A modern application’s dependency tree is deep, transitive, and frequently unknown even to the team that shipped it.

That gap is the entire argument for SBOMs, and it was made unanswerable in December 2021 by Log4Shell. The vulnerability itself was severe, but the reason it consumed weeks of effort across the industry was not exploitation — it was that most organisations could not answer a simpler question: do we run this at all? Log4j was buried several layers deep inside products bought from vendors, and finding it meant asking those vendors and waiting.

An SBOM turns that question from an investigation into a lookup. That is its whole value proposition, and it is worth being precise about it, because SBOMs are frequently oversold as a security control. An SBOM does not make software safer. It makes software legible, which is a precondition for acting quickly when something in it turns out to be dangerous.

SBOM formats

Three formats matter in practice. You do not usually get to choose — your supplier produces what its tooling produces, so consuming all three is the realistic position.

FormatOriginWhere you meet it
SPDXLinux Foundation; standardised as ISO/IEC 5962:2021Strong in open-source and licence-compliance workflows. The most common format where legal teams are involved as well as security.
CycloneDXOWASP; standardised as ECMA-424Designed for application security use from the outset. Widely produced by build-time scanners, and it incorporates Package URL, CPE and SPDX licence identifiers.
SWID tagsISO/IEC 19770-2Software identification tags, most often seen in asset-management contexts rather than produced fresh by build pipelines.

If you are specifying a format in a contract, CycloneDX or SPDX are the defensible asks. Requiring a specific one and then rejecting the other is a good way to spend six months negotiating rather than assessing.

The minimum elements

The NTIA’s 2021 minimum elements remain the reference point for what a usable SBOM must contain, and they are the right acceptance criteria to write into a contract. CISA has since published an updated take, so check the current version before treating this list as final.

  • Supplier name
    Who produced the component.
  • Component name
    What it is called by its supplier.
  • Version string
    Without this the SBOM cannot answer a vulnerability question at all.
  • Unique identifier
    Something machine-resolvable — a Package URL or CPE — rather than a name to match on.
  • Component hash
    Lets you confirm the artefact you received is the one the SBOM describes.
  • Dependency relationship
    How components nest. A flat list tells you what is present; the relationship graph tells you what pulled it in, which is what you need to fix it.
  • Author of the SBOM data and a timestamp
    Who generated it and when. An undated SBOM describes an unknown build and is close to worthless.

SBOM generation: where they come from

How an SBOM is produced determines how much you can trust it, and the difference is larger than most buyers realise.

Build-time generation

The SBOM is produced by the build pipeline, from the resolved dependency graph, at the moment the artefact is created. This is the accurate option: the tooling knows exactly what went in, including transitive dependencies and the specific versions resolved on that build.

Post-build analysis

A scanner inspects a finished artefact — a container image, a binary, a package — and infers its contents. Useful, and often the only option for software you did not build, but it is inference. Statically linked libraries, vendored code and rewritten binaries are exactly the cases it handles least well, and they are not rare.

Hand-assembled

Someone writes a list. Treat with the scepticism you would apply to any manually maintained inventory of a system that changes weekly.

The practical question to put to a supplier is therefore not “do you have an SBOM” but “is it generated by your build, and does a new one ship with every release?” An SBOM produced once, by hand, for a procurement exercise describes a version of the product you may never run.

What regulation now requires

SBOMs moved from good practice to obligation in two jurisdictions at once.

United States. Executive Order 14028 in May 2021 directed federal agencies toward SBOM requirements for software they purchase, which is what prompted the NTIA minimum elements and pulled SBOMs into commercial contracts well beyond government.

European Union. The Cyber Resilience Act entered into force on 10 December 2024 and applies to products with digital elements placed on the EU market. Its timetable matters for planning:

  • 11 September 2026 — reporting obligations under Article 14 apply. Manufacturers must report actively exploited vulnerabilities and severe incidents, with an early warning within 24 hours, a fuller notification within 72 hours, and a final report within 14 days of a corrective measure being available.
  • 11 December 2027 — the main obligations apply, including the product security requirements that make component inventories a practical necessity.

If you buy software, the second-order effect arrives sooner than the dates suggest: suppliers preparing for the CRA will be producing SBOMs and vulnerability-handling processes through 2026 and 2027, and the ones that are not are telling you something about their maturity.

What to do with a supplier’s SBOM the part nobody writes about

Almost all SBOM guidance is written for the team producing software. This is for the team that has just been sent one by a vendor and has to decide what it means.

  1. Check it describes the version you actually run
    Match the SBOM’s timestamp and artefact hash against the release you have deployed. An SBOM for a different build is not evidence about your instance, and this is the most common failure — SBOMs are collected at procurement and never refreshed.
  2. Check it is complete enough to be useful
    Run the minimum elements as acceptance criteria. Missing versions or absent dependency relationships make the document unusable for the only purpose you wanted it for.
  3. Resolve components against vulnerability data
    This is the step that produces value: match component identifiers against known vulnerabilities to get a list of what the product exposes you to. Expect a lot of hits, and expect most of them not to matter.
  4. Ask for VEX alongside it
    A Vulnerability Exploitability eXchange statement tells you whether the supplier considers a given vulnerability actually exploitable in their product. Without it an SBOM generates a queue of findings you cannot triage, and the supplier is the only party who can tell you that a vulnerable component is not reachable in their configuration.
  5. Write the refresh into the contract
    A new SBOM with every release, and notification when a component in a shipped version is found to be vulnerable. Without that clause you are relying on asking at exactly the moment you are least able to wait.
  6. Decide who owns the output
    SBOM ingestion produces continuous findings about third-party products. If nobody owns triaging them, the programme quietly becomes a document archive — which is where most SBOM initiatives end up.

What an SBOM will not tell you

An SBOM is an inventory, not an assessment. It says nothing about how the supplier writes code, whether their build pipeline is compromised, whether they patch promptly, or whether the component versions listed are configured safely. A supplier with an immaculate SBOM and no vulnerability-handling process is a worse risk than one with neither, because the paperwork invites you to stop asking. Treat it as one input to supplier assessment — see supplier risk management — rather than as evidence of software supply chain security on its own.

Software supply chain security beyond the SBOM

The inventory addresses one failure mode. These are the others worth having a position on.

  • Build system compromise. If the pipeline that produces the artefact is subverted, the SBOM is generated by the same compromised process. Provenance attestation — signed evidence of how and where a build ran — is the control that addresses this, and it is a separate ask from the SBOM.
  • Dependency confusion and typosquatting. Malicious packages published under names close to legitimate ones, or into public registries that take precedence over private ones.
  • Maintainer takeover. A legitimate package whose maintainer account is compromised or transferred. The component name and version look entirely normal in an SBOM.
  • Update-channel abuse. The delivery mechanism itself used to push a malicious signed update, which is the pattern behind the most damaging incidents in this category.

None of these are solved by an inventory. All of them are reasons to assess the supplier as an organisation as well as the artefact as an object.

SBOM, answered.

What does SBOM stand for?
Software Bill of Materials — a machine-readable inventory of the components that make up a piece of software, including transitive dependencies, with their versions, suppliers and relationships to one another.
What is the difference between SPDX and CycloneDX?
Both are standardised SBOM formats and both carry the minimum elements. SPDX (ISO/IEC 5962:2021) grew out of open-source licence compliance and is strong where legal and security teams share the workflow. CycloneDX (ECMA-424, from OWASP) was designed for application security use and is very widely produced by build-time scanners. If you consume SBOMs from many suppliers, plan to accept both.
Does an SBOM make software more secure?
No — not on its own. It makes software legible, which is what lets you answer “are we affected?” in minutes rather than weeks. The security benefit comes from what you do with it: resolving components against vulnerability data, triaging with VEX, and holding suppliers to a refresh obligation.
Is an SBOM legally required?
It depends on your market. US Executive Order 14028 drove SBOM requirements into federal procurement and, through that, into commercial contracts. In the EU the Cyber Resilience Act applies to products with digital elements, with reporting obligations from 11 September 2026 and the main obligations from 11 December 2027. Many organisations encounter the requirement contractually, through a customer, before any regulator reaches them.
What is VEX and why does it matter?
A Vulnerability Exploitability eXchange statement records whether a supplier considers a specific vulnerability actually exploitable in their product. It matters because an SBOM resolved against vulnerability databases typically produces far more findings than are genuinely relevant, and only the supplier can tell you which vulnerable components are not reachable in their build.
How often should a supplier provide an SBOM?
With every release. An SBOM describes one build, so a single document collected during procurement stops being accurate the first time the supplier ships an update. Put the refresh cadence in the contract alongside a notification obligation for newly discovered vulnerabilities in shipped versions.

The inventory is step one. Assess the supplier.

Book a 30-minute call and we will produce a full posture assessment on one of your software suppliers — external attack surface, breach history and questionnaire evidence, reconciled.