news 2026/5/11 19:02:04

Docker 与 Kubernetes 核心运行时 runC 曝三高危漏洞:攻击者可实现容器逃逸并获取主机 root 权限

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Docker 与 Kubernetes 核心运行时 runC 曝三高危漏洞:攻击者可实现容器逃逸并获取主机 root 权限

runC 作为 Docker 和 Kubernetes 等容器平台的基础容器运行时,近日被披露存在三个高危安全漏洞(CVE-2025-31133、CVE-2025-52565、CVE-2025-52881)。这些漏洞允许攻击者在特定条件下绕过容器隔离机制,写入主机 /proc 目录,最终实现容器逃逸并获取主机系统 root 权限。

上图:Kubernetes 整体架构(左)与 runC 在容器运行时栈中的位置(右)。runC 是 OCI 标准的参考实现,负责底层容器进程创建、命名空间配置和资源隔离。

runC 简介

runC 是一款轻量级、命令行式的容器运行时,同时也是开放容器倡议(OCI)的参考实现。它主要负责执行以下底层操作:

  • 创建容器进程
  • 配置 Linux 命名空间(namespaces)
  • 设置挂载点(mounts)
  • 管理控制组(cgroups)

Docker、containerd、Kubernetes 等上层工具均通过调用 runC 来启动和运行容器。

三个漏洞详细分析

这三个漏洞的核心共同点是:攻击者可诱导 runC 将主机敏感文件以可写模式挂载到容器内,从而绕过隔离,实现对 /proc 文件系统的写入控制。

  • CVE-2025-31133(影响所有 runC 版本): runC 使用绑定挂载 /dev/null 来“屏蔽”主机敏感文件(如 /proc 下的关键条目)。攻击者在容器初始化阶段将 /dev/null 替换为指向目标文件的符号链接(symlink),导致 runC 将攻击者控制的文件以读写模式挂载到容器中。攻击者随后可写入 /proc 目录,实现容器逃逸或主机崩溃。

🐳 Docker Bind Mounts vs Volumes: What's the Difference? - DEV Community

上图:Docker bind mount 工作原理示意。漏洞正是利用了类似绑定挂载的机制被符号链接滥用。

  • CVE-2025-52565(影响 1.0.0-rc3 及后续版本): 在处理 /dev/console 的绑定挂载时,存在竞争条件(race condition)或符号链接重定向问题。runC 可能在防护机制生效前,将非预期的目标挂载到容器内,导致关键 procfs 条目暴露可写权限。
  • CVE-2025-52881(影响所有 runC 版本): 攻击者可诱使 runC 向 /proc 目录执行写入操作,该操作会被重定向至攻击者控制的目标文件。在部分版本中,甚至能绕过 Linux 安全模块(LSM,如 AppArmor/SELinux)的重新标记防护,将普通写入转化为对 /proc/sysrq-trigger 等危险文件的任意写入。

GitHub - Aditya-1208/linux_kernel_modules: Walkthrough of steps for making custom linux kernel modules, interacting with kernel space and understanding how proc file system works in linux. Programming-Project of Chapter-2 of Operating System Concepts :

上图:Linux /proc 文件系统在用户空间与内核空间的交互示意。漏洞主要针对 procfs 的写入控制。

受影响版本与修复
  • CVE-2025-31133 和 CVE-2025-52881:影响所有已知 runC 版本。
  • CVE-2025-52565:影响 runC 1.0.0-rc3 及之后版本。
  • 已修复版本:runC 1.2.8、1.3.3、1.4.0-rc.3 及更高版本已发布补丁。请尽快升级。
漏洞利用条件与实际风险

安全研究人员强调,利用这些漏洞需要攻击者具备以自定义挂载配置启动容器的能力(例如通过恶意容器镜像或精心设计的 Dockerfile)。

截至目前,尚未发现这些漏洞在真实生产环境中被主动利用的报告。但攻击者可通过监测可疑的符号链接创建或异常挂载行为进行检测。

缓解措施建议(runC 官方与 Sysdig 等安全厂商推荐):

  • 为所有容器启用用户命名空间(user namespaces),并避免将主机 root 用户映射到容器内。Unix DAC(自主访问控制)权限可有效阻断攻击。
  • 优先使用无 root 权限容器(rootless containers),降低逃逸后的损害。
  • 结合 seccomp、AppArmor/SELinux、只读文件系统等额外安全机制。
  • 定期更新 runC、containerd、Docker 和 Kubernetes 组件。

上图:容器逃逸攻击示意(左)与 Kubernetes Pod 安全上下文配置(右)。强化安全上下文是重要防御手段。

总结与建议

这三个漏洞再次提醒我们:容器隔离并非绝对安全边界。runC 作为底层运行时,其安全直接影响整个容器生态。强烈建议所有使用 Docker、Kubernetes 或 containerd 的用户和企业立即检查 runC 版本并应用最新补丁,同时采用“defense in depth”(纵深防御)策略,包括 rootless 运行、最小权限原则和持续的安全监控。

如果您的环境依赖自定义挂载配置,请特别关注容器镜像来源的可信度。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/12 15:25:23

5个维度激活旧Mac生命力:OpenCore Legacy Patcher深度技术指南

5个维度激活旧Mac生命力:OpenCore Legacy Patcher深度技术指南 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 引言 在苹果持续推进硬件更新的背…

作者头像 李华
网站建设 2026/4/13 6:58:48

【Matlab】MATLAB教程:FFT频谱绘制(含幅值/相位谱案例及信号频谱分析应用)

MATLAB教程:FFT频谱绘制(含幅值/相位谱案例及信号频谱分析应用) 在信号处理、通信、控制等工程领域,快速傅里叶变换(FFT)是连接时域与频域的核心工具,而频谱绘制(幅值谱、相位谱)是FFT实操的核心环节,信号频谱分析则是FFT的核心应用场景。本文严格控制全文字数在500…

作者头像 李华
网站建设 2026/4/13 17:13:35

node.js视频短信接口如何接入?使用异步非阻塞模式下发视频短信API

在Node.js服务端开发中,为企业项目集成视频短信能力是通知、营销场景的常见需求,而同步调用接口会阻塞Node.js事件循环,引发服务响应延迟、并发能力不足等问题。本文将手把手讲解node.js视频短信接口的完整接入流程,基于异步非阻塞…

作者头像 李华
网站建设 2026/4/15 9:39:28

绕开原厂协议:非侵入式梯控改造的OT架构解耦与状态机设计

摘要: 在机器人跨层调度项目中,架构师常面临特种设备管理方“严禁改动原生电路与读取主板总线”的硬性约束。本文深度拆解如何通过引入边缘设备,实现 OT(操作技术)层面的彻底解耦。重点探讨在非侵入式架构下&#xff0…

作者头像 李华
网站建设 2026/4/15 5:34:44

ATCODER ABC C题解媳

这&#xff0c;是一个采用C精灵库编写的程序&#xff0c;它画了一幅漂亮的图形&#xff1a; 复制代码 #include "sprites.h" //包含C精灵库 Sprite turtle; //建立角色叫turtle void draw(int d){for(int i0;i<5;i)turtle.fd(d).left(72); } int main(){ …

作者头像 李华