Cyber Resilience Act
VEX
Practical term
VEX stands for “Vulnerability Exploitability eXchange”. A VEX document answers exactly one question for a given vulnerability and a given product: is this product affected?
The reason it exists is a practical problem. Matching a Software Bill of Materials (SBOM) against vulnerability databases regularly produces long hit lists. A large share of them lead nowhere, because the vulnerable function is not reachable in your product at all. Without a documented assessment, every one of those hits gets re-examined, on every scan, by every customer.
The four status values
- not affected means the vulnerability has no impact on this product. This status calls for a justification, such as the vulnerable code never being executed or being shielded by configuration.
- affected means the vulnerability does have an impact; a note on mitigations usually goes with it.
- fixed signals that a corrected version is available.
- under investigation says the assessment is still ongoing. That, too, is an honest and useful statement.
The first value is the interesting one. “Not affected”, with a reason someone can follow, is the statement that saves the most effort on both sides of the supply chain.
The justification is the actual content
A “not affected” without a justification is worthless. The recipient cannot tell whether you assessed it carefully or simply do not want to deal with it. Five standardised justifications are therefore in common use:
- Component not present: the vulnerable subcomponent is not in the product at all, even though a naive match suggested it was.
- Vulnerable code not present: the component is included but the affected code is not, for instance because the build strips unused modules.
- Vulnerable code not in the execute path: the code is there but is never reached by your product.
- Vulnerable code cannot be controlled by an adversary: it does execute, but an attacker cannot influence the inputs required to exploit it.
- Inline mitigations already exist: exploitation is already prevented by protective mechanisms in the product.
The third is both the most common and the most demanding: it presupposes reachability analysis. Anyone stating it should record what it rests on. That is precisely the assertion likely to be examined later.
What belongs in a VEX document
Whatever the format, every statement needs four things to be machine-usable:
- a unique identifier for the product and its version, ideally the same one used in the Software Bill of Materials (SBOM)
- the vulnerability, usually via its CVE identifier
- the status and, for “not affected”, the justification
- a timestamp, because every statement only holds for one point in time
That last point is routinely underestimated. A VEX document is a snapshot: when the product version or your knowledge changes, the statement has to follow. An outdated “not affected” is worse than no statement at all.
Formats
VEX is a concept, not a single file format. Three implementations are common: as an extension of CycloneDX, as a profile of the CSAF advisory standard, and as a lightweight standalone format called OpenVEX. Which one fits depends on what your tooling and your customers work with.
Why the effort pays
VEX moves work from reaction into documentation. Instead of repeating the same analysis after every prominent vulnerability and answering the same customer questions one by one, the assessment is recorded once and passed on in machine-readable form.
The side effect matters directly for the Cyber Resilience Act (CRA): it creates an evidenced history of which vulnerability was assessed how, and when. That traceability is exactly what market surveillance authorities look for when they examine how vulnerabilities are handled.
Practical questions
-
No, it builds on it. The Software Bill of Materials (SBOM) says what is inside your product. VEX says what that means for a specific vulnerability. Without the bill of materials there is no reference point; without VEX every hit stays an open question.
-
No, the regulation never mentions VEX. It does require you to identify and document vulnerabilities and to inform users about relevant ones, where appropriate in a structured, machine-readable format. VEX is the established means for exactly that, but only one of several possible implementations.
-
There is no publication duty. It usually pays off anyway: a documented “not affected” with a reason saves you and your customers the same round of questions after every prominent vulnerability. Without it, you answer the same question by hand, once per customer.
This glossary is for orientation and does not constitute legal advice. The wording of Regulation (EU) 2024/2847 prevails.