容器逃逸

最近发现了一个尚未公开的容器逃逸方法,当一个容器共享宿主机 PID namespace、且以 uid 为 0 运行(没有启用 user namespace、没有添加任何额外的 capabilities)时,可以利用某些进程的 /proc/[pid]/root 符号链接实现容器逃逸。
本文对notify_on_release和devices.allow两种方式进行分析,在notify_on_release公开exp基础上补充在docker多种存储驱动场景下的利用方式。