Safeguard
Supply Chain•

What do you do when two VEX statements about one flaw conflict?

When a supplier and a third party disagree on a VEX status, compare author, date, scope and evidence, then record your decision. A clear procedure.

Safeguard Security Team
3 min read

When two VEX statements conflict, do not pick the newer one by default. Compare who wrote each, the date, the product and version scope, and the evidence given. Then record your own decision with reasons. VEX is a claim from an author, and you own the final risk call.

How conflicts arise

Your supplier might say a flaw is not affected, while a researcher, a downstream integrator or your own scan says it is. Or a supplier may publish an update that contradicts its earlier statement. Both are normal.

What the spec gives you

OpenVEX defines four statuses: not affected, affected, fixed and under investigation. A not affected statement must carry a justification or impact statement. Its timestamps and versions help ordering: the document has a required version that must increase when content changes, statements have their own optional version, and statements are ordered by timestamp. The spec describes VEX as a sequence of statements in which later ones override and enrich earlier ones, from the same author.

That last point matters. Ordering applies to one author's sequence. It does not say a third party's newer statement beats the maker's older one.

Decision procedure

  1. Check authorship. Who is the author, and are they in a position to know? A maker knows its code. An integrator knows its product.
  2. Check scope. Does each statement name the same product, version and component? A statement about version 3 does not settle version 4.
  3. Check dates. When was each true? Look at the statement timestamp, not only the document date.
  4. Check evidence. A justification such as the vulnerable code not being present is testable. A bare assertion is weak.
  5. Test it. Where possible, verify with a quick experiment or by reading the changelog.
  6. Decide and record. Write the decision, the reason, the reviewer and a review date.
  7. Tell both parties. Send your reasoning back and invite correction.

A table for common conflicts

ConflictUsual resolution
Supplier not affected, scan says affectedAsk supplier for justification, keep finding open until answered
Supplier under investigation then fixedAccept after confirming the fixed version is the one you run
Third party affected, supplier not affectedCompare scope and evidence, escalate to both
Same author, newer statement reversesFollow the later one, confirm the reason

Keep a layered record

Store each statement with author, date and source. Never overwrite one with another. Your own decision sits on top as a separate layer, so an auditor can see the inputs.

Try it yourself

Click through it at your own pace, or open it full screen.

Look at how exploitability is determined, then ask which statement in a conflict has real evidence behind it.

Where Safeguard fits

Safeguard provides reachability analysis for code you scan, giving you independent evidence to weigh against statements. The free scan is a way to try it.

Quick check

Does the newest statement always win?

No. Ordering holds within one author's sequence. Across authors, weigh scope and evidence.

Who makes the final call?

You do. Record your decision and reasoning as its own layer.

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.