UCloud-201902-001:runc容器逃逸漏洞安全预警
runc被曝存在容器逃逸漏洞。该漏洞允许恶意容器(以最少的用户交互)覆盖host上的runc文件,从而在host上以root权限执行代码。在下面两种情况下,通过用户交互可以在容器中以root权限执行任意代码:
1.使用攻击者控制的镜像创建新容器。
2.进入到攻击者之前具有写入权限的现有容器中(docker exec)。
1.对于UK8S用户,影响范围如下:
2019年2月14日 15:00 之前创建的UK8S集群。此批集群的Docker版本为1.13.1,runc版本<1.0-rc6,存在安全隐患,UK8S团队将全程协助客户修复。
2.对于UDocker用户,影响范围如下:
2019年2月14日 20:00之前创建的容器集群,存在安全隐患,
3.对于用户自建集群,影响范围如下:
Docker版本<18.09.2,或runc版本<=1.0-rc6,存在安全隐患,需要修复。
备注:由于UK8S及UDocker集群均为单租户模式,如无使用未经验证的第三方镜像,现有安全隐患较小,不过依然建议在攻击代码开放之前修复。
注意:安装升级前,请做好数据备份、快照和测试工作,防止发生意外
1、用户自安装的docker和Kubernetes环境,请升级到各系统官方发布的修复版本:
Docker版本 >= 18.09.2
runc版本 > 1.0-rc6
2、使用UK8s的用户:
方法一:对于测试用集群,建议删除后重新创建,新版本UK8S集群已修复该漏洞(CVE-2019-5736);
方法二:仅升级runc版本,该方案为热升级方案,理论上不会导致业务中断,具体方案如下:
1)备份原有runc,UK8S的runc位于/usr/libexec/docker路径下。
mv /usr/libexec/docker/docker-runc-current /usr/libexec/docker/docker-runc-current.$(date -Iseconds)
2)下载修复的runc版本
wget https://github.com/rancher/runc-cve/releases/download/CVE-2019-5736-build2/runc-v1.13.1-amd64
3)设置新版本runc的可执行权限
chmod +x /usr/libexec/docker/docker-runc-current
4)测试新版本runc是否正常工作
/usr/libexec/docker/docker-runc-current -v
docker run -it --rm ubuntu echo OK
方法三:升级Docker版本至18.09.2或以上,会导致容器重启并使得业务中断,请谨慎使用。
3、使用UDocker的用户:
为确保容器集群的安全稳定,UCloud已着手对存量UDocker集群进行热升级,升级期间不会对用户业务造成影响,请无需担心。
另,新版本UDocker已修复runc漏洞,可正常使用。