注意: 此仓库中的代码用于演示安全容器沙箱技术(如 kata containers)的隔离性,并非旨在攻击任何平台。
echo 0 > /proc/sys/kernel/kptr_restrict
cat /proc/kallsyms
(gdb) p &(((struct task_struct *)0)->fs)
(gdb) p &(((struct task_struct *)0)->parent)
(gdb) p &(((struct fs_struct *)0)->root)
上游内核中的 waitid 实现未限制复制信息结果的目标目的地。这可能导致本地用户向本应受保护的内核内存进行写入,进而实现权限提升。
该漏洞于 2017-05-21 引入,并在 2017-10-09 修复。
此 CVE 已在 4.13 分支的后续版本以及更新的主线内核中得到修复。然而,可能存在类似的 CVE 允许权限提升。该 CVE 实际上与著名的 dirty cow,CVE-2016-5195 非常相似。
CVE-2017-5123.c 利用此漏洞修改 /proc/sys/vm/mmap_min_addr 的值,然后让 Linux 内核调用 shellcode 以获取主机根目录的文件访问权限。