Snyk 在 Docker 引擎以及其他容器化技术(例如 Kubernetes)使用的 runc <=1.1.11 的所有版本中发现了一个漏洞。利用此问题可能会导致容器逃逸到底层主机操作系统,无论是通过执行恶意映像还是使用恶意 Dockerfile 或上游映像构建映像(即使用时FROM)
CVE-2024-21626原理
演示 1:通过docker build
.您在这里看到的是docker build
利用突破容器并通过任意读取(在本例中为主机的/etc/shadow
文件)和写入(在本例中为创建文件DOCKER_BUILD_BREAKOUT
)来访问主机文件系统。
演示 2:通过docker run
.您在这里看到的内容展示了运行基于相同漏洞的恶意 Docker 映像如何同样导致 Docker 容器突破主机操作系统。
WORKDIR
该漏洞是由于应用Dockerfile 中定义的指令时的操作顺序而发生的。WORKDIR
定义 Dockerfile 创建的所有进程的初始工作目录,例如使用 指令在构建时执行的进程和使用或指令RUN
在运行时执行的进程。在关闭特定特权主机目录文件描述符之前输入提供的目录。可以通过目录指定这