本漏洞利用深入分析了 CVE-2021-41091 安全漏洞,并提供了如何使用该漏洞利用脚本在主机上实现权限提升的分步指南。
CVE-2021-41091 是 Moby(Docker 引擎)中的一个缺陷,由于权限限制不当,允许非特权 Linux 用户遍历并执行数据目录(通常位于 /var/lib/docker)内的程序。当容器包含具有扩展权限(例如 setuid)的可执行程序时,就会出现此漏洞。非特权 Linux 用户随后可以发现并执行这些程序,如果主机上用户的 UID 与容器内的文件所有者或组匹配,还可以修改文件。
覆盖文件系统是利用此漏洞的关键组件。Docker 的覆盖文件系统使容器的文件系统能够层叠在宿主机的文件系统之上,从而允许宿主机访问和操作容器内的文件。对于 CVE-2021-41091,/var/lib/docker/overlay2 中过度宽松的目录权限使非特权用户能够访问和执行容器内的程序,从而导致潜在的权限提升攻击。 利用步骤
连接到宿主机上的 Docker 容器并获得 root 访问权限。
在容器内,使用以下命令在 /bin/bash 上设置 setuid 位:chmod u+s /bin/bash
在宿主机上,通过克隆仓库并执行脚本,运行提供的漏洞利用脚本(poc.sh),操作如下:
git clone https://github.com/UncleJ4ck/CVE-2021-41091
cd CVE-2021-41091
chmod +x ./poc.sh
./poc.sh
已在 Docker 引擎版本 20.10.5+dfsg1 上测试
如果您想调查与此 Docker 引擎相关的攻击,可以查看我们关于如何设置 Wazuh 以监控和检测 Docker 引擎 中潜在漏洞的指南。指南