影响
CVE-2024-21626 可能允许恶意映像或容器执行中涉及的进程逃脱受影响的 runc 容器并访问主机文件系统。 runc 维护者记录的变体还可以覆盖主机二进制文件并导致主机完全受损 [S1]。 NVD 记录了相同的容器突破行为,并且 runc 1.1.12 修复了 [S2]。
根本原因和受影响的版本
上游通报涵盖从 1.0.0-rc93 到 1.1.11 的 runc 版本。内部文件描述符可能仍然可供容器进程使用,并且受影响的版本不会验证最终工作目录是否保留在容器挂载命名空间 [S1] 内。因此,诸如“/proc/self/fd/7”之类的恶意容器工作目录可以解析为主机命名空间。 runc 1.1.12 在执行 [S1] 之前关闭泄漏的描述符并验证工作目录。
由 FixVibe 覆盖
连接的 GitHub 存储库扫描现在标记与此容器突破条件关联的 Dockerfile 和 Kubernetes 工作负载配置。结果确定受影响的存储库文件和配置位置,使用可能的问题证据态势,并声明置信度适用于源/配置匹配。
FixVibe 不运行映像或容器、访问主机文件、覆盖二进制文件或尝试突破。存储库发现并不能证明配置已部署、主机使用 runc 或部署的运行时属于受影响的版本范围。客户应先验证实际运行时库存,然后再将发现结果视为已确认的实时利用。
修复
将容器工作目录替换为镜像内的正常路径。将可以执行工作负载的每个 Docker、containerd、Kubernetes 节点、CI 运行程序、构建主机和独立运行时升级到 runc 1.1.12 或更高版本,或者升级到记录为针对 CVE-2024-21626 [S1] 进行修补的供应商包。重建并重新部署经过审查的映像和清单,以便过时的工件无法保留有风险的配置。
由于这种工作目录情况非常不寻常,因此请检查引入提交、映像来源、注册表签名、准入和审核日志以及容器活动。如果配置达到可运行环境,则通过所有者的事件响应流程进行升级。
