Software Bill of Materials (SBOM)
A software bill of materials (SBOM) lists every component inside a piece of software: its name, version, license and where it comes from. Use it to check ThingsBoard against vulnerability databases, to review licenses, or to meet a compliance requirement.
ThingsBoard publishes SBOMs starting with version 4.4.1. Each SBOM is a CycloneDX 1.6 JSON file. The SBOM of a package names the SHA-256 hash of the package, and the SBOM of an image names the image digest, so you can tell exactly which artifact it describes.
Where to find the SBOMs
Section titled “Where to find the SBOMs”| Artifact | Where its SBOM is | What it covers |
|---|---|---|
.deb, .rpm and Windows .zip packages |
Next to the package on the GitHub release page, as <package file>.cdx.json |
The application with its libraries, and the third-party files shipped in the package. Java is not listed, because the package does not include it |
| Docker images | Attached to the image in the registry | The operating system packages, the Java or Node.js runtime and the application |
| Java application jars | Inside the jar, at META-INF/sbom/application.cdx.json |
The jar only |
Installation packages
Section titled “Installation packages”Download the SBOM from the release page the same way as the package:
wget https://github.com/thingsboard/thingsboard/releases/download/v4.4.0.2/thingsboard-4.4.0.2.deb.cdx.jsonTo check that an SBOM belongs to the package you have, compare the hash it records with the hash of your file:
sha256sum thingsboard-4.4.0.2.debjq -r '.metadata.component.hashes[] | select(.alg == "SHA-256") | .content' thingsboard-4.4.0.2.deb.cdx.jsonDocker images
Section titled “Docker images”The SBOM of an image is stored in the registry and linked to the image, so the image itself stays unchanged. Each architecture (linux/amd64, linux/arm64) has its own SBOM.
You need the ORAS command-line tool to download it.
-
Find the SBOM attached to the image for your architecture:
Terminal window oras discover --platform linux/amd64 \--artifact-type application/vnd.cyclonedx+json \docker.io/thingsboard/tb-node:4.4.0.2The output shows the image digest and, below it, the digest of the SBOM:
docker.io/thingsboard/tb-node@sha256:2a84…└── application/vnd.cyclonedx+json└── sha256:64f8…└── [annotations]└── org.opencontainers.image.created: "2026-11-10T10:10:07Z" -
Download the SBOM by its digest:
Terminal window oras pull docker.io/thingsboard/tb-node@<SBOM digest from step 1>ORAS saves the file to the current directory as
thingsboard_tb-node_<version>_<architecture>_<first 12 characters of the image digest>.cdx.json.
Use the same commands for the other images, for example thingsboard/tb-mqtt-transport or thingsboard/tb-web-ui.
Java application jars
Section titled “Java application jars”Read the SBOM of a jar from an installed system, without a download:
unzip -p /usr/share/thingsboard/bin/thingsboard.jar META-INF/sbom/application.cdx.json > thingsboard.cdx.jsonUse an SBOM
Section titled “Use an SBOM”To scan an SBOM for known vulnerabilities:
trivy sbom thingsboard-4.4.0.2.deb.cdx.jsongrype sbom:thingsboard-4.4.0.2.deb.cdx.jsonYou can also upload the file to Dependency-Track to follow new vulnerabilities over time.
Was this helpful?