runC 作为 Docker 和 Kubernetes 等容器平台的基础容器运行时近日被披露存在三个高危安全漏洞CVE-2025-31133、CVE-2025-52565、CVE-2025-52881。这些漏洞允许攻击者在特定条件下绕过容器隔离机制写入主机 /proc 目录最终实现容器逃逸并获取主机系统 root 权限。上图Kubernetes 整体架构左与 runC 在容器运行时栈中的位置右。runC 是 OCI 标准的参考实现负责底层容器进程创建、命名空间配置和资源隔离。runC 简介runC 是一款轻量级、命令行式的容器运行时同时也是开放容器倡议OCI的参考实现。它主要负责执行以下底层操作创建容器进程配置 Linux 命名空间namespaces设置挂载点mounts管理控制组cgroupsDocker、containerd、Kubernetes 等上层工具均通过调用 runC 来启动和运行容器。三个漏洞详细分析这三个漏洞的核心共同点是攻击者可诱导 runC 将主机敏感文件以可写模式挂载到容器内从而绕过隔离实现对 /proc 文件系统的写入控制。CVE-2025-31133影响所有 runC 版本 runC 使用绑定挂载 /dev/null 来“屏蔽”主机敏感文件如 /proc 下的关键条目。攻击者在容器初始化阶段将 /dev/null 替换为指向目标文件的符号链接symlink导致 runC 将攻击者控制的文件以读写模式挂载到容器中。攻击者随后可写入 /proc 目录实现容器逃逸或主机崩溃。 Docker Bind Mounts vs Volumes: Whats 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 运行、最小权限原则和持续的安全监控。如果您的环境依赖自定义挂载配置请特别关注容器镜像来源的可信度。