تحديد إصدارات خادم Xorg X11 عرضة لامتياز تصعيد إكسبلويت و OpenBSD و CentOS المتأثرة

الأمان / تحديد إصدارات خادم Xorg X11 عرضة لامتياز تصعيد إكسبلويت و OpenBSD و CentOS المتأثرة قراءة دقيقة واحدة

مشروع OpenBSD



Xorg هو نظام نوافذ X مشهور جدًا يستخدم في Linux. إنها واجهة مستخدم رسومية تستخدم معيار X11 ، والذي يعد بدوره بروتوكول اتصال. تم فصل Xorg من مشروع XFree86 ، والذي لم يعد قيد التطوير النشط.

استغلال تصعيد الامتياز

جميع إصدارات خادم Xorg X11 من 1.19.0 حتى 1.20.3 عرضة لعيوب التحقق من الأذونات الموجودة لخيارات -modulepath و -logfile. يمنح هذا المستخدمين غير المتميزين القدرة على بدء خادم ، لتشغيل تعليمات برمجية عشوائية بامتيازات مرتفعة.



اكتشف الباحثون أن تشغيل برنامج نصي CRON مع الاستغلال المحمل يجعل SELinux يفرضه. يتم إنشاء ملف نسخ احتياطي crontab.old ، والذي تم استبداله بشكل أساسي بوحدة Metasploit بملف جديد به أوامر وإرشادات لتنفيذ cron daemon. قد يؤدي الاستغلال الفاشل إلى تلف crontab. يحتاج Xorg أيضًا إلى الحصول على أذونات SUID حتى يعمل الاستغلال ، والذي يمكنك التحقق منه من مقتطف الشفرة أدناه.



# شيكات لينكس
uname = cmd_exec 'uname'
إذا uname = ~ / linux / i
vprint_status 'تشغيل فحص إضافي لنظام التشغيل Linux'
إذا كان مستخدم مخزن البيانات ['ConsoleLock'] = cmd_exec 'id -un'
ما لم يوجد؟ '/ var / run / console / # {user}'
vprint_error 'لا يوجد قفل وحدة تحكم لـ # {user}'
عودة CheckCode :: Safe
النهاية
vprint_good 'قفل وحدة التحكم لـ # {user}'
النهاية
إذا selinux_installed؟
إذا selinux_enforcing؟
vprint_error 'Selinux يفرض'
عودة CheckCode :: Safe
النهاية
النهاية
vprint_good 'Selinux ليس مشكلة'
النهاية

# فحص برنامج suid
xorg_path = cmd_exec 'command -v Xorg'
ما لم يكن xorg_path.include؟ ('Xorg')
vprint_error 'تعذر العثور على Xorg القابل للتنفيذ'
عودة CheckCode :: Safe
النهاية
vprint_good 'تم العثور على مسار Xorg في # {xorg_path}'
ما لم يكن setuid؟ xorg_path
vprint_error 'Xorg binary # {xorg_path} ليس SUID'
عودة CheckCode :: Safe
النهاية
vprint_good 'Xorg binary # {xorg_path} هو SUID'

منهجية الاختبار

تم عمل هذا الاستغلال من قبل أربعة باحثين -

  • ناريندرا شيندي - الاكتشاف والاستغلال
  • Raptor-0xdea - استغلال معدل لـ cron
  • آرون رينغو - وحدة Metasploit
  • بريندان كولز - وحدة Metasploit

تم اختبار ذلك على OpenBSD 6.3 و 6.4 و CentOS 7 (1708). وفقًا للملاحظات الموجودة على Packetstorm ، سيحتاج CentOS مع التثبيت الافتراضي إلى مصادقة وحدة التحكم لجلسات المستخدم.

هذه ثغرة خطيرة بالنظر إلى حجم استخدام Xorg. على الرغم من أن الاستغلال يحتاج إلى بعض الإعدادات المسبقة للعمل ، والتي قد لا تكون موجودة في بيئة مهنية.

العلامات CentOS OpenBSD Xorg