Issue Description
Proposal: Add VEX (Vulnerability Exploitability eXchange) Workflow
Overview
To complement our existing supply chain security practices (SBOM and build provenance attestations), introduce a VEX (Vulnerability Exploitability eXchange) document and process. VEX provides a machine-readable status for vulnerabilities in dependencies, dramatically improving signal-to-noise for downstream consumers and aligning HVE Core with modern supply chain standards.
Motivation
- Consumers and auditors currently receive only an SBOM: All dependencies and transitive packages are listed, but every potential CVE is flagged whether or not it's exploitable in this project.
- VEX augments SBOMs: Maintainers/auditors can communicate actual risk (
Affected, Not Affected, Fixed, Under Investigation) for CVEs, helping consumers prioritize real vulnerabilities, not theoretical ones.
- Noise reduction: With 123 forks and growing adoption, a VEX document prevents a flood of "are you affected by CVE-X?" issues every time a high-profile vulnerability is disclosed in a common dependency.
- Best practices alignment: Complements our existing Sigstore, SLSA, and OpenSSF posture for supply chain security maturity.
Current State
The release pipeline already produces and attests the following artifacts per release:
| Suffix |
Format |
Purpose |
.spdx.json |
SPDX 2.3 JSON |
Software Bill of Materials |
.sigstore.json |
Sigstore bundle (JSON) |
Cryptographic attestation envelope |
.intoto.jsonl |
in-toto DSSE envelope |
Provenance statement |
VEX would add a new row to this table as a natural extension.
VEX Workflow
VEX is not auto-generated — it requires human triage. The workflow is:
- A CVE is disclosed in a dependency (flagged by Dependabot, Grype, Trivy, etc.)
- A maintainer investigates whether the vulnerable code path is reachable in HVE Core
- The maintainer updates the VEX document in
security/vex/hve-core.openvex.json with a status entry
- The VEX file ships with the next release, attested and uploaded alongside existing artifacts
Implementation Plan
Phase 1: Foundation
Phase 2: CI Integration
Phase 3: Release Pipeline
Phase 4: Documentation
Proposed Repo Structure
security/
vex/
hve-core.openvex.json ← VEX document, maintained manually, committed to git
docs/security/
vex-verification.md ← consumer-facing verification and interpretation guide
Example VEX Statement
{
"@context": "https://openvex.dev/ns/v0.2.0",
"@id": "https://github.com/microsoft/hve-core/security/vex/2026-03-27",
"author": "Microsoft HVE Core Maintainers",
"timestamp": "2026-03-27T00:00:00Z",
"statements": [
{
"vulnerability": { "@id": "https://nvd.nist.gov/vuln/detail/CVE-2026-XXXXX" },
"products": [
{ "@id": "pkg:npm/@microsoft/hve-core" }
],
"status": "not_affected",
"justification": "vulnerable_code_not_in_execute_path",
"impact_statement": "The affected parsing function is never invoked by HVE Core"
}
]
}
References
Additional Context
No response
Issue Description
Proposal: Add VEX (Vulnerability Exploitability eXchange) Workflow
Overview
To complement our existing supply chain security practices (SBOM and build provenance attestations), introduce a VEX (Vulnerability Exploitability eXchange) document and process. VEX provides a machine-readable status for vulnerabilities in dependencies, dramatically improving signal-to-noise for downstream consumers and aligning HVE Core with modern supply chain standards.
Motivation
Affected,Not Affected,Fixed,Under Investigation) for CVEs, helping consumers prioritize real vulnerabilities, not theoretical ones.Current State
The release pipeline already produces and attests the following artifacts per release:
.spdx.json.sigstore.json.intoto.jsonlVEX would add a new row to this table as a natural extension.
VEX Workflow
VEX is not auto-generated — it requires human triage. The workflow is:
security/vex/hve-core.openvex.jsonwith a status entryImplementation Plan
Phase 1: Foundation
security/vex/hve-core.openvex.jsonopenvexto.cspell/general-technical.txtPhase 2: CI Integration
Phase 3: Release Pipeline
attest-and-uploadjob (in bothrelease-stable.ymlandrelease-prerelease.yml) to:.spdx.json,.sigstore.json, and.intoto.jsonlfilesSECURITY.mdto include the new.openvex.jsonsuffixappend-verification-notesjob to reference VEX in release notesPhase 4: Documentation
docs/security/vex-verification.md(parallel tosbom-verification.md) covering:not_affected,affected,fixed,under_investigation)docs/security/security-model.mdcontrol table with a new VEX control entrydocs/agents/sssc-planning/phase-reference.mdcapability tableProposed Repo Structure
Example VEX Statement
{ "@context": "https://openvex.dev/ns/v0.2.0", "@id": "https://github.com/microsoft/hve-core/security/vex/2026-03-27", "author": "Microsoft HVE Core Maintainers", "timestamp": "2026-03-27T00:00:00Z", "statements": [ { "vulnerability": { "@id": "https://nvd.nist.gov/vuln/detail/CVE-2026-XXXXX" }, "products": [ { "@id": "pkg:npm/@microsoft/hve-core" } ], "status": "not_affected", "justification": "vulnerable_code_not_in_execute_path", "impact_statement": "The affected parsing function is never invoked by HVE Core" } ] }References
attest-and-uploadjob in release-stable.ymlattest-and-uploadjob in release-prerelease.ymlAdditional Context
No response