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

تم التعرف على ثغرة أمنية خطيرة في وحدة ksmbd، والتي تتضمن تنفيذ خادم ملفات يعتمد على بروتوكول SMB المدمج في Linux kernel، والذي يسمح بتنفيذ التعليمات البرمجية عن بعد مع حقوق kernel. يمكن تنفيذ الهجوم دون مصادقة، ويكفي أن يتم تنشيط وحدة ksmbd على النظام. ظهرت المشكلة منذ إصدار kernel 5.15، الذي تم إصداره في نوفمبر 2021، وتم إصلاحها بهدوء في التحديثات 5.15.61 و5.18.18 و5.19.2، التي تم إصدارها في أغسطس 2022. نظرًا لعدم تعيين معرف CVE للمشكلة بعد، فلا توجد معلومات دقيقة حول حل المشكلة في التوزيعات حتى الآن.

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

بالإضافة إلى الثغرة الأمنية المذكورة في ksmbd، تم أيضًا إصلاح 4 مشكلات أقل خطورة:

  • ZDI-22-1688 - تنفيذ التعليمات البرمجية عن بعد مع حقوق kernel بسبب عدم التحقق من الحجم الفعلي للبيانات الخارجية في كود معالجة سمة الملف قبل نسخها إلى المخزن المؤقت المخصص. يتم التخفيف من خطورة الثغرة الأمنية من خلال حقيقة أنه لا يمكن تنفيذ الهجوم إلا بواسطة مستخدم مصادق عليه.
  • ZDI-22-1691 - تسرب معلومات عن بعد من ذاكرة kernel بسبب فحص غير صحيح لمعلمات الإدخال في معالج أوامر SMB2_WRITE (لا يمكن تنفيذ الهجوم إلا بواسطة مستخدم معتمد).
  • ZDI-22-1687 - رفض الخدمة عن بعد من خلال استنفاد الذاكرة المتوفرة في النظام بسبب الإصدار غير الصحيح للموارد في معالج أوامر SMB2_NEGOTIATE (يمكن تنفيذ الهجوم دون مصادقة).
  • ZDI-22-1689 - استدعاء عن بعد لتعطل النواة بسبب عدم التحقق الصحيح من معلمات الأمر SMB2_TREE_CONNECT، مما يؤدي إلى القراءة من منطقة خارج المخزن المؤقت (لا يمكن تنفيذ الهجوم إلا بواسطة مستخدم معتمد ).

تم تضمين دعم تشغيل خادم SMB باستخدام وحدة ksmbd في حزمة Samba منذ الإصدار 4.16.0. على عكس خادم SMB لمساحة المستخدم، يعد ksmbd أكثر كفاءة من حيث الأداء واستهلاك الذاكرة والتكامل مع ميزات kernel المتقدمة. يُوصف Ksmbd بأنه امتداد عالي الأداء وجاهز للدمج لـ Samba، ويتكامل مع أدوات ومكتبات Samba حسب الحاجة. تمت كتابة كود ksmbd بواسطة Namjae Jeon من Samsung وHyunchul Lee من LG، وتمت صيانته في النواة بواسطة Steve French من Microsoft، المشرف على الأنظمة الفرعية CIFS/SMB2/SMB3 في Linux kernel والعضو القديم في فريق تطوير Samba، الذي ساهم بشكل كبير لتنفيذ دعم بروتوكولات SMB/CIFS في Samba وLinux.

المصدر: opennet.ru

إضافة تعليق