
إثبات المفهوم لـ CVE-2021-41091
تقدم هذه الأداة نظرة متعمقة على الثغرة الأمنية CVE-2021-41091 وتوفر دليلاً خطوة بخطوة حول كيفية استخدام السكريبت الخاص بها لتحقيق تصعيد الصلاحيات على النظام المضيف.
CVE-2021-41091 هي خلل في Moby (محرك Docker) يسمح لمستخدمي Linux غير المتميزين بتجاوز وتنفيذ البرامج داخل دليل البيانات (الموجود عادةً في /var/lib/docker) بسبب صلاحيات مجلد غير مقيدة بشكل صحيح. تكون هذه الثغرة موجودة عندما تحتوي الحاويات على برامج قابلة للتنفيذ بصلاحيات موسعة، مثل setuid. يمكن لمستخدمي Linux غير المتميزين عندها اكتشاف وتنفيذ تلك البرامج، بالإضافة إلى تعديل الملفات إذا كان UID المستخدم على المضيف يطابق مالك الملف أو مجموعته داخل الحاوية.
يعتبر نظام الملفات overlay مكوناً حاسماً في استغلال هذه الثغرة. يتيح نظام ملفات overlay الخاص بـ Docker تراص نظام ملفات الحاوية فوق نظام ملفات المضيف، مما يسمح للنظام المضيف بالوصول إلى الملفات داخل الحاوية والتلاعب بها. في حالة CVE-2021-41091، تؤدي صلاحيات الدليل المتساهلة بشكل مفرط في /var/lib/docker/overlay2 إلى تمكين المستخدمين غير المتميزين من الوصول إلى البرامج داخل الحاويات وتنفيذها، مما قد يؤدي إلى هجوم تصعيد صلاحيات.
الاتصال بحاوية Docker المستضافة على جهازك والحصول على صلاحيات الجذر.
داخل الحاوية، قم بتعيين بت setuid على /bin/bash باستخدام الأمر التالي: chmod u+s /bin/bash
على النظام المضيف، قم بتشغيل سكريبت الاستغلال المقدم (poc.sh) عن طريق استنساخ المستودع وتنفيذ السكريبت كما يلي:
git clone https://github.com/UncleJ4ck/CVE-2021-41091
cd CVE-2021-41091
chmod +x ./poc.sh
./poc.sh
تم الاختبار على إصدار محرك Docker 20.10.5+dfsg1
من الضروري تحديث Docker إلى الإصدار 20.10.9 أو أعلى لمعالجة هذه الثغرة.