سمح خطأ في Snapd بالحصول على امتيازات الجذر

عض

تم تحديد ثغرة أمنية في Snapd الذي تم وصفه بالفعل في (CVE-2019-7304), الذي يسمح لمستخدم لا يتمتع بامتيازات الحصول على امتيازات المسؤول (الجذر) على النظام.

بالنسبة لأولئك الذين ليسوا على دراية بـ Snapd ، يمكننا أن نخبرك أن هذه مجموعة أدوات لإدارة الحزم القائمة بذاتها بتنسيق snap. لاختبار نقاط الضعف في الأنظمة ، تم نشر نموذجين أوليين من برمجيات إكسبلويت.

  • الأول الذي يسمح للمهاجم بإنشاء مستخدم جديد في النظام.
  • والثاني يسمح للمهاجم أن يكون لديه القدرة على تثبيت أي نوع من الحزم الفورية على النظام وتشغيل الكود كجذر (عن طريق تثبيت الحزمة في وضع "devmode" مع مرفق برنامج التشغيل الذي يسمى بامتيازات الجذر عند تثبيت الحزمة).

ما هي هذه المآثر؟

تم إنشاء الاستغلال لاستغلال الاحتمال الأول المشار إليه فوق تخطي عمليات التحقق من التحكم في الوصول لاستخدام وظيفة API مقيدة لخدمة snapd المحلية.

يستعلم هذا النظام عن اسم مستخدم ومفتاح SSH عام من عنوان بريد إلكتروني مقدم ثم ينشئ مستخدمًا محليًا بناءً على هذه القيمة.

يتطلب الاستغلال الناجح لهذا الإصدار اتصالاً صادرًا بالإنترنت وخدمة SSH يمكن الوصول إليها عبر المضيف المحلي.

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

أيضا سيعمل على إصدارات أحدث من Ubuntu بدون اتصال بالإنترنت ، مما يجعلها مقاومة للتغيرات وفعالة في البيئات المقيدة.

هذا استغلال يجب أن يكون فعالًا أيضًا على الأنظمة غير التابعة لـ Ubuntu التي تم تثبيت snapd عليها ولكنها لا تدعم واجهة برمجة التطبيقات بسبب بناء جملة Linux shell.

قد لا تحتوي بعض أنظمة Ubuntu القديمة (مثل الإصدار 16.04) على مكونات snapd المطلوبة للتنزيل مثبتة.

إذا كانت هذه هي الحالة ، فإن هذا الإصدار من الاستغلال يمكن أن يدفعه لتثبيت تلك التبعيات. أثناء هذا التثبيت ، يمكن ترقية snapd إلى إصدار غير ضعيف.

لمعرفة المزيد عن هذه يمكنك الحصول على مزيد من التفاصيل في الرابط التالي.

مما يتكون هذا الخطأ المكتشف؟

الضعف مستحق لعدم وجود فحوصات مناسبة في snapd عند معالجة عنوان مقبس خارجي في عملية تقييم حقوق الوصول لمآخذ Unix.

عند معالجة الطلبات إلى API من خلال مقبس Unix ، يتم فحص المعرف الفريد العمومي (UID) للمستخدم المرتبط بالاتصال وبناءً على ذلك ، يتم اتخاذ قرار الوصول.

يمكن للمستخدم إرفاق سلسلة «؛ uid = 0 ؛ » إلى اسم الملف مع المقبس (على سبيل المثال ، قم بإنشاء مأخذ توصيل "/ tmp / sock؛ uid = 0؛") وستتم معالجة هذه السلسلة كجزء من عنوان مقبس العميل.

عند تحليل المعلمات في snapd ، يتم تعيين معرف المستخدم عن طريق البحث الدوري باستخدام القناع "؛ Uid =" على السطر الذي يتضمن أيضًا اسم الملف بالمقبس (على سبيل المثال ، عند إنشاء مقبس العميل "/ tmp / sock ؛ uid = 0 ؛" يأخذ هذا السطر الشكل "pid = 5275 ؛ uid = 1000 ؛ مقبس = / تشغيل / snapd.socket ؛ / tmp / جورب ؛ uid = 0 ؛ «).

لذلك، إذا كان هناك سلسلة "؛ المعرف الفريد = 0 ؛" في اسم المقبس ، سيتم تعيين المعرف منه وليس من المعلمة العادية مع UID الفعلي.

يمكن للمهاجم المحلي استخدام هذا الخطأ للوصول إلى مأخذ التوصيل /run/snapd.socket إلى واجهة برمجة تطبيقات snapd المميزة والحصول على امتيازات المسؤول (تستخدم الثغرات الأمنية السابقة v2 / create-user و / v2 / snaps APIs).

ما هي الإصدارات التي يؤثر عليها وهل يوجد حل بالفعل؟

تتجلى المشكلة في إصدارات snapd من 2.28 إلى 2.37 ويؤثر على جميع فروع Ubuntu المدعومة (من 14.04 إلى 18.10) وكذلك في التوزيعات المشتقة من أي من هذه الإصدارات المذكورة.

المشكلة يؤثر أيضًا على توزيعات Fedora و Debian، حيث يتم تقديم snapd من المستودعات العادية.

تم إصلاح الثغرة الأمنية في إصدار snapd 2.37.1، بالإضافة إلى تحديثات الحزمة لتوزيعات Ubuntu و Debian.


اترك تعليقك

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

*

*

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