
CVE-2017-16995(ثغرة رفع الامتيازات المحلية لـ Ubuntu)
Ubuntu هو نظام تشغيل GNU/Linux مفتوح المصدر يعتمد على سطح المكتب، مبني على Debian GNU/Linux. مؤخرًا، اكتشف أحد الباحثين الأمنيين (القبعات البيضاء) ثغرة محلية لرفع الامتيازات في أحدث إصدار من Ubuntu (Ubuntu 16.04)، برقم CVE-2017-16995. توجد هذه الثغرة في نواة Linux التي تستدعي eBPF bpf(2)، حيث يُسمح للمستخدم بتقديم برنامج BPF خبيث يؤدي إلى حدوث خطأ حسابي في وحدة التحقق من eBPF (eBPF verifier module)، مما يتسبب في مشاكل قراءة وكتابة عشوائية للذاكرة. يمكن للمستخدمين ذوي الصلاحيات المنخفضة استغلال هذه الثغرة للحصول على صلاحيات إدارية. تم إصلاح هذه الثغرة في الإصدارات القديمة، لكنها لا تزال قابلة للاستغلال في الإصدار الأحدث. لم تصدر الشركة المصنعة تحديثًا رسميًا بعد، وتعتبر الثغرة في حالة 0day.
إصدارات نواة Linux 4.14-4.4 تؤثر فقط على توزيعات Ubuntu/Debian
عالٍ
bearcat@ubuntu:/opt$ lsb_release -a
<br>No LSB modules are available.
<br>Distributor ID: Ubuntu
<br>Description: Ubuntu 16.04.4 LTS
<br>Release: 16.04
<br>Codename: xenial
<br>bearcat@ubuntu:/opt$ uname -a
<br>Linux ubuntu 4.4.0-116-generic #140-Ubuntu SMP Mon Feb 12 21:23:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
<br>bearcat@ubuntu:/opt$ id
<br>uid=1000(bearcat) gid=1000(bearcat) <br>groups=1000(bearcat),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),110(lxd),115(lpadmin),116(sambashare)
<br>bearcat@ubuntu:/opt$ ls
<br>exploit.c
<br>bearcat@ubuntu:/opt$ gcc exploit.c -o exploit
<br>bearcat@ubuntu:/opt$ ./exploit
<br>task_struct = ffff88003a0db800
<br>uidptr = ffff8800374b76c4
<br>spawning root shell
<br>root@ubuntu:/opt# id
<br>uid=0(root) gid=0(root) groups=0(root),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),110(lxd),115(lpadmin),116(sambashare),1000(bearcat)
<br>root@ubuntu:/opt#
حاليًا لا يوجد تحديث رسمي واضح متاح، لكن يُوصى المستخدمون بتقييد استدعاء النظام bpf(2) للمستخدمين العاديين للتخفيف من المشكلة عن طريق تعديل معلمات النواة:
قم بتعيين المعامل "kernel.unprivileged_bpf_disabled = 1" لمنع رفع الامتيازات عن طريق تقييد الوصول إلى استدعاء bpf(2).
root@Ubuntu# echo 1 > /proc/sys/kernel/unprivileged_bpf_disabled
قم بترقية إصدار نواة Linux، وسيتم تطبيق التغيير بعد إعادة تشغيل الخادم:
تم وصف العملية المحددة بالفعل أثناء إعداد البيئة، يحتاج المستخدم فقط إلى تغيير إصدار النواة!
تصحيح البرمجيات https://github.com/torvalds/linux/commit/95a762e2c8c942780948091f8f2a4f32fce1ac6f