Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 346

Docker Socket 攻击

Docker Socket 攻击 是什么?

Docker Socket 攻击通过容器内挂载的 /var/run/docker.sock 控制宿主机上的 Docker 守护进程,实现容器逃逸并获取宿主 root 权限。


/var/run/docker.sock 是 Docker 守护进程的无认证控制平面,而 dockerd 通常以宿主机 root 身份运行。当容器把该 socket 挂载进来(常见于 CI runner、监控代理、Sidecar 等场景),其内任何进程都能直接调用守护进程 API。攻击者一旦进入该容器,就能创建新的特权容器,把宿主机根文件系统挂载到 /host,植入后门、读取 /etc/shadow 或转入宿主网络命名空间。缓解措施:不要在不可信容器中挂载 docker.sock;采用 rootless Docker;通过 mTLS 暴露守护进程;或使用 sysbox、kaniko 等受限代理替代直接访问。

示例

  1. 01

    攻陷一个挂载了 /var/run/docker.sock 的 Jenkins 代理容器,启动 --privileged -v /:/host 的新容器。

  2. 02

    Portainer 容器内的攻击者通过绑定的 socket 列举并启动 root 容器。

常见问题

Docker Socket 攻击 是什么?

通过容器内挂载的 /var/run/docker.sock 控制宿主机上的 Docker 守护进程,实现容器逃逸并获取宿主 root 权限。 它属于网络安全的 攻击与威胁 分类。

Docker Socket 攻击 是什么意思?

通过容器内挂载的 /var/run/docker.sock 控制宿主机上的 Docker 守护进程,实现容器逃逸并获取宿主 root 权限。

Docker Socket 攻击 是如何工作的?

/var/run/docker.sock 是 Docker 守护进程的无认证控制平面,而 dockerd 通常以宿主机 root 身份运行。当容器把该 socket 挂载进来(常见于 CI runner、监控代理、Sidecar 等场景),其内任何进程都能直接调用守护进程 API。攻击者一旦进入该容器,就能创建新的特权容器,把宿主机根文件系统挂载到 /host,植入后门、读取 /etc/shadow 或转入宿主网络命名空间。缓解措施:不要在不可信容器中挂载 docker.sock;采用 rootless Docker;通过 mTLS 暴露守护进程;或使用 sysbox、kaniko 等受限代理替代直接访问。

如何防御 Docker Socket 攻击?

针对 Docker Socket 攻击 的防御通常结合技术控制与运营实践,详见上方完整定义。

Docker Socket 攻击 还有哪些其他名称?

常见的别称包括: docker.sock 挂载逃逸。

相关术语