Knowledge · SBOM

Firmware SBOM and CVE checks without source code: the approaches

Four ways: source, shipped binary, supplier SBOM, review by hand. Without source code, the last three remain.

CISA: SBOM types

Each one sees something different. The source shows what is in the project. The binary shows what ends up in the device. The supplier SBOM shows what the supplier declares.

As of 1 November 2026 · 6 min readYou make the conformity statement. This page and our reports provide technical findings as its basis.

At a glance
Format under the CRA
commonly used, machine-readable
Without source code
Binary, supplier SBOM, by hand
In BSI TR-03183-2
CycloneDX, SPDX
CRA SBOM obligation
from 11 December 2027

How do the four approaches differ?

SourceBinarySupplier SBOMBy hand
ReadsProject folder, libraries, build scriptsThe image as you ship itCycloneDX or SPDX fileMap file, release notes, BOMs
Strong forYour own developmentBought-in firmware, old releasesParts without sourceSingle questions
Ends atCode the linker removesVersions the binary does not evidenceThe supplier's statementThe effort per firmware release
NeedsSource code, your suppliers' tooThe fileThe supplier's fileTime and someone who knows the build

What does source code analysis give you?

What it reads
The project folder, the bundled libraries and, where they exist, package managers and build scripts.
Strong for
Your own development with full access. Dependencies are visible before a build exists, and a vulnerability can be fixed at the source.
Where it ends
The project folder also holds code the linker never puts into the image. CISA names exactly this as the limit of this SBOM type. In a public Keil project vTaskEndScheduler is in tasks.c and missing from the AXF. C projects without a package manager also lack the file a tool would otherwise read the list from.
What you need
The source code, your suppliers' included.
Build-time variant
The SBOM comes from the build itself. According to CISA this increases confidence that it describes the built artifact correctly. It may mean changing the build process.

What does analysing the shipped binary give you?

What it reads
The image as you ship it. For embedded Linux the file system with its package data and programs, for microcontrollers the ELF or AXF from Keil, IAR or GCC, the BIN if nothing else exists.
Strong for
Bought-in firmware, old releases and anything without a development environment. CISA names legacy firmware artifacts as an example. No access to the build is needed, and the result can verify SBOMs from other sources. It counts what is in the device.
Where it ends
If the analysis does not recognise a component, it is missing from the list; CISA names omissions as a limit of this type. A version is not always in the binary. In the Keil and the GCC example the FreeRTOS version sat only in the debug information and the BIN did not carry it. The Ambiq HAL in the Keil example and TouchGFX in the GCC example came as prebuilt archives: function names in the binary, no version. An honest result leaves that version blank. Encrypted images cannot be read without the key; the manufacturer can have the unencrypted build output checked.
What you need
The file. The more debug information it carries, the more versions are evidenced: the ELF or AXF gives more than the BIN.

What is a supplier SBOM worth?

What it reads
A CycloneDX or SPDX file your supplier ships with a module, stack or operating system. Germany's BSI guideline TR-03183-2 names both formats.
Strong for
Parts you never see as source. The supplier knows the product best, and the file drops straight into your own bill of materials.
Where it ends
The SBOM is the supplier's statement about one release. Whether it matches the firmware you ship shows only when it is compared with the binary. Missing versions or identifiers make a component hard to connect to vulnerability data.
What you need
The supplier's file, matching the version you build in.

When is a review by hand worth it?

What it reads
Map file, linker output, release notes, licence files, purchasing BOMs.
Strong for
Single questions where a person has to know the context, such as whether a function is reachable on this device at all.
Where it ends
The effort comes back with every firmware release.
What you need
Time and someone who knows the build.

Which approach fits which situation?

The approaches do not exclude each other. One SBOM may combine data from several of them.

Your situationWhat fits
Own development, full sourceSource or build, the binary as a cross-check
Bought-in module, image onlyBinary, plus the supplier SBOM if there is one
Supplier ships an SBOMTake it over and compare it with the binary
Old firmware release in the fieldBinary
One vulnerability, one questionBy hand, based on the SBOM

How does an SBOM become a CVE check?

Known vulnerabilities attach to a component and a version. The check is only as good as those two values, whichever approach produced them. Without a version nobody can say whether a vulnerability applies; the field stays blank and is marked as an open question.

One database no longer covers this. Since 15 April 2026 the NVD adds severity and affected products first for selected CVEs, such as those in CISA's KEV catalog. Backlogged CVEs published before 1 March 2026 are set to “Not Scheduled”. Vendor advisories and the records of the CVE numbering authorities close part of that gap.

What does the EU Cyber Resilience Act require?

Annex I Part II point 1 requires manufacturers to identify and document the components of their product, including by drawing up an SBOM in a commonly used, machine-readable format covering at least the top-level dependencies. The CRA does not prescribe which approach gets you there. The obligation applies from 11 December 2027 (Art. 71(2)).

Where does LegacyMind fit?

LegacyMind works with the second and the third approach: it reads the shipped image, Linux and microcontroller alike (ELF, AXF and OUT from Keil, IAR or GCC, plus BIN and HEX), and supplier SBOMs in CycloneDX or SPDX. A version the binary does not evidence stays blank. After the scan, LegacyMind keeps matching newly published CVEs to the same firmware.

Questions

Can you create an SBOM without source code?

Yes. Components and often versions can be read from the shipped binary, more from an ELF or AXF than from a BIN.

Is my supplier's SBOM enough?

It is the supplier's statement about one release. Comparing it with the binary shows whether it matches the firmware you ship.

Why can source analysis list components the device does not contain?

Because the project holds code the linker removes. CISA names this as a limit of source SBOMs.

What happens when a version is not in the binary?

It stays blank and becomes an open question, for example to the supplier. A guessed version produces wrong CVE matches in both directions.

Which format does the CRA need?

A commonly used, machine-readable one. Germany's BSI TR-03183-2 names CycloneDX and SPDX.

Sources

  1. [1]CISA: Types of Software Bill of Material (SBOM) Documents, 21 April 2023
  2. [2]Regulation (EU) 2024/2847, Cyber Resilience Act
  3. [3]BSI TR-03183-2, version 2.1.0
  4. [4]NIST: NVD operations from April 2026

Check your own image

Upload one firmware image, an AXF or a supplier SBOM in your own LegacyMind account. Report and SBOM within three working days, NDA on request. The app and the reports are in German; questions in English are welcome.