Linux内核的 cgroups 曝出新漏洞,可逃逸容器执行任意命令

新的Linux内核cgroups漏洞可能让攻击者逃脱容器

最新的网络安全研究,关于Linux内核中的高危安全漏洞在修复后公开了漏洞的详细信息,该漏洞可以被用于逃逸容器,并在容器宿主机上执行任意命令。

根据网络安全行业门户「极牛网」GEEKNB.COM的梳理,该漏洞位于Linux内核的control groups特性,也就是cgroups的v1版本,通过它可以将进程划分成组,从而有效地限制CPU、内存、磁盘IO、网络等资源的使用情况,云原生架构中的容器技术就是基于cgroups的特性实现的。

该漏洞号为 CVE-2022-0492(CVSS 评分:7.0),影响 cgroups v1 release_agent 功能中的提权例子,该脚本在 cgroup 中的任何进程终止后执行。这个漏洞是最近发现的最简单的 Linux 提权手段之一,Linux 内核错误地将特权操作暴露给非特权用户。

cgroups的手册页对其功能的解释如下:

当特定 cgroup 变空时是否调用 release_agent 程序,由相应 cgroup 目录下 notify_on_release 文件中的值决定。如果此文件包含值 0,则不会调用 release_agent 程序。如果它包含值 1,则调用 release_agent 程序。此文件在根 cgroup 中的默认值为 0。

具体来说,该漏洞是由于缺少验证来检查设置 release_agent 文件的进程是否具有管理权限,从而使其能被成功地利用。换句话说,如果这个 release_agent 文件被攻击者覆盖,内核可以被强制调用在发布代理中配置的具有最高权限的任意二进制文件,这种情况可以完全地接管机器。

然而,值得注意的是,只有具有 root 权限的进程才能写入文件,这意味着该漏洞仅允许 root 进程提权。乍一看觉得只有root权限才能利用该漏洞,是不是就可以高枕无忧了?事实上,很多人都是用root权限来运行docker容器,在这种情况下,该漏洞就显得非常地危险。

尽管运行AppArmor或SELinux的容器受到保护,但建议用户尽快升级安全补丁,因为它可能被其他恶意主机进程滥用以提升权限。

这远不是 release_agent 第一次作为攻击媒介出现。2017 年 7 月,谷歌研究员展示了一个“快速而肮脏”的概念验证 (PoC) 漏洞利用该功能突破特权 Kubernetes 和 Docker 容器。

该漏洞 CVE-2022-0492 标志着另一个可用于容器逃逸的 Linux 漏洞,幸运的是,遵循最佳实践的环境受到了保护,不受此漏洞的影响。

 

Linux内核的 cgroups 曝出新漏洞,可逃逸容器执行任意命令

极牛网精选文章《Linux内核的 cgroups 曝出新漏洞,可逃逸容器执行任意命令》文中所述为作者独立观点,不代表极牛网立场。如若转载请注明出处:https://geeknb.com/18414.html

(30)
打赏 微信公众号 微信公众号 微信小程序 微信小程序
主编的头像主编认证作者
上一篇 2022年3月6日 上午11:56
下一篇 2022年3月7日 上午11:54

相关推荐

发表回复

登录后才能评论
扫码关注
扫码关注
分享本页
返回顶部