CVE-2019-5736: runc容器逃逸漏洞警报

栏目: 编程工具 · 发布时间: 5年前

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/重新打开文件并尝试从一个在一个循环中。一个单独的进程写入此文件。当runc退出时,覆盖将成功,之后runc可用于攻击其他容器或主机。

安全研究人员已经附上修复此问题的相关补丁。这个补丁基于HEAD,但是libcontainer/nsenter/中的代码很少变化,它应该干净地应用于你正在处理的任何旧版本的runc代码库。

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址: https://www.linuxidc.com/Linux/2019-02/156873.htm


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Ajax for Web Application Developers

Ajax for Web Application Developers

Kris Hadlock / Sams / 2006-10-30 / GBP 32.99

Book Description Reusable components and patterns for Ajax-driven applications Ajax is one of the latest and greatest ways to improve users’ online experience and create new and innovative web f......一起来看看 《Ajax for Web Application Developers》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试