ثغرة أمنية عن بعد في Linux kernel تحدث عند استخدام بروتوكول TIPC

تم التعرف على ثغرة أمنية (CVE-2022-0435) في وحدة Linux kernel التي تضمن تشغيل بروتوكول الشبكة TIPC (الاتصال الشفاف بين العمليات)، مما قد يسمح بتنفيذ التعليمات البرمجية على مستوى kernel عن طريق إرسال شبكة مصممة خصيصًا رزمة. تؤثر المشكلة فقط على الأنظمة التي تم تحميل وحدة kernel Tipc.ko فيها وتكوين حزمة TIPC، والتي تُستخدم عادةً في المجموعات ولا يتم تمكينها افتراضيًا في توزيعات Linux غير المتخصصة.

تجدر الإشارة إلى أنه عند بناء النواة في الوضع "CONFIG_FORTIFY_SRC=y" (المستخدم في RHEL)، والذي يضيف عمليات فحص حدود إضافية إلى وظيفة memcpy()، يقتصر التشغيل على التوقف في حالات الطوارئ (ذعر النواة). إذا تم التنفيذ بدون فحوصات إضافية وإذا تم تسريب معلومات حول علامات الكناري المستخدمة لحماية المكدس، فمن الممكن استغلال المشكلة لتنفيذ التعليمات البرمجية عن بعد باستخدام حقوق kernel. ويزعم الباحثون الذين حددوا المشكلة أن تقنية الاستغلال تافهة وسيتم الكشف عنها بعد القضاء على الثغرة الأمنية على نطاق واسع في التوزيعات.

تنجم الثغرة الأمنية عن تجاوز سعة المكدس الذي يحدث عند معالجة الحزم، حيث تتجاوز قيمة الحقل الذي يحتوي على عدد عقد أعضاء المجال 64. لتخزين معلمات العقدة في وحدة Tipc.ko، يتم استخدام صفيف ثابت "أعضاء u32[64" ]" يتم استخدامه، ولكن في عملية معالجة المحدد في الحزمة، لا يتحقق رقم العقدة من قيمة " member_cnt "، مما يسمح باستخدام قيم أكبر من 64 للتحكم في الكتابة فوق البيانات في منطقة الذاكرة التالية إلى بنية "dom_bef" على المكدس.

تم تقديم الخطأ الذي أدى إلى الثغرة الأمنية في 15 يونيو 2016 وتم تضمينه في Linux 4.8 kernel. تمت معالجة الثغرة الأمنية في إصدارات Linux kernel 5.16.9 و5.15.23 و5.10.100 و5.4.179 و4.19.229 و4.14.266 و4.9.301. في نوى معظم التوزيعات، تظل المشكلة دون حل: RHEL، وDebian، وUbuntu، وSUSE، وFedora، وGentoo، وArch Linux.

تم تطوير بروتوكول TIPC في الأصل بواسطة شركة Ericsson، وهو مصمم لتنظيم الاتصال بين العمليات في مجموعة ويتم تنشيطه بشكل أساسي على عقد المجموعة. يمكن أن يعمل TIPC عبر Ethernet أو UDP (منفذ الشبكة 6118). عند العمل عبر Ethernet، يمكن تنفيذ الهجوم من الشبكة المحلية، وعند استخدام UDP، من الشبكة العالمية إذا لم يكن المنفذ مغطى بجدار الحماية. يمكن أيضًا تنفيذ الهجوم بواسطة مستخدم محلي للمضيف لا يتمتع بأي امتيازات. لتنشيط TIPC، تحتاج إلى تنزيل وحدة kernel Tipc.ko وتكوين الارتباط بواجهة الشبكة باستخدام netlink أو الأداة المساعدة Tipc.

المصدر: opennet.ru

إضافة تعليق