Runc是一个CLI工具,可以根据OCI(Open Container Initiative)标准创建和运行容器。目前,docker引擎也是基于runc内部构建的。在2019年2月11日,研究人员通过oss-security邮件列表 揭示 了runc容器逃逸漏洞的详细信息。为此问题分配的CVE是CVE-2019-5736。据OpenWall称,漏洞利用细节将在2019年2月18日七天后公布。该漏洞可能会影响大多数云服务提供商,并且损害严重。
该漏洞允许恶意容器(用户交互最少)覆盖主机上的runc文件,以在主机上执行具有root权限的代码。在以下两种情况下,可以通过用户交互在具有root权限的容器中执行任意代码:
*使用攻击者控制的镜像创建新容器。
*将(docker exec)附加到攻击者之前具有写入权限的现有容器中。
默认AppArmor策略或Fedora[++]上的默认SELinux策略不会阻止此漏洞(因为容器进程似乎作为container_runtime_t运行)。但是,*被*阻止了
通过正确使用用户命名空间(主机根未映射到容器的用户命名空间)。
攻击者可以通过使用指向runc的文件替换容器中的目标文件来欺骗runc来执行自身。例如,目标文件是/bin/bash,用可执行脚本替换为指定的解释器路径#!/proc/self/exe,并在容器中执行/bin/bash时执行 /proc/self/exe。指向主机上的runc文件。然后,攻击者可以继续写入 /proc/self/exe以尝试覆盖主机上的runc文件。但一般来说,它不会成功,因为内核不允许在运行runc时覆盖它。要解决这个问题,攻击者可以使用O_PATH标志打开/ proc / self / exe的文件描述符,然后使用O_WRONLY标志用/proc/self/fd/
安全研究人员已经附上修复此问题的相关补丁。这个补丁基于HEAD,但是libcontainer/nsenter/中的代码很少变化,它应该干净地应用于你正在处理的任何旧版本的runc代码库。
Linux公社的RSS地址 : https://www.linuxidc.com/rssFeed.aspx
本文永久更新链接地址: https://www.linuxidc.com/Linux/2019-02/156873.htm
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
深入理解LINUX内核(第三版)
(美)博韦,西斯特 / 陈莉君;张琼声;张宏伟 / 中国电力出版社 / 2007-10-01 / 98.00元
为了彻底理解是什么使得Linux能正常运行以及其为何能在各种不同的系统中运行良好,你需要深入研究内核最本质的部分。内核处理CPU与外界间的所有交互,并且决定哪些程序将以什么顺序共享处理器时间。它如此有效地管理有限的内存,以至成百上千的进程能高效地共享系统。它熟练地统筹数据传输,这样CPU 不用为等待速度相对较慢的硬盘而消耗比正常耗时更长的时间。 《深入理解Linux内核,第三版》指导你对内核......一起来看看 《深入理解LINUX内核(第三版)》 这本书的介绍吧!