查看原文
其他

Linux 内核 cgroups 新漏洞可导致攻击者逃逸容器

Ravie Lakshmanan 代码卫士 2022-05-23

 聚焦源代码安全,网罗国内外最新资讯!

编译:代码卫士





Linux 内核修复了一个高危漏洞 (CVE-2022-0492),它本可被滥用于逃逸容器,在容器主机上执行任意命令。

该缺陷存在于Linux 内核特征 control groups(也被成为 cgroups v1)中,可导致进程被组织到层级结构群组中,从而可能限制并监控资源的使用情况如CPU、内存、磁盘I/O和网络。

该漏洞和cgroups v1 release_agent 功能中的提权情况有关。Release_agent 脚本在cgroup中的任意进程终止后执行。

本周,Unit 42 团队的研究员 Yuval Avrahami 表示,“该漏洞是近期发现的最简单的Linux 提权漏洞之一。Linux 内核错误地将提权操作暴露给低权限用户。”

Cgroups 解释该函数时表示,“当特定cgroup 为空时是否调用 release_agent 程序由相应 cgroup 目录notify_on_release 文件中的值决定。如果该文件中包含值0,则不会调用 release_agent 程序;如果包含值1,则调用release_agent 程序。根cgroup中的该文件默认值是0。”

具体而言,研究人员表示该漏洞是因为缺少对进程是否为 release_agent 文件设置管理员权限的检查,因此导致其可能遭利用。换句话说,如果 release_agent 文件遭攻击者覆写,则内核可被强制通过最高可能权限调用发布代理中的任意二进制,从而导致及其遭完全接管。

不过,值得注意的是,只有具有“根”权限的进程才可写入文件,即该漏洞仅允许root进程提权。Avrahami 解释称,“仅有root用户才可利用提权漏洞乍一看似乎很奇怪。以根身份运行并不一定说明机器遭完全控制。根用户和完全权限之间存在一个灰色地带,包括能力、名称空间和容器。在,根进程并不具备对机器的完全控制权限的场景下,CVE-2022-0492就变成严重漏洞。”

尽管运行 AppArmor 或 SELinux 的容器不受该漏洞影响,但建议用户应用补丁,因为其它恶意主机进程可能滥用该漏洞提升权限。

这并非 release_agent 首次成为攻击向量。2019年7月,谷歌Project Zero 团队的研究员 FelixWilhelm 演示了粗略的PoC exploit,利用该特性攻破权限 Kubernetes 和 Docker 容器。

2021年11月,Aqua公司披露了利用同样的容器逃逸技术将XMRig 密币挖矿机释放到受感染主机的详情,标志着真实发生的首个利用实例。

Avrahami 总结道,“CVE-2022-0492再次说明Linux漏洞可被用于容器逃逸。幸运的是,遵循最佳实践的环境免受该漏洞影响。毫无疑问,托管不受信任或公开暴露的容器的环境面临较高风险。”



代码卫士试用地址:https://codesafe.qianxin.com/#/home

开源卫士试用地址:https://oss.qianxin.com







推荐阅读
Snap 程序包管理器被爆Linux 提权漏洞
谷歌宣布 Linux Kernel、Kubernetes 0day 漏洞奖励加倍
Linux 基金会发布《软件物料清单和网络安全准备度现状》报告
Linux 系统服务漏洞PwnKit 已存在12年,可获得所有主流发布版本的root 权限
Linux 内核漏洞可用于逃逸 Kubernetes 容器
Control Web Panel 中两个严重漏洞使Linux 服务器易受RCE攻击




原文链接

https://thehackernews.com/2022/03/new-linux-kernel-cgroups-vulnerability.html


题图:Pixabay License



本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。




奇安信代码卫士 (codesafe)

国内首个专注于软件开发安全的产品线。

    觉得不错,就点个 “在看” 或 "赞” 吧~

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存