The Technical Foundation

The Power of the SBOM & VEX

The CRA requires a complete, machine-readable SBOM with every release. Why a simple ingredient list isn't enough — and how 'VEX' saves you from an avalanche of alerts.

A Software Bill of Materials (SBOM) is a machine-readable inventory of all components, libraries and dependencies in your software product. Modern applications rely for 70 to 90 percent on code someone else once wrote. If one of those building blocks breaks, your product breaks.

Since the CRA this is no longer a best practice but a legal requirement: with every release you must be able to produce an up-to-date, machine-readable SBOM (Annex I).

Two formats: SPDX and CycloneDX

You don't compile an SBOM by hand: mature open-source tools (such as Syft, Trivy or cdxgen) generate it automatically from your build. You only pick the format — there are two recognised standards, each with its own focus:

SPDX

Designed from a legal and compliance perspective (Linux Foundation). Unrivalled in licence detail. Officially ISO-certified and often required by governments.

CycloneDX

Designed by security engineers (OWASP). Lightweight and perfectly integrated into fast CI/CD pipelines. Offers native support for VEX documents.

The Transitive Iceberg

An SBOM that shows only the "direct" ingredients (the libraries your developers added explicitly) gives a false sense of security. As soon as you add one library, it drags in its own requirements. We call this transitive dependencies. A simple project with 5 libraries quickly explodes beneath the surface into a web of 500+ nested components. Your SBOM scanner must be able to map the full depth of this iceberg.

Iceberg: only ~5% of libraries are directly visible, 500+ stay hidden below the surface

The Rescue: VEX (Vulnerability Exploitability eXchange)

VEX is an additional, machine-readable document that lives alongside the SBOM. In it you specify the actual status of a vulnerability. Is the status set to Not Affected (because the vulnerable code is never called)? Then your dashboard turns green and you filter out the noise. VEX enables your team to patch only what actually poses a risk to the end product.

Drowning in the noise

As soon as your SBOM is generated fully automatically, the next problem arises: the scanner raises the alarm. Often hundreds of "Critical" CVEs (vulnerabilities) are found in your thousands of transitive dependencies. Developers often import a huge library just to use 5% of the code (a single function). Is the vulnerability in the unused 95%? Then your application is not exploitable (unreachable).

Two techniques do the heavy lifting. Reachability analysis checks whether the vulnerable code sits in an active code path at all; VEX records, per vulnerability, whether your product is actually affected. Switch them on below and watch a typical list of nearly 500 alerts shrink to the handful that truly matter:

Active alertsIncluding unreachable libraries
480

How much noise is in your pipeline?

Find out in two minutes how mature your SBOM and VEX approach is with the free Quickscan, or build it step by step in the 4-week Survival Challenge.