
إفصاح عام
التطبيق المتأثر: MindManager23_setup.exe
المنصة: Windows
الثغرة: تصعيد الامتيازات المحلي عبر وضع الإصلاح في مثبّت MSI (حالة سباق لاختطاف ملف EXE)
اكتُشفت وأُبلغ عنها بواسطة: Pawel Karwowski و Julian Horoszkiewicz (Eviden Red Team)
التخفيف المقترح: https://learn.microsoft.com/en-us/windows/win32/msi/disablemsi
الأساس المنطقي للكشف العلني: إن إبقاء هذا الأمر طي الكتمان إلى أجل غير مسمى يفيد في المدى البعيد الجهات الفاعلة في التهديدات (إذ إن اكتشاف الثغرة أمر تافه)، بينما يترك المستخدمين والمشرفين في الظلام، غير مدركين للخطر.
ما موقف البائع؟ وفقًا للبائع، لا تقع المسؤولية على عاتقه، لأن الثغرة تكمن في مكوّن تابع لجهة خارجية (CVE-2021-41526). ومع ذلك، لا يعني هذا أن برنامجه غير قابل للاختراق. لقد أبلغنا البائع بهذه الثغرة في الأصل بتاريخ 22.08.2023. ومنذ ذلك الحين، لم نتمكن من إقناعهم بإصدار إصلاح، حتى بعد إشراك US CERT في جهود التنسيق. وبعد فترة طويلة من تبادل الرسائل ذهابًا وإيابًا، اتفقنا مع CERT على أن الكشف العلني هو المسار الصحيح في هذه الحالة.
ما هي الثغرة؟ على الأنظمة التي يكون فيها MindManager23 مثبتًا، يمكن للمستخدمين العاديين تشغيل المثبّت في وضع "الإصلاح" عن طريق إصدار الأمر التالي: msiexec.exe /fa PATH_TO_INSTALLER_FILE.msi
يؤدي هذا إلى تشغيل خدمة msiexec، التي تنفذ عملية الإصلاح، وتشغّل إجراءات متعددة، ومن بين أمور أخرى، تنشئ ملفات داخل دليل C:\Users\pk\AppData\Local\Temp، وتكون أسماؤها مولّدة ديناميكيًا بالنمط التالي: "wac.tmp"، على سبيل المثال wac98DF.tmp. ثم تستخدم العملية ملف wac****.tmp المُنشأ (ملفًا تنفيذيًا) الذي يعمل بصلاحيات NT AUTHORITY/SYSTEM للكتابة إلى نسخة من نفسها وتحميلها كصورة.
نظرًا لأن دليل C:\Users\pk\AppData\Local\ مملوك للمستخدم العادي، فإن دليل C:\Users\pk\AppData\Local\Temp\ يرث الصلاحيات، مما يتيح للمستخدم العادي العبث بمحتويات الدليل، على سبيل المثال عن طريق استبدال ملفات DLL\EXE المُولّدة ديناميكيًا.
سبب تصعيد الامتيازات في مثبّت Mind Manager هو استخدامه لمكوّن معروف بثغراته - Flexera Installshield، المتأثر بـ CVE-2021-41526. كان ينبغي لـ Mind Manager استخدام إصدار محدّث من Flexera Installshield - أو إعادة تغليف MSI بحيث لا يدعم "وضع الإصلاح"، أو يتطلب صلاحيات إدارية لتشغيله.
ما هي عملية الاستغلال؟ يتم الاستغلال باستخدام سكربت PowerShell يشغّل ملف .MSI، ويتحقق من وجود وإنشاء ملف DLL\EXE الشرعي الذي يهمنا، ويكرر نسخ ملف DLL\EXE الخاص بإثبات المفهوم (Proof of Concept) إلى دليل Appdata\Local\Temp، مما يؤدي فعليًا إلى استبدال ملف DLL\EXE الشرعي. بعد تشغيله، ينشئ ملف PoC DLL\EXE ملف poc.txt في C:\Users\Public، مع سطر الأوامر الذي استدعاه، ومخرجات الأمر whoami.