ثغرة أمنية في بيئة المستخدم التنويرية التي تسمح لك بالحصول على حقوق الجذر

تم التعرف على ثغرة أمنية (CVE-2022-37706) في بيئة مستخدم Enlightenment التي تسمح لمستخدم محلي لا يتمتع بأي امتيازات بتنفيذ تعليمات برمجية باستخدام حقوق الجذر. لم يتم إصلاح الثغرة الأمنية بعد (0-day)، ولكن هناك بالفعل استغلال متاح في المجال العام، تم اختباره في Ubuntu 22.04.

تكمن المشكلة في الملف Enlightment_sys القابل للتنفيذ، والذي يأتي مع علامة الجذر suid وينفذ بعض الأوامر المسموح بها، مثل تثبيت محرك الأقراص باستخدام الأداة المساعدة mount، من خلال استدعاء النظام (). بسبب التشغيل غير الصحيح للوظيفة التي تولد السلسلة التي تم تمريرها إلى استدعاء النظام ()، يتم قطع علامات الاقتباس من وسيطات الأمر الذي يتم تشغيله، والتي يمكن استخدامها لتشغيل التعليمات البرمجية الخاصة بك. على سبيل المثال، عند تشغيل mkdir -p /tmp/net mkdir -p "/tmp/;/tmp/exploit" echo "/bin/sh" > /tmp/exploit chmod a+x /tmp/exploit Enlightment_sys /bin/mount - noexec,nosuid,utf8,nodev,iocharset=utf8,utf8=0,utf8=1,uid=$(id -u), “/dev/../tmp/;/tmp/exploit” /tmp// / صافي

بسبب إزالة علامات الاقتباس المزدوجة، بدلاً من الأمر المحدد '/bin/mount... "/dev/../tmp/;/tmp/exploit" /tmp///net'، سيتم إنشاء سلسلة بدون علامات اقتباس مزدوجة تم تمريره إلى وظيفة النظام () ' /bin/mount … /dev/../tmp/;/tmp/exploit /tmp///net'، والذي سيؤدي إلى ظهور الأمر '/tmp/exploit /tmp///net ' ليتم تنفيذه بشكل منفصل بدلاً من معالجته كجزء من المسار إلى الجهاز. تم اختيار السطرين "/dev/../tmp/" و"/tmp///net" لتجاوز التحقق من الوسائط لأمر التحميل في Enlightment_sys (يجب أن يبدأ جهاز التثبيت بـ /dev/ ويشير إلى ملف موجود، ويتم تحديد الأحرف الثلاثة "/" عند نقطة التثبيت لتحقيق حجم المسار المطلوب).

المصدر: opennet.ru

إضافة تعليق