研究人员发现严重runC漏洞,可实现完整容器逃逸

安全研究人员披露了runC容器运行时中的三个严重漏洞,攻击者可利用这些漏洞突破容器隔离并控制主机系统。这些漏洞涉及临时绑定挂载、符号链接和写操作处理缺陷,影响Docker和Kubernetes等平台。

研究人员发现严重runC漏洞,可实现完整容器逃逸

安全研究人员披露了runC中的三个严重漏洞,runC是符合开放容器倡议(OCI)的运行时,为Docker和Kubernetes等平台提供支持。这些漏洞可能允许攻击者突破容器隔离并获取主机系统的控制权。这些漏洞被追踪为CVE-2025-31133、CVE-2025-52565和CVE-2025-52881,源于runC在管理临时绑定挂载、符号链接(symlinks)和某些写操作方面的弱点。它们可被组合利用以实现完整的容器逃逸甚至主机级入侵。

根据美国国家漏洞数据库(NVD)和runC项目自身的公告,这些漏洞源于runC路径解析和挂载处理中的逻辑错误和竞争条件问题。问题出现在runC尝试通过绑定挂载安全inode(如/dev/null或/dev/console)来屏蔽对受限文件的访问时。

如果攻击者在容器初始化期间引入符号链接或触发竞争条件,运行时可能会意外挂载攻击者指定的目标路径,从而授予对关键主机系统文件的写访问权限。这种错误配置可能暴露内核接口,如/proc/sys/kernel/core_pattern或/proc/sysrq-trigger,如果被修改,可用于崩溃主机或完全逃离容器环境。

SUSE开发人员兼OCI技术委员会成员Aleksa Sarai解释说,runC屏蔽文件的方法之所以易受攻击,是因为它在初始化期间与符号链接的交互方式。“如果攻击者在适当时机放置符号链接,runC可能会无意中挂载攻击者定义的目标,从而在/proc中创建对关键内核接口的危险写访问权限,“Sarai警告说。公告强调,所有三个漏洞都可能通过绕过runC的预期限制来允许完整的容器逃逸。

漏洞详情:CVE-2025-31133、CVE-2025-52565和CVE-2025-52881

CVE-2025-31133涉及runC如何实现"屏蔽路径”。当运行时绑定挂载/dev/null覆盖文件以阻止访问时,攻击者可以将/dev/null替换为指向敏感主机文件的符号链接。这可能导致runC将该主机路径挂载为读写模式,使攻击者能够更改内核参数或通过/proc/sysrq-trigger触发系统崩溃。此漏洞影响所有已知的runC版本,直到最新补丁。

CVE-2025-52565是一个类似问题,针对/dev/console挂载。当runC尝试将/dev/console绑定到/dev/pts/$n时,用符号链接替换/dev/pts/$n的攻击者可能导致绑定挂载目标不同的文件。此漏洞影响从1.0.0-rc3开始的所有runC版本。与CVE-2025-31133类似,它可被利用来创建对关键procfs文件的读写绑定,导致容器逃逸。该漏洞的CVSS评分为7.3。

在解决CVE-2025-52565时,开发人员还发现了runC使用文件创建功能的潜在风险。虽然这些风险不能直接利用,但作为预防措施包含了修复。还应用了额外的缓解措施来减少/dev/pts/$n中的竞争条件,尽管在大多数部署中这些条件主要是假设性的。

CVE-2025-52881代表了一个更高级的攻击向量,它建立在先前runC漏洞的基础上。它允许攻击者在procfs内重定向写操作,绕过Linux安全模块(LSM)保护,如AppArmor和SELinux。这可能允许恶意写入/proc/sysrq-trigger等文件,导致主机崩溃,或写入/proc/sys/kernel/core_pattern,促进容器逃逸。

此漏洞影响所有已知的runC版本,CVSS评分为7.3。研究人员指出,CVE-2025-52881可以与其他两个漏洞配对以简化利用,作为LSM绕过机制,允许对主机文件进行任意写入。

修复、版本和缓解措施

这些漏洞已在runC v1.2.8、v1.3.3和v1.4.0-rc.3中得到解决。补丁不仅对runC本身引入了广泛的代码更改,还对支持库filepath-securejoin(处理安全路径解析)进行了修改。维护者强烈建议供应商和用户直接升级到这些版本,而不是应用单独的补丁,因为修复是相互依赖的,并覆盖了三个CVE中的重叠问题。

推荐的缓解措施包括:

  • 通过防止主机root用户在容器内映射,标准Unix权限会阻止对procfs文件的未经授权写入
  • 容器应配置受限权限,并使用noNewPrivileges标志禁用setuid二进制文件
  • SELinux在某些情况下可能有助于限制暴露,但CVE-2025-52881可以绕过LSM保护,使得仅靠AppArmor或SELinux不足够

虽然这些缓解措施减少了暴露风险,但立即升级仍然是最有效的防御。公告警告说,如果运行时未打补丁,CVE-2025-52881甚至可能破坏基于LSM的强大防御。

结论

最近的runC漏洞和跨运行时的协调修复表明,迫切需要主动的、由情报驱动的网络安全。使用Docker、Kubernetes或其他基于OCI的平台的组织应及时升级到修补版本(v1.2.8、v1.3.3或v1.4.0-rc.3),并仔细审查容器权限以降低风险。Lei Wang、Li Fubang、Tõnis Tiigi和Aleksa Sarai的研究贡献凸显了跨运行时协作以防止容器逃逸的重要性。

作为这些工作的补充,Cyble的AI原生威胁情报平台(包括Blaze AI)提供漏洞的自主监控、威胁预测和修复,使安全团队能够在复杂的容器化环境中领先于攻击,保护关键资产并维护安全防御。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计