
أداة إثبات المفهوم للثغرة CVE-2023-0386، وهي ثغرة تصعيد صلاحيات محليًا في Linux OverlayFS. توضّح كيف أن معالجة قدرات الملفات غير الصحيحة أثناء copy-up تسمح للمستخدمين غير المصرح لهم بالحصول على صلاحيات الجذر.
يقدم هذا المستودع دليلاً على المفهوم لـ CVE-2023-0386: https://nvd.nist.gov/vuln/detail/CVE-2023-0386
أعضاء الفريق: Bǎnicǎ Dragoș-Marius و Borsos Matheas-Roland
إليكم الفيديو: https://www.youtube.com/watch?v=Ikux1rjIYP0
يحتوي هذا المستودع على إثبات مفهوم لاستغلال CVE-2023-0386، وهي ثغرة تصعيد امتيازات محلية في نظام الملفات الموحد (OverlayFS) الخاص بنواة لينكس.
تسمح الثغرة لمستخدم محلي غير مميز بتصعيد صلاحياته إلى جذر (root) عن طريق استغلال معالجة غير صحيحة لسمات الملفات (capabilities) والملكية أثناء عمليات النسخ للأعلى (copy-up) في OverlayFS. يوضح إثبات المفهوم كيف يمكن لإعداد OverlayFS مصمم بعناية إنتاج ملف قابل للتنفيذ يحتفظ بصلاحيات مرتفعة، حتى عند نسخه من نقطة تحميل nosuid.
OverlayFS هو نظام ملفات موحد يُستخدم لدمج عدة أشجار أدلة في عرض واحد موحد. يُستخدم بكثرة في:
يتكون OverlayFS من:
عند تعديل ملف من الطبقة السفلى، يقوم OverlayFS بعملية نسخ للأعلى: يُنسخ الملف إلى الطبقة العليا ثم يُعدّل هناك.
تكمن الثغرة في كيفية تعامل OverlayFS مع البيانات الوصفية للملفات أثناء النسخ للأعلى، وتحديدًا:
CAP_SETUID)nosuidفي إصدارات النواة المتأثرة:
nosuid.هذا يخالف الافتراض الأمني القائل إن تحميل nosuid يمنع تصعيد الامتيازات.
CVE-2023-0386_POC/
├── exp.c # المنطق الرئيسي للاستغلال
├── fuse.c # مساعد نظام الملفات في مساحة المستخدم (FUSE)
├── getshell.c # حمولة تصعيد الامتيازات
├── ovlcap/ # أدوات اختبار سمات OverlayFS
│ ├── Makefile
│ └── ...
├── Makefile # تعليمات البناء الرئيسية
└── README.md
nosuid.gccmakelibfuse-dev (أو ما يعادله)libcap-dev (أو ما يعادله)git clone https://github.com/dragosbanica/CVE-2023-0386_POC.git
cd CVE-2023-0386_POC
make all
افتح نافذتي طرفية (terminal) واكتب في الأولى
./fuse ./ovlcap/lower ./gc
وفي الثانية اكتب
./exp