تم العثور على ثغرتين في Snap وتم السماح بتشغيل الكود كجذر

تم الكشف عن Qualys الأخبار التي أحددها اثنين من نقاط الضعف (CVE-2021-44731 و CVE-2021-44730) في الأداة المساعدة الإضافية، يتم إرسالها مع علامة SUID الجذر واستدعاؤها بواسطة عملية snapd لإنشاء بيئة قابلة للتنفيذ للتطبيقات الموزعة في حزم snap.

في التدوينة ورد ذكر ذلك تسمح الثغرات الأمنية للمستخدم المحلي غير المتميز بتحقيق تنفيذ التعليمات البرمجية كجذر في النظام.

تسمح الثغرة الأمنية الأولى بهجوم التلاعب بالارتباط المادي، ولكنه يتطلب تعطيل حماية الروابط الصلبة للنظام (عن طريق تعيين sysctl fs.protected_hardlinks على 0).

المشكلة يرجع ذلك إلى التحقق غير الصحيح من موقع الملفات التنفيذية من الأدوات المساعدة snap-update-ns و snap-discard-ns التي تعمل كجذر. تم حساب المسار إلى هذه الملفات في وظيفة sc_open_snapd_tool () بناءً على مسارها الخاص من / proc / self / exe ، مما يسمح لك بإنشاء رابط صلب لحصره في دليلك ووضع خياراتك في snap-update-ns and snap تجاهل- ns في هذا الدليل. عند التشغيل من رابط صلب ، فإن أداة snap-cline كجذر ستنفذ ملفات snap-update-ns و snap-discard-ns التي استبدلها المهاجم من الدليل الحالي.

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

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

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

حالة السباق تتجلى في وظيفة setup_private_mount () تم استدعاؤه أثناء إعداد مساحة اسم نقطة التحميل للحزمة الفورية. تنشئ هذه الوظيفة دليلًا مؤقتًا "/tmp/snap.$SNAP_NAME/tmp" أو تستخدم دليلًا موجودًا لربط الدلائل وتحميلها لحزمة snap بها.

نظرًا لأن اسم الدليل المؤقت يمكن التنبؤ به ، يمكن للمهاجم تغيير محتوياته إلى ارتباط رمزي بعد التحقق من المالك ، ولكن قبل استدعاء نظام التحميل. على سبيل المثال ، يمكنك إنشاء رابط رمزي "/tmp/snap.lxd/tmp" في الدليل /tmp/snap.lxd الذي يشير إلى دليل عشوائي وسيتبع استدعاء mount () الارتباط الرمزي ويقوم بتحميل الدليل في المساحة من الأسماء.

وبالمثل ، يمكنك تحميل محتوياته في / var / lib ، وتجاوز /var/lib/snapd/mount/snap.snap-store.user-fstab ، الترتيب لتحميل الدليل / etc الخاص بك في مساحة اسم الحزمة المفاجئة لتحميل مكتبتك من الوصول إلى الجذر عن طريق استبدال /etc/ld.so.preload.

لوحظ أن تبين أن إنشاء استغلال ليكون مهمة غير تافهة، نظرًا لأن الأداة المساعدة snap-cline مكتوبة باستخدام تقنيات البرمجة الآمنة (يتم كتابة snapd في Go ، ولكن يتم استخدام C للحصر المفاجئ) ، وله حماية تستند إلى ملفات تعريف AppArmor ، ويقوم بتصفية مكالمات النظام استنادًا إلى آلية seccomp ويستخدم مساحة اسم تحميل للعزلة.

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

وأخيراً جدير بالذكر أنتم إصلاح المشكلات في تحديث حزمة snapd لإصدارات Ubuntu 21.10 و 20.04 و 18.04.

بالإضافة إلى التوزيعات الأخرى التي تستخدم Snap ، تم إصدار Snapd 2.54.3 ، والذي ، بالإضافة إلى المشكلات المذكورة أعلاه ، يعمل على إصلاح ثغرة أمنية أخرى (CVE-2021-4120) ، مما يسمح ، عند تثبيت حزم المكونات الإضافية المصممة خصيصًا ، تجاوز قواعد AppArmor التعسفية وتجاوز قيود الوصول المعينة للحزمة.

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


اترك تعليقك

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

*

*

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