• RunC 漏洞让攻击者可以获得 Docker、Kubernetes 主机上的 root 访问权限
  • 发布于 2个月前
  • 209 热度
    0 评论
  • 金龙鱼
  • 9 粉丝 45 篇博客
  •   
runc容器运行时环境爆出一个容器逃逸安全漏洞,让恶意容器(极少需要用户的交互操作)得以覆盖主机runc二进制代码,并在主机上获得root级代码执行权限。

runc是一个开源命令行实用程序,旨在生成和运行容器;目前,它被用作支持Docker、containerd、Podman和CRI-O等容器的默认运行时环境。

据runc维护人员之一、SUSE Linux GmbH的高级软件工程师(容器)Aleksa Sarai声称:

在这下列其中一个场景,用户交互级别能够在容器内以root身份运行任何命令(如果命令不受攻击者控制,也没有关系):

*使用攻击者控制的映像来创建一个新的容器。
*将(docker exec)附加到攻击者之前已拥有写入权限的现有容器中。

两名安全研究人员Adam Iwaniuk和BorysPopławski发现的这个安全漏洞现在被命名为CVE-2019-5736,它在正确使用用户命名空间的系统上自动被阻止(不是以root的身份运行的容器不受影响)。

然而,它会影响“主机root被映射到容器的用户命名空间”的计算机,因为默认的AppArmor策略和Fedora的默认SELinux策略无法阻止CVE-2019-5736触发。

值得一提的是,以Fedora设备为例,moby-engine是受这个容器逃逸漏洞影响的唯一一个容器引擎,而docker和podman不受影响,因为它们将所有容器进程作为container_t来运行。

据Shodan首席执行官John Matherly在YCombinator上分享的扫描结果显示,约4000个Docker守护进程暴露无遗:

Sarai已发布了一个补丁,旨在修复runc漏洞;一旦恶意容器执行,这个漏洞就会触发容器逃逸,并允许攻击者访问主机文件系统。

这位runc维护人员还表示,“漏洞利用代码将在协调发布日期(CRD)7天后(2019-02-18)公开发布。如果你有容器运行时环境,请事先确认你不容易受到此问题的影响。”

目前,亚马逊、谷歌和Docker已经更新了各自的软件,建议所有用户更新到针对CVE-2019-5736打上补丁的最新版本。
用户评论