用途:管理 .openvex.json,该文件保存逐 CVE 的可达性证据,用于抑制 aiperf-bench 容器镜像中的漏洞发现。它由每周镜像漏洞扫描工作流(.github/workflows/vuln-scan-images.yaml)通过 anchore/scan-action@v7.4.0 的 vex: 输入消费,并作为 grype 的 --vex .openvex.json 传入;同时是每次发布在各平台清单上发布的 OpenVEX 证明的来源。
主要能力与使用方式:在验证可达性后添加抑制条目;当 aiperf 版本或依赖升级修复了某 CVE 时删除对应条目;发布前审计并清理过期条目;排查扫描显示 HIGH+ 计数非零但 VEX 本应覆盖的情况(通常是 PURL 或漏洞 ID 不匹配)。
关键不变量:products[].purl 必须等于 grype 镜像 PURL(grype 从仓库基名派生,而非 org.opencontainers.image.title),本仓库每条语句同时携带 pkg:oci/aicr-aiperf-bench 与 pkg:oci/aiperf-bench;vulnerability.name 必须等于 grype 的主 ID(有 GHSA 与 CVE 时通常为 GHSA,CVE 仅作别名);justifications 必须使用 OpenVEX v0.2.0 枚举;impact_statement 必须引用具体证据;文档级字段为短元数据,非散文。
本地复现:用 docker buildx 构建带 title 标签的镜像,安装工作流固定的 grype 版本,复现 CI 扫描标志,确认目标漏洞从 .matches[] 移入 .ignoredMatches[] 且 appliedIgnoreRules 的 namespace 为 vex。也可直接扫描 CI 推送的 scan-<sha> 标签镜像。
限制:产品 PURL 未命名已发布镜像的语句会被静默丢弃;状态、理由与影响声明会逐字签名发布到公共注册表;文档级工具信息不会被发布。每次编辑必须运行过期审计。未完成的工作记录在 vex-state.yaml,而非文档中。部分检查只能在合并后确认,需记为 deferred_verifications。