Safeguard
Supply Chain•

Why should research software ship an SBOM, and which format?

Research software gains from a software bill of materials: it makes later scanning possible. Which formats exist, how to produce one, and what to include.

Safeguard Security Team
4 min read

A software bill of materials is a machine readable list of what a program contains. Research software should ship one because it lets anyone scan the code for known vulnerabilities years later, without rebuilding the environment. CycloneDX and SPDX are the two common formats, and either works.

What it is and why it helps

An SBOM lists components, their versions and how they relate. It is an inventory, not a verdict. It does not say the software is safe. It says what to check.

For research code, the benefit is time. A paper's software may be reused for a decade. When a new advisory appears, an SBOM stored with the release lets a reader or a lab check the old version in minutes instead of reconstructing it.

The two formats

CycloneDX describes itself as a highly modular and extensible framework for representing supply chain information. Its current version on the project site is 1.7, released 2025-10-21, and it is published as ECMA-424. It can express components, services, dependencies and vulnerabilities, and the site says it suits vulnerability disclosure and VEX, the exchange format that records whether a vulnerability is actually exploitable in a given product.

SPDX is the other widely used format. Spack, a package manager built for large supercomputing centers, documents that every installation produces an SBOM in SPDX 2.3 format, stored in a .spack/sbom directory under the package prefix. The page notes that more formats are planned.

QuestionCycloneDXSPDX
Machine readableYesYes
Seen in research computing toolsPython audit tools can emit itSpack emits it
Choose whenYour tooling already writes itYour tooling already writes it

Pick whichever your build tooling produces natively. Converting later is possible, but starting with the native format avoids losing detail.

How to produce one

  • Python projects: pip-audit can write CycloneDX JSON or XML from an environment or requirements file.
  • Spack builds: read the SBOM that each install already contains.
  • Containers: generate the SBOM from the built image, not from the source tree alone, so operating system packages are included.

What to store with it

Keep the SBOM next to the release, with the date it was generated. Link it from the README. If you archive the project in a repository such as an institutional or domain archive, include it in the deposit.

Limits to state honestly

An SBOM from your source tree may miss packages added at build time. One generated from a lock file reflects the lock file, not whatever a user installed afterwards. Say how yours was produced.

A note on privacy and sharing

An SBOM lists packages and versions, not your data, so it is generally safe to publish with a release. Check it for internal paths, usernames or private package names before you do, since some tools record the build location. If a dependency is private or proprietary, decide whether to list it by name, and note the choice in the README so readers know the inventory is complete or deliberately partial.

Where Safeguard fits

Safeguard generates SBOMs and scans dependencies against known vulnerabilities, and it can keep checking a stored inventory as new advisories arrive.

Try it yourself

Open the inventory demo and look at how components and versions are listed. That is the same information an SBOM carries.

Click through it at your own pace, or open it full screen.

Quick check

Does an SBOM prove my software is secure?

No. It lists what is inside. You still need to match it against vulnerability data and act on the result.

Do I need both formats?

Usually not. Publish the one your tooling writes, and convert only if a recipient asks.

Sources

Last reviewed: 19 October 2026.

Never miss an update

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

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.