تم اكتشاف ثغرتين في Linux Kernel والتي ما زالت تسمح للمستخدمين برفع امتيازاتهم 

حساسية

إذا تم استغلالها ، يمكن أن تسمح هذه العيوب للمهاجمين بالوصول غير المصرح به إلى المعلومات الحساسة أو التسبب بشكل عام في حدوث مشكلات

قبل أيام قليلة نشر الخبر ذلك تم الكشف عن ثغرتين في الأنظمة الفرعية لـ نواة لينكس، Netfilter و io_uring ، اللذان يسمحان لمستخدم محلي برفع امتيازاته على النظام.

الأول هو الضعف. (CVE-2023-32233) الذي تم اكتشافه في نظام Netfilter الفرعي وينتج عن الوصول إلى الذاكرة بعد الاستخدام الحر في الوحدة النمطية nf_tables ، والتي تضمن تشغيل مرشح حزم nftables.

سبب هذا الخطأ هو أن netfilter nf_tables يسمح بتحديث التكوين الخاص به لطلبات الدُفعة تلك المجموعة معًا عمليات أساسية متعددة في المعاملات الذرية.

المشكلة تم إعادة إنتاجه في إصدارات مختلفة من Linux kernel ، بما في ذلك Linux 6.3.1 (مستقر حاليًا) ويمكن استغلال الثغرة الأمنية عن طريق إرسال طلبات معدة خصيصًا لتحديث تكوين nftables. يذكر أن الهجوم يتطلب الوصول إلى nftables ، والتي يمكن الحصول عليها في مساحة اسم شبكة منفصلة إذا كان لديك حقوق CLONE_NEWUSER أو CLONE_NEWNS أو CLONE_NEWNET (على سبيل المثال ، إذا كان بإمكانك تشغيل حاوية معزولة).

فيما يتعلق بهذا الخطأ ، وعد الباحث الذي حدد المشكلة بتأجيل نشر المعلومات التفصيلية لمدة أسبوع ومثال على استغلال يعمل يوفر غلافًا جذريًا.

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

كما سبق ذكره في البداية ، كان هذا قبل عدة أيام وتم الكشف عن الاستغلال والمعلومات بالفعل. يمكن العثور على الاستغلال وتفاصيله على الرابط التالي.

تم الكشف عن الخطأ الثاني ، كانت نقطة الضعف (CVE-2023-2598) في تنفيذ واجهة الإدخال / الإخراج غير المتزامنة io_uring مدرج في Linux kernel منذ الإصدار 5.1.

سبب المشكلة هو خطأ في وظيفة io_sqe_buffer_register ، والتي تسمح بالوصول إلى الذاكرة الفعلية خارج حدود المخزن المؤقت المخصص بشكل ثابت. تظهر المشكلة فقط في الفرع 6.3 وسيتم إصلاحها في التحديث القادم 6.3.2.

يذكر أن الفكرة وراء الالتزام الأصلي هي أنه بدلاً من تقسيم الصفحات الكبيرة المخزنة مؤقتًا إلى إدخالات bvec فردية ، يمكنك الحصول على إدخال bvec واحد لجميع الأجزاء المخزنة مؤقتًا من الصفحة. على وجه التحديد ، إذا كانت جميع الصفحات في خريطة المخزن المؤقت تستخدم بنية الصفحة الأولى وطول المخزن المؤقت في إدخال bvec واحد بدلاً من تعيين كل صفحة على حدة.

لذا فإن bvec ستمتد إلى ما هو أبعد من الصفحة الواحدة التي يُسمح بالفعل بلمسها. لاحقًا ، يسمح لنا IORING_OP_READ_FIXED و IORING_OP_WRITE_FIXED بالقراءة والكتابة إلى المخزن المؤقت (أي ، الذاكرة التي تشير إليها bvec) حسب الرغبة. يسمح هذا بالوصول للقراءة / الكتابة إلى الذاكرة الفعلية خلف الصفحة الوحيدة الموجودة لدينا بالفعل.

يشير منشور الثغرات الأمنية إلى خطوات إعادة إنتاج الخطأ:

1. إنشاء memfd
2. خطأ في صفحة واحدة في واصف الملف هذا
3. استخدم MAP_FIXED لتعيين هذه الصفحة بشكل متكرر ، إلى مواقع متتالية
4. سجل المنطقة بأكملها التي ملأتها للتو بتلك الصفحة باسم
مخزن مؤقت ثابت مع IORING_REGISTER_BUFFERS
5. استخدم IORING_OP_WRITE_FIXED لكتابة المخزن المؤقت إلى ملف آخر
(قراءة OOB) أو IORING_OP_READ_FIXED لقراءة البيانات في المخزن المؤقت (
OOB الكتابة).

أخيرا من الجدير بالذكر أن متاح بالفعل  نموذج أولي لاستغلال العمل (CVE-2023-2598) للاختبار ، مما يسمح لك بتشغيل التعليمات البرمجية بامتيازات kernel.

عالي التأثر (CVE-2023-32233) تم إصلاحه في تحديث 6.4-rc ويمكنك متابعة إصلاح الثغرة الأمنية في التوزيعات على الصفحات: ديبيانأوبونتوجنتوRHELفيدوراSUSE / openSUSEقوس.


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: AB Internet Networks 2008 SL
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.