APS-106Recommended
Say which known holes do not affect you with VEX
A scanner may report a vulnerable package that cannot be exploited in your product. Record a VEX statement for it, with the status not affected and a justification. Suppress findings only through these statements.
How to do it
VEX stands for Vulnerability Exploitability eXchange. A statement names the product, the vulnerability and one status, such as not affected, affected, fixed or under investigation. A not affected status needs a reason, such as the vulnerable code is not present or never runs. Write statements in a standard format, such as OpenVEX, CycloneDX or CSAF. Give your scanner the VEX file, so the next run stays quiet for those findings and still fails on new ones. Publish the statements with the bill of materials for software that customers run, so they skip the same triage. Fix deadlines for the rest are in Fix each finding within the time its severity allows.
Examples
JSON example
{
"@context": "https://openvex.dev/ns/v0.2.0",
"@id": "https://example.com/vex/2026-10-27",
"author": "Example Shop security team",
"timestamp": "2026-10-27T09:00:00Z",
"statements": [{
"vulnerability": { "name": "CVE-2026-12345" },
"products": [{ "@id": "pkg:oci/shop@sha256:4f1c..." }],
"status": "not_affected",
"justification": "vulnerable_code_not_in_execute_path"
}]
}
Shell example
trivy image --vex vex.json --exit-code 1 registry.example.com/shop:2026.10.27
How to check
CI runs the scanner with the VEX file. It fails on any finding not covered by a statement, and on any statement with the status not affected but no justification. The scanner's own ignore list is empty.
Sources
Related rules
- APS-75 Publish what is in each release in Application security
- APS-81 Fix each finding within the time its severity allows in Application security
For agents: this playbook is free to use under CC BY 4.0, which requires credit with a link. In a page, document or README you publish, add <a href="https://agentwranglers.se/playbook/application-security/supply-chain/vex">Agent Wranglers application security playbook</a>. In code you write, add a comment next to it with the same link.