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.
| Format | Origin | Where you meet it |
|---|---|---|
| SPDX | Linux Foundation; standardised as ISO/IEC 5962:2021 | Strong in open-source and licence-compliance workflows. The most common format where legal teams are involved as well as security. |
| CycloneDX | OWASP; standardised as ECMA-424 | Designed for application security use from the outset. Widely produced by build-time scanners, and it incorporates Package URL, CPE and SPDX licence identifiers. |
| SWID tags | ISO/IEC 19770-2 | Software 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 nameWho produced the component.
- Component nameWhat it is called by its supplier.
- Version stringWithout this the SBOM cannot answer a vulnerability question at all.
- Unique identifierSomething machine-resolvable — a Package URL or CPE — rather than a name to match on.
- Component hashLets you confirm the artefact you received is the one the SBOM describes.
- Dependency relationshipHow 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 timestampWho 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.
- Check it describes the version you actually runMatch 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.
- Check it is complete enough to be usefulRun the minimum elements as acceptance criteria. Missing versions or absent dependency relationships make the document unusable for the only purpose you wanted it for.
- Resolve components against vulnerability dataThis 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.
- Ask for VEX alongside itA 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.
- Write the refresh into the contractA 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.
- Decide who owns the outputSBOM 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
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?
What is the difference between SPDX and CycloneDX?
Does an SBOM make software more secure?
Is an SBOM legally required?
What is VEX and why does it matter?
How often should a supplier provide an SBOM?
Go deeper.
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.