
ثغرات تصعيد الامتيازات المحلية (LPE) في عميل DeskIn لنظام macOS
المورّد: DeskIn
المنتج: عميل DeskIn لنظام macOS
الإصدارات المتأثرة: <= v3.3.4.3
تم تحديد ثغرة تصعيد الصلاحيات المحلية (LPE) في عميل DeskIn لنظام macOS. تسمح هذه الثغرة لمستخدم محلي غير متمتع بالصلاحيات بتصعيد صلاحياته إلى root.
يقوم DeskIn بتثبيت خدمة (daemon) تُسمى DeskIn_Service تعمل بصلاحيات المستخدم root. وهي تكشف عن خدمة Mach XPC تُسمى com.deskin.service.installer.
يفتقر تنفيذ نقطة النهاية XPC هذه إلى التحقق المناسب من العميل. يفشل NSXPCListenerDelegate في إجراء فحوصات أمنية كافية على الاتصالات الواردة. فهو لا يتحقق من توقيع الكود أو الاستحقاقات (entitlements) الخاصة بالعميل المتصل. وبالتالي، يمكن لأي تطبيق غير متمتع بالصلاحيات أو مستخدم محلي على نظام macOS الاتصال بخدمة XPC هذه واستدعاء الدالة submitInstallerToSystemDomainWithPath:.
/Applications/DeskIn.app/Contents/MacOS/DeskIn_Servicecom.deskin.service.installersubmitInstallerToSystemDomainWithPath:hostBundleIdentifier:homeDirectory:userName:jobDictionary:completion:https://github.com/user-attachments/assets/46a26c48-3a28-405a-8430-3bc041951261
لتأمين خدمة XPC، يجب أن ترفض الدالة shouldAcceptNewConnection: صراحةً العملاء غير المصرح لهم.
التوصية: التحقق من توقيع الكود الخاص بالعملية المتصلة. التأكد من أن العميل موقّع بواسطة معرّف فريق مطوّري Apple المحدد (Apple Developer Team ID) ويمتلك استحقاقًا محددًا أو معرّف حزمة (bundle identifier) مطابقًا لعميل DeskIn الشرعي.
نظرًا لأن المورّد لم يصدر تصحيحًا لهذه المشكلات وقت النشر، يُنصح مستخدمو عميل DeskIn لنظام macOS بتعطيل DeskIn_Service إذا لم يكن ضروريًا بشكل صارم أو إلغاء تثبيت البرنامج حتى يتوفر تصحيح.
تم الاكتشاف بواسطة:
Long, Dang Hoang من SACOMBANK