Share feedback
Answers are generated based on the documentation.

漏洞可利用性交换(VEX)

什么是 VEX?

漏洞可利用性交换(Vulnerability Exploitability eXchange,VEX)是一种用于记录软件组件中漏洞可利用性状态的规范。VEX 主要通过 CSAF(OASIS)和 CycloneDX VEX 等行业标准定义,美国网络安全和基础设施安全局(CISA)也在推动其采用。VEX 通过添加由生产者声明的状态信息来补充 CVE(通用漏洞披露)标识符,指明某个漏洞在交付的产品中是否可被利用。这有助于组织识别不影响其特定产品配置的漏洞,从而对修复工作进行优先排序。

有关 VEX 如何影响漏洞计数和扫描器选择,请参阅 扫描器集成。要使用支持 VEX 的方式扫描 DHI,请参阅 扫描 Docker Hardened Images

VEX 状态参考

每条 VEX 声明都包含一个 status 字段,记录 Docker 对特定 CVE 和镜像的可利用性评估。OpenVEX 定义了四种状态值,DHI 使用其中三种:

状态 含义
not_affected 该 CVE 是针对镜像中的某个软件包报告的,但 Docker 评估认为在交付状态下不可被利用
under_investigation Docker 已知晓该 CVE,并正在积极评估它是否影响该镜像
affected Docker 已确认该 CVE 在该镜像中可被利用,且修复尚不可用
fixed 该漏洞已在此版本中修复。DHI 不使用此状态(见下文)。

您可以使用 Docker Scout 查看任何 DHI 的 VEX 声明。请参阅 扫描 Docker Hardened Images

not_affected 理由代码

not_affected 声明包含一个机器可读的 justification 字段,用于说明该漏洞为何不适用:

理由 含义
component_not_present 该镜像中不存在存在漏洞的组件;该 CVE 是按名称匹配到了另一个软件包
vulnerable_code_not_present 存在漏洞的代码路径未被编译进此次构建
vulnerable_code_not_in_execute_path 存在漏洞的代码存在于软件包中,但在该镜像的运行时配置下不会被调用
vulnerable_code_cannot_be_controlled_by_adversary 存在漏洞的代码存在,但攻击者在此配置下无法触发它
inline_mitigations_already_exist Docker 已应用可解决该 CVE 的向后移植补丁或补丁

为什么 DHI 不使用 fixed

DHI 不使用 fixed。支持 VEX 的扫描器对 fixed 的处理方式可能不一致,因此当 Docker 向后移植上游补丁、而仅凭版本号无法反映该修复时,会改用 not_affected 并附带 inline_mitigations_already_exist 理由。