💡
原文中文,约5100字,阅读约需13分钟。
📝
内容提要
本文讨论了容器逃逸漏洞CVE,介绍了漏洞的复现过程和原理,并提供了探测方法。漏洞利用文件描述符泄漏,使容器内进程能够访问宿主机文件。文章提到了使用eBPF+Tracepoint进行探测的方法。
🎯
关键要点
-
容器逃逸漏洞CVE的核心特性是通过镜像分发的方式进行逃逸。
-
复现漏洞需要准备Docker环境,包括安装Docker、libseccomp和golang。
-
通过特定的Dockerfile设置工作目录,利用文件描述符泄漏访问宿主机文件。
-
openat2是Linux 5.6之后引入的系统调用,提供更细粒度的控制。
-
runc在启动过程中使用openat2进行文件打开,但未关闭已打开的文件描述符,导致文件描述符泄漏。
-
容器内进程的当前工作目录指向宿主机的cgroup目录,从而可以访问宿主机文件。
-
可以使用eBPF和Tracepoint探测该漏洞,监控chdir系统调用的目标路径。
-
容器逃逸问题依然存在,及时更新runc版本以修复漏洞是必要的。
➡️