docker runc升级修复runc容器逃逸漏洞(CVE-2024-21626)
背景
2024年02月官方发布安全公告修复 runc 容器逃逸漏洞
(CVE-2024- 21626),参考:https://github.com/opencontainers/runc/security/advisories/GHSA-xr7r-f8xq-vfvv
漏洞概述
漏洞名称 | runc容器逃逸漏洞 | ||
---|---|---|---|
CVE ID | CVE-2024-21626 | ||
漏洞类型 | 容器逃逸 | 发现时间 | 2024-02-01 |
漏洞评分 | 8.6 | 漏洞等级 | 高危 |
攻击向量 | 本地 | 所需权限 | 无 |
利用难度 | 低 | 用户交互 | 需要 |
PoC/EXP | 未公开 | 在野利用 | 未发现 |
影响版本:v1.0.0-rc93 <= runc <= 1.1.11
利用条件:本地触发、需要交互
影响服务:Docker、k8s 等使用 runc 的容器应用
鉴于此漏洞影响范围较大,建议尽快做好自查及防护。
安全措施
下载修复版本:https://github.com/opencontainers/runc/releases/tag/v1.1.12
docker runc升级
下载安全版本的runc到本地电脑
https://github.com/opencontainers/runc/releases/download/v1.1.12/runc.amd64
将下载好的runc.amd64文件上传到服务器、修改文件名并赋权
mv runc.amd64 runc && chmod +x runc
备份原有的runc
mv /usr/bin/runc /usr/bin/runc.bak20240202
mv /tmp/runc /usr/bin/runc
重启docker
systemctl restart docker
检查runc是否升级成功
升级后,可以通过运行runc -v
命令查看runc的版本号。
[root@k8s-master01 ~]# systemctl restart docker
[root@k8s-master01 ~]#
[root@k8s-master01 ~]# runc -v
runc version 1.1.4
commit: v1.1.4-0-g5fd4c4d
spec: 1.0.2-dev
go: go1.17.13
libseccomp: 2.3.1
[root@k8s-master01 ~]#
[root@k8s-master01 ~]# docker version
Client: Docker Engine - Community
Version: 20.10.17
API version: 1.41
Go version: go1.17.11
Git commit: 100c701
Built: Mon Jun 6 23:05:12 2022
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.9
API version: 1.41 (minimum version 1.12)
Go version: go1.16.8
Git commit: 79ea9d3
Built: Mon Oct 4 16:06:37 2021
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.8
GitCommit: 9cd3357b7fd7218e4aec3eae239db1f68a5a6ec6
runc:
Version: 1.1.4
GitCommit: v1.1.4-0-g5fd4c4d
docker-init:
Version: 0.19.0
GitCommit: de40ad0
[root@k8s-master01 ~]#
参考
1.https://www.venustech.com.cn/new_type/aqtg/20240202/26996.html
2.https://github.com/opencontainers/runc/security/advisories/GHSA-xr7r-f8xq-vfvv