编辑 | zouyee
runC社区于2024年2月1日披露了高危安全漏洞CVE-2024-21626,攻击者可以利用该漏洞越权访问宿主机文件或执行二进制程序,详细内容参见下文
CVE-2024-21626: 提权漏洞
CVSS评分: CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H - 高风险 (8.6)
由于runc存在内部文件描述符泄露,本地攻击者可以通过多种方式进行容器逃逸:
上述漏洞可以通过社区提供的runc补丁来避免。
Snyk的new Helios团队已开发了一款针对该漏洞的运行时检测工具,https://github.com/snyk/leaky-vessels-dynamic-detector,该工具代码采用Apache-2.0许可。该独立工具提供了一个参考的实现方式,用于在执行时检测漏洞。其将eBPF hook绑定到内核和用户级函数以及包检测器上,从而能够报告容器构建和运行容器的调用,如果它们匹配任何可能存在利用尝试的模式。
感谢来自Snyk的Rory McNamara发现并披露了原始漏洞(攻击1)给Docker,感谢acmcoder的lifubang发现了如何复现(攻击3a)以覆盖主机二进制文件,以及感谢SUSE的Aleksa Sarai发现了如何复现(攻击2和3b)通过runc exec方向实现容器逃逸。
由于笔者时间、视野、认知有限,本文难免出现错误、疏漏等问题,期待各位读者朋友、业界专家指正交流。
参考文献
1. https://github.com/kyverno/kyverno/security/advisories/GHSA-3hfq-cx9j-923w
2. https://www.ddosi.org/cve-2024-21626/
3. https://cert.360.cn/warning/detail?id=65bb589cc09f255b91b17d32
4. https://snyk.io/blog/leaky-vessels-docker-runc-container-breakout-vulnerabilities/
5. https://github.com/opencontainers/runc/security/advisories/GHSA-xr7r-f8xq-vfvv 6.https://github.com/opencontainers/runc/commit/02120488a4c0fc487d1ed2867e901eeed7ce8ecf
7. https://www.secrss.com/articles/63427