runc 文件描述符泄漏漏洞(CVE-2024-21626)及处理方法

runc 文件描述符泄漏漏洞(CVE-2024-21626)及处理方法

问题描述

在 runc 小于 1.1.12 的版本中,由于内部文件描述符泄露的问题,攻击者可以让新生成的容器进程在宿主文件系统命名空间中拥有工作目录,从而允许通过访问宿主文件系统实现容器逃逸等。

社区受影响版本范围:1.0.0-rc93 <= runc <= 1.1.11

runc 是什么?

我让 chatgpt 帮我生成了一段回答:

runc 是一个开源的轻量级的容器运行时工具,它用于在容器中运行应用程序。runc是由Docker 项目开发的,并已成为 Open Container Initiative(OCI)的一部分。runc 是一个基于标准的容器运行时工具,它可以在任何支持OCI规范的容器引擎中使用。通过使用 runc,开发人员可以在不同的容器平台之间自由移植容器镜像。

runc 主要有以下作用:

创建和管理容器:runc可以帮助用户创建和管理容器,将应用程序和依赖项打包在一个可移植的容器中,使其易于部署和运行。

提供容器隔离:runc使用Linux内核的命名空间、控制组等功能,实现容器之间的隔离,确保容器中的应用程序互相独立运行,避免相互干扰。

运行容器中的应用程序:runc可以在容器中启动用户定义的进程,实现容器化应用程序的运行和执行。

兼容性和可移植性:runc遵循OCI定义的标准规范,因此可以在任何支持OCI规范的容器引擎中使用,保证容器镜像在不同平台之间能够移植和兼容。

那么知道了runc 是什么之后,我们就可以开始着手解决这个问题了。

解决方法:

  1. 首先通过 docker version命令查看自己的 runc 版本。
    在这里插入图片描述
    如果docker version不显示也可以直接使用 runc -v 命令。
    在这里插入图片描述
  2. 去 github 下载最新的 runc 程序https://github.com/opencontainers/runc/releases/tag/v1.1.12

因为 github 的网络不是很好,国内访问不了的朋友也可以后台给我留言自己的操作系统版本,我会发你下载好的程序。

  1. 停止 docker
systemctl stop docker
  1. 备份原有的runc
mv /usr/bin/runc /usr/bin/runcbak
  1. 将下载好的 runc 上传服务器,修改名字并赋予权限
mv runc.amd64 runc && chmod +x runc
  1. 替换 runc
cp runc /usr/bin/runc
  1. 重新启动docker
systemctl start docker
  1. 确认 runc 替换成功
docker version
或者
runc -v

这样,runc 就成功替换好了。官方已于2024年2月1日发布安全更新,建议相关受影响用户升级。

参考链接:https://packetstormsecurity.com/files/176993/runc-1.1.11-File-Descriptor-Leak-Privilege-Escalation.html

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值