This document is the canonical AI Control Plane process for how open CVEs are triaged, remediated, temporarily accepted, reviewed, evidenced, and described to buyers.
It governs vulnerabilities; it does not claim zero vulnerabilities, instant upstream patch availability, or blanket compliance by itself.
This policy applies to CVEs affecting the repository's supported host-first surface, including tracked images, pinned dependencies, deployment assets, and operator workflows that ship with the public reference implementation.
Use it together with these canonical artifacts:
| Artifact | Role |
|---|---|
| KNOWN_LIMITATIONS.md | Human-readable register for current material findings and operator-facing status |
demo/config/supply_chain_vulnerability_policy.json |
Machine-readable accepted-risk inventory with expiry windows |
| CVE_REVIEW_LOG.md | Dated quarterly and off-cycle review record |
| release/GO_NO_GO.md | Severity rubric, release stop rule, and presentation decision contract |
Severity follows the release rubric in release/GO_NO_GO.md. Scanner severity is an input, not the only decision factor.
Every new CVE is assessed using:
- scanner severity and CVSS context
- whether the affected component is in the validated support boundary
- exposure path, required privileges, and exploit preconditions
- compensating controls already present in the runtime
- whether the issue is awaiting an upstream/vendor patch
- whether the issue changes release readiness or support claims
Each CVE is then placed on one track:
- Remediate — patch, rebuild, re-pin, or remove the affected component.
- Time-bounded accepted risk — temporary exception with owner, ticket, mitigation, expiry, and review record.
- Release stop / no-go — blocker or actively unacceptable exposure that must be fixed before release progression.
- Discovery sources
make supply-chain-gatemake supply-chain-allowlist-expiry-check- hardened image scans
- upstream/vendor advisories
- operator or customer-reported findings
- Initial record within two business days
- CVE identifier
- affected package and image or dependency
- source of the finding
- current severity and exploitability notes
- named owner
- remediation or exception ticket
- Context decision within five business days
- decide whether the finding is a remediation candidate, a temporary accepted risk, or a release stop
- document mitigation and due date in KNOWN_LIMITATIONS.md
- add or update the machine-readable allowlist entry when an exception is required
- Public truth check before release claims
- if the finding changes support, security, or procurement claims, update the relevant docs in the same change set
Use the remediation track when a fix is available or when the risk is not acceptable to carry.
- Blocker / release-stop findings: fix before release progression; do not treat as routine accepted risk.
- Major findings: target removal through a patched digest, dependency update, or supported configuration change within 30 days when a fix is available. If the fix is upstream-blocked, convert to a time-bounded accepted risk instead of leaving the status implicit.
- Minor findings: target removal in the next scheduled maintenance window, normally within 90 days.
Escalate immediately when any of the following becomes true:
- a blocked vendor fix remains unresolved near the exception expiry
- exploit maturity materially increases
- the affected component becomes internet reachable or otherwise more exposed
- the finding would make current buyer-facing language misleading
A CVE is treated as remediated only when all of the following are true:
- the vulnerable digest or dependency is no longer part of the supported tracked surface
make supply-chain-gatepasses without requiring the exception for that finding- the corresponding exception entry is removed from
demo/config/supply_chain_vulnerability_policy.json - the human-readable status is updated in KNOWN_LIMITATIONS.md
Use this track only when the repo can truthfully explain why the issue is temporarily carried and what causes the exception to end.
Every accepted-risk CVE must have all of the following:
- A machine-readable entry in
demo/config/supply_chain_vulnerability_policy.jsonwith:idpackageimageexpires_onjustificationownerticketlast_reviewed_onremediation_plan
- A human-readable status row in KNOWN_LIMITATIONS.md that explains impact, mitigation, owner, due date, and status.
- A dated review outcome in CVE_REVIEW_LOG.md.
- Every exception must have an explicit
expires_ondate. - Open-ended allowlists are not allowed.
- New or renewed accepted-risk records for non-blocker findings may not extend more than 180 days from the review date that approved them.
- If a finding cannot be defended inside that window, the next action is remediation, support-boundary reduction, or release-stop escalation — not silent renewal.
- At 30 days before expiry, the owner must either land a fix or prepare a renewed decision with updated justification.
- At 7 days before expiry, unresolved entries are treated as release-risk items and must be reviewed before any buyer-facing milestone.
- Renewal requires updating both
expires_onandlast_reviewed_on, plus a fresh note in CVE_REVIEW_LOG.md.
The minimum review cadence is quarterly, with off-cycle review whenever risk changes materially.
platform-securityas the default risk owner- the current release or readiness owner
- additional domain owners when the affected component changes exposure or support claims
A quarterly or off-cycle review is complete only when the repository shows all of the following in the same review cycle:
- current state in
demo/config/supply_chain_vulnerability_policy.json - current human-readable status in KNOWN_LIMITATIONS.md
- a dated entry in CVE_REVIEW_LOG.md
Review early when:
- an upstream patch becomes available
- exploit maturity or severity changes
- the deployment exposure changes
- an allowlist entry approaches expiry
- buyer diligence asks for updated status
The minimum auditable evidence set for governed CVEs is:
make supply-chain-gateexit statusmake supply-chain-allowlist-expiry-checkexit status- current
demo/config/supply_chain_vulnerability_policy.json - current KNOWN_LIMITATIONS.md
- current CVE_REVIEW_LOG.md
- release decision usage via release/GO_NO_GO.md
Optional local artifact support:
make supply-chain-reportfordemo/logs/supply-chain/summary.json- readiness or release evidence bundles when the current delivery cycle needs archived proof
Use this wording as the default diligence response when buyers ask about open CVEs:
AI Control Plane discloses current open supply-chain findings in a public register and machine-readable exception policy. Each accepted-risk CVE is time-bounded, has a named owner and ticket, carries a mitigation and remediation plan, and is re-reviewed at least quarterly or sooner when the risk changes. The correct claim is that open vulnerabilities are governed and disclosed, not that they are universally absent or instantly remediated.
- open CVEs are disclosed, tracked, and time-bounded
- exceptions have owners, tickets, due dates, and review history
- buyer-facing status language is governed by repository evidence
- zero-CVE posture
- guaranteed same-day upstream remediation
- automatic compliance certification
- universal risk elimination in customer environments