ثغرة أمنية في systemd-coredump، مما يسمح بتحديد محتويات ذاكرة البرامج suid

تم التعرف على ثغرة أمنية (CVE-2022-4415) في مكون systemd-coredump، الذي يعالج الملفات الأساسية التي تم إنشاؤها بعد تعطل العمليات، مما يسمح لمستخدم محلي لا يتمتع بالامتيازات بتحديد محتويات الذاكرة للعمليات المميزة التي تعمل باستخدام علامة الجذر suid. تم تأكيد مشكلة التكوين الافتراضي في توزيعات openSUSE وArch وDebian وFedora وSLES.

سبب الثغرة الأمنية هو عدم وجود معالجة صحيحة لمعلمة sysctl fs.suid_dumpable في systemd-coredump، والتي، عند تعيينها على القيمة الافتراضية 2، تسمح بإنشاء عمليات تفريغ أساسية للعمليات ذات علامة suid. من المفهوم أن الملفات الأساسية للعمليات suid المكتوبة بواسطة kernel يجب أن تتمتع بحقوق وصول معينة للسماح بالقراءة بواسطة المستخدم الجذر فقط. تقوم الأداة المساعدة systemd-coredump، التي تستدعيها kernel لحفظ الملفات الأساسية، بتخزين الملف الأساسي تحت معرف الجذر، ولكنها توفر بالإضافة إلى ذلك وصولاً للقراءة قائمًا على ACL إلى الملفات الأساسية بناءً على معرف المالك الذي أطلق العملية في الأصل .

تتيح لك هذه الميزة تنزيل الملفات الأساسية دون النظر إلى حقيقة أن البرنامج يمكنه تغيير معرف المستخدم وتشغيله بامتيازات مرتفعة. يتلخص الهجوم في حقيقة أنه يمكن للمستخدم تشغيل تطبيق suid وإرسال إشارة SIGSEGV إليه، ثم تحميل محتويات ملف أساسي، والذي يتضمن شريحة ذاكرة من العملية أثناء إنهاء غير طبيعي.

على سبيل المثال، يمكن للمستخدم تشغيل "/usr/bin/su" وفي محطة أخرى إنهاء تنفيذه باستخدام الأمر "kill -s SIGSEGV `pidof su`"، وبعد ذلك سيحفظ systemd-coredump الملف الأساسي في /var /lib/systemd/ الدليل coredump، مع ضبط قائمة التحكم بالوصول (ACL) له والتي تسمح للمستخدم الحالي بالقراءة. نظرًا لأن الأداة المساعدة suid 'su' تقرأ محتويات /etc/shadow في الذاكرة، فيمكن للمهاجم الوصول إلى معلومات حول تجزئات كلمة المرور لجميع المستخدمين على النظام. الأداة المساعدة Sudo ليست عرضة للهجوم، لأنها تمنع إنشاء الملفات الأساسية عبر ulimit.

وبحسب مطوري systemd فإن الثغرة تظهر بدءاً من إصدار systemd 247 (نوفمبر 2020)، ولكن بحسب الباحث الذي حدد المشكلة فإن الإصدار 246 متأثر أيضاً، وتظهر الثغرة إذا تم تجميع systemd مع مكتبة libacl (افتراضياً في جميع التوزيعات الشعبية). الإصلاح متاح حاليًا كتصحيح. يمكنك تتبع الإصلاحات في التوزيعات على الصفحات التالية: Debian، Ubuntu، Gentoo، RHEL، SUSE، Fedora، Gentoo، Arch. كحل بديل للأمان، يمكنك ضبط sysctl fs.suid_dumpable على 0، مما يؤدي إلى تعطيل إرسال عمليات التفريغ إلى معالج systemd-coredump.

المصدر: opennet.ru

إضافة تعليق