前言
runC 是 Docker,Kubernetes 等依赖容器的应用程序的底层容器运行时。此次爆出的严重安全漏洞可使攻击者以 root 身份在主机上执行任何命令。
容器的安全性一直是容器技术的一个短板。关于容器最大的安全隐患是攻击者可以使用恶意程序感染容器,更严重时可以攻击主机系统。
一、漏洞详情
组件:runc
漏洞名称:runc 路径遍历漏洞/Docker runc容器逃逸漏洞
CVE 编号:CVE-2021-30465
修复策略:将 runc 升级到 1.0.0-rc95 及以上版本。
二、修复步骤
2.1 下载离线包
https://github.com/opencontainers/runc/releases?page=2
下载runc 1.0-rc95 runc.amd64
2.2 检查runc版本
runc -verison
2.3 查看runc安装路径
which docker-runc
2.4 备份runc
cd /usr/bin/
mv runc runc.bak
2.5 替换二进制文件
mv runc.amd64 runc && chmod +x runc
2.6 检查版本
runc -verison
2.7 重启docker 容器
Containerd 是一个控制 runC 的守护进程,提供命令行客户端和 API,用于在一个机器上管理容器。在特定网络条件下,攻击者可通过访问containerd-shim API,从而实现Docker容器逃逸。阿里云应急响应中心提醒 containerd 用户尽快采取安全措施阻止漏洞攻击。
影响版本
containerd < 1.4.3
containerd < 1.3.9
安全版本
containerd >= 1.4.3
containerd >= 1.3.9
1、下载新版本的containerd
2、替换现有的containerd二进制文件
# 停止containerd服务
sudo systemctl stop containerd
# 替换二进制文件
cp containerd/bin/containerd /usr/bin/containerd
cp containerd/bin/containerd-shim /usr/bin/containerd-shim
cp containerd/bin/ctr /usr/bin/ctr
3、重新启动containerd服务
systemctl start containerd
4、验证containerd已成功升级到新版本
containerd已成功升级到新版本