ثغرة أمنية في systemd قد تسمح لك بتصعيد امتيازاتك

في مدير النظام systemd المحددة وهن (CVE-2020-1712)، والذي من المحتمل أن يسمح لك بتنفيذ التعليمات البرمجية الخاصة بك بامتيازات مرتفعة عن طريق إرسال طلب مصمم خصيصًا عبر ناقل DBus. تم إصلاح المشكلة في الإصدار التجريبي سيستيم دي 245-rc1 (التصحيحات التي تحل المشكلة: 1, 2, 3). تم إصلاح الثغرة الأمنية في التوزيعات أوبونتو, فيدورا, RHEL (يظهر في RHEL 8، لكنه لا يؤثر على RHEL 7)، CentOS и SUSE / openSUSEولكن حتى وقت كتابة هذا الخبر لم يتم تصحيحه ديبيان и قوس لينكس.

سبب الثغرة الأمنية هو الوصول إلى منطقة الذاكرة المحررة بالفعل (الاستخدام بعد الاستخدام)، والذي يحدث عند تنفيذ الطلبات بشكل غير متزامن إلى Polkit أثناء معالجة رسائل DBus. تستخدم بعض واجهات DBus ذاكرة تخزين مؤقت لتخزين الكائنات لفترة قصيرة ومسح إدخالات ذاكرة التخزين المؤقت بمجرد أن يصبح ناقل DBus حرًا لمعالجة الطلبات الأخرى. إذا كان معالج أسلوب DBus يستخدم bus_verify_polkit_async()، فقد يحتاج إلى الانتظار حتى يكتمل إجراء Polkit. بعد أن يصبح Polkit جاهزًا، يتم استدعاء المعالج مرة أخرى والوصول إلى البيانات الموزعة بالفعل في الذاكرة. إذا استغرق الطلب إلى Polkit وقتًا طويلاً، فسيتم مسح العناصر الموجودة في ذاكرة التخزين المؤقت قبل استدعاء معالج أسلوب DBus مرة أخرى.

من بين الخدمات التي تسمح باستغلال الثغرة الأمنية، يُشار إلى خدمة systemd-machined، التي توفر واجهة برمجة تطبيقات DBus org.freedesktop.machine1.Image.Clone، مما يؤدي إلى تخزين مؤقت للبيانات في ذاكرة التخزين المؤقت والوصول غير المتزامن إلى Polkit. واجهه المستخدم
org.freedesktop.machine1.Image.Clone متاح لجميع مستخدمي النظام غير المميزين، مما قد يؤدي إلى تعطل خدمات systemd أو يحتمل أن يتسبب في تنفيذ التعليمات البرمجية كجذر (لم يتم عرض النموذج الأولي للاستغلال بعد). الكود الذي سمح باستغلال الثغرة كان مضاف في نظام تشكيله في إصدار 2015 systemd 220 (RHEL 7.x يستخدم systemd 219).

المصدر: opennet.ru

إضافة تعليق