奇安信CERT监测到12月01日Containerd 官方发布安全更新,修复了Containerd host 模式容器逃逸漏洞(CVE-2020-15257),在旧版本中,containerd-shim API没有限制对抽象Unix域套接字的访问,使得在特定的网络环境中,攻击者可利用containerd-shim API突破容器命名空间隔离,实现容器逃逸。漏洞实际需要一些非默认配置,建议客户检查相应配置,也请尽快安装更新补丁。
奇安信CERT监测到12月01日Containerd 官方发布安全更新,修复了Containerd host 模式容器逃逸漏洞(CVE-2020-15257),在旧版本中,containerd-shim API没有限制对抽象Unix域套接字的访问,使得在特定的网络环境中,攻击者可利用containerd-shim API突破容器命名空间隔离,实现容器逃逸。漏洞实际需要一些非默认配置,建议客户检查相应配置,也请尽快安装更新补丁。
官方通告发布日期 | 2020-12-01 |
奇安信 CERT 通告日期 | 2020-12-03 |
漏洞编号 | CVSS | 概述 | 影响版本 |
CVE-2020-15257 | 5.2 |
Containerd是一个控制runC的守护进程,在旧版本中,containerd-shim API没有限制对抽象Unix域socket的访问,使得在特定的网络环境中,攻击者可利用containerd-shim API突破容器命名空间隔离,实现容器逃逸。 | Containerd<= 1.3.7 Containerd = 1.4.0 Containerd = 1.4.1 |
Docker运行容器的默认配置不受此漏洞影响,且需要攻击者能控制部分容器或者制作恶意镜像引导受害者使用。一般很难受到影响。检测思路是确认运行中的容器没有使用host network即无影响。
可以在所有容器下执行以下命令判断是否受漏洞影响:
$ cat /proc/net/unix | grep 'containerd-shim' | grep '@'
如果发现有输出信息即受影响,如下图所示:
1. 升级 containerd 至1.3.9 、1.4.3及以上最新版本,注意使用旧版本containerd-shim
启动的容器应该重启,因为即使在升级之后,正在运行的容器仍然容易受到攻击。
2. 升级Docker-CE版本到v19.03.14
如果暂时无法升级,可以使用以下缓解措施:
1. 停止使用 --net=host(docker-cli)或hostNetwork: true(Kubernetes pod)创建容器。
2. 容器内部不要使用root账户权限。
3. 添加 deny unix addr=@**来拒绝使用 AppArmor 访问所有的抽象套接字。
[1]https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-15257
[2]https://github.com/containerd/containerd/security/advisories/GHSA-36xw-fx78-c5r4
2020年12月3日,奇安信 CERT发布重点产品升级提示