UCloud-202402-001:runc容器逃逸漏洞安全警告

漏洞详情

UCloud监测到runc官方发布安全通告修复了runc容器逃逸漏洞,由于runc存在内部文件描述符泄露,本地攻击者可以通过多种方式进行容器逃逸:

1、由于runc 内部意外地将包括宿主机 /sys/fs/cgroup 句柄的几个文件描述符泄漏到 runc init 中,攻击欺骗具有特权的用户执行恶意容器镜像,可以导致pid1 进程将在宿主机挂载命名空间中拥有一个工作目录,生成的进程可以访问整个宿主文件系统。

2、由于runc exec中同样存在文件描述符泄漏和工作目录验证不足。如果容器内的恶意进程知道某个管理进程将使用 --cwd 参数和给定路径调用 runc exec,便可以用符号链接将该路径替换为 /proc/self/fd/7/ 。一旦容器进程执行了容器镜像中的可执行文件,可以绕过PR_SET_DUMPABLE 保护,之后攻击者可以通过打开 /proc/$exec_pid/cwd 来访问主机文件系统。

3、可以通过将类似/proc/self/fd/7/../../../bin/bash的路径用作 process.args 二进制参数来覆盖主机二进制文件来改进攻击1、2。由于可以覆盖类似 /bin/bash的二进制文件,一旦特权用户在主机上执行目标二进制文件,攻击者就可以进行转移,以完全访问主机。

鉴于此漏洞影响范围较大,建议客户尽快做好自查及防护。

影响范围

v1.0.0-rc93 <= runc <= 1.1.11

修复方案

注意:安装升级前,请做好数据备份、快照和测试工作,防止发生意外

目前,官方已有可更新版本,建议用户尽快更新到安全版本:

runc >= 1.1.12

参考链接

https://github.com/opencontainers/runc/security/advisories/GHSA-xr7r-f8xq-vfvv