GNU/Linux内核新特性引发提权漏洞

SUSE 安全研究成员 Sebastian Krahmer 公布了 GNU/Linux 内核提权漏洞,最近的 GNU/Linux kernel ( 3.8+)引进了一个为了方便 container 实现的新特性:user-namespaces (user-ns, CLONENEWUSER flag),这个特性可以让你拥有你自己为 0 的 UID,作为 container 对于进程的隔离这样方便了实现,但也带来了相关的安全隐患,具体的讲,如果你把这个特性和 CLONEFS 混合的使用就会让不同的 container (即进程)间共享文件系统的状态,攻击者会通过这样的组合得到 root 权限:

只有当子进程得到自己的 user-ns (用户命名空间)时父进程和子进程共享了文件系统的信息(这个例子中的 chroot 就是如此),在自己的 user-ns 里使用 chroot ()系统调用并且和在 clone ()时加入 CLONE_FS 就会直接影响父进程,而父进程是在 user-ns 的初始化阶段时就已经拥有 root 权限了,exploit 已经公布到这里