漏洞预警(CVE-2021-30465)— runc 符号链接挂载与容器逃逸

针对近期暴露的 runc 容器逃逸漏洞,青云技术团队一直在密切观察和研究,同时与大家同步以下信息,希望对大家有所帮助。

什么是 runc

Runc 是一个根据 OCI (Open Container Initiative) 标准构建的并运行容器的底层工具,诸如 Docker,Containerd 以及 CRI-O 都以其为底层核心去处理数据的格式化和序列化。而 Kubernetes 作为容器调度管理平台基于这些容器运行环境,也受到了此漏洞的影响。

此漏洞(CVE-2021-30465)可能会造成的影响

当前漏洞威胁级别为【严重】,所有 runc 1.0.0-rc95 以下的版本均会受到影响,攻击者可以通过创建恶意 Pod 及 Container,利用符号链接以及条件竞争漏洞,可挂载宿主机目录至 Container 中,最终可能会导致容器逃逸。目前漏洞细节、POC 已公开,风险高。

降低风险以及规避漏洞的建议

  • 手动升级 runc 版本

    升级 runc 至 1.0.0-rc95,可参考官方升级

    查看 runc 版本:

    docker-runc -v

    注意:升级前请做好关键数据的备份

  • 目前使用 KubeKey 新装集群且使用 KubeKey 默认安装的 docker, 其 runc 版本大于 v1.0.0-rc94,不存在该逃逸漏洞的风险,已安装集群请按漏洞解决方案排查修复。

  • 即将发布的 QKE 3.1 版本中,也将包含最新版 runc。

  • 在以上配置升级过程中碰到任何问题,您可通过青云线上工单系统获得青云专业技术支持