Safeguard
Supply Chain•

The CSAF 2.0 VEX profile: a requirements checklist for publishers

What a CSAF 2.0 document must contain to count as a VEX profile document: product tree, product status, impact statements and action statements.

Safeguard Security Team
3 min read

A CSAF 2.0 document satisfies the VEX profile when it has a product tree, a vulnerabilities list, at least one product status, a CVE or other ID, notes, and the right supporting statements for each status. Its document category must be csaf_vex. This checklist walks through what the OASIS specification requires.

Where the profile comes from

CSAF 2.0 defines several profiles. Profile 5 is VEX. The spec says its main purpose is to state that and why a certain product is, or is not, affected by a vulnerability.

The checklist

A document must satisfy everything in the CSAF Base profile, plus:

  1. A product tree that lists all products referenced later in the document, regardless of their state.
  2. A vulnerabilities list covering all vulnerabilities.
  3. At least one of these product status groups per the vulnerability entries: fixed, known_affected, known_not_affected or under_investigation.
  4. At least one of a CVE field or an ids field for each vulnerability.
  5. Notes that provide details about the vulnerability.
  6. The document category set to csaf_vex.

Rules for known_not_affected

For each product in known_not_affected, an impact statement must exist. It can be machine readable, as a flag in the vulnerability's flags. Or it can be human readable, as a threat entry whose category is impact and whose details describe why the vulnerability cannot be exploited.

Compare this with OpenVEX and the CISA requirements, where the same idea appears as a justification or impact statement.

Rules for known_affected

For each product in known_affected, additional product specific information must be provided in remediations as an action statement. Notes and threats may add detail. The categories no_fix_planned and none_available are permitted for the action statement, which lets a publisher honestly say that no fix exists.

Using product groups

Product group IDs may be used in remediations and threats. The catch is that every product ID must still end up with the information its status requires. A group does not excuse a missing impact statement for any member.

Statuses in CSAF names

CSAF uses known_not_affected, known_affected, fixed and under_investigation. These align with the not_affected, affected, fixed and under_investigation of the CISA minimum requirements.

Why a publisher might choose CSAF

CISA notes that CSAF and CycloneDX provide information beyond what is required for VEX. CSAF suits vendors who already publish advisories, because the VEX profile reuses the same structure. Smaller teams may find OpenVEX lighter.

Validation tips

CSAF has tooling and a strict schema, so validate before you publish. Check these points by hand as well, since they are easy to miss:

  • Every product in the product tree that appears in a status group has the supporting statement its status needs.
  • The filename follows the CSAF rule: the tracking ID lower cased, with other characters replaced by underscores, and a .json extension.
  • Notes exist for each vulnerability.
  • The category field reads csaf_vex and not the category of a normal advisory.

A document that fails the profile can still be a valid CSAF advisory, so run the profile check separately.

Quick check

Is CSAF VEX different from a normal CSAF advisory?

It is a profile. A normal advisory has different requirements. The VEX profile fixes the category as csaf_vex and demands impact or action statements per product status.

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.