跳到主要内容

runc 容器逃逸漏洞技术研判与防御建议

· 阅读需 2 分钟

runc(Docker 和 Kubernetes 的底层容器运行时)近期披露一处文件描述符泄漏漏洞,攻击者可在特定条件下实现容器逃逸,获取宿主机 root 权限。

漏洞背景

runc 在处理 WORKDIR 指令时,错误地将宿主机文件描述符通过 /proc/self/fd 泄漏至容器命名空间内部。当容器镜像的 Dockerfile 包含特定 WORKDIR 路径构造时,可触发该路径。

攻击路径

1. 构造恶意 Dockerfile,WORKDIR 指向 /proc/self/fd/N
2. 构建镜像时 runc 未正确关闭继承的 fd
3. 容器启动后,进程可访问宿主机根文件系统
4. 写入 crontab 或 SSH 公钥实现持久化

影响评估

组件影响版本修复版本
runc< 1.2.41.2.4
Docker Engine< 27.4.127.4.1
containerd< 1.7.241.7.24
Kubernetes所有使用受影响 runc 的版本

防御措施

  1. 立即升级 runc 至 1.2.4+
  2. 启用 Pod Security Admission 强制 restricted 策略
  3. 部署 Falco/Tetragon 进行运行时 fd 异常监控
  4. 限制容器内 /proc 文件系统挂载权限

ICE 实验室将持续跟踪该漏洞的在野利用情况,并同步更新防御规则库。