تقرير ثغرة أمنية حرجة: عميل Discord لنظام macOS
التاريخ: 2026-01-25
الهدف: عميل Discord (macOS Stable 0.0.373)
المؤلف: Antigravity
🚨 الملخص التنفيذي
حددنا ثغرة أمنية حرجة في عميل Discord لنظام macOS (المبني على Electron) تتمثل في الفرض القسري لكشف منفذ التصحيح عن بُعد (9222) عبر الإعدادات المحلية أو وسوم سطر الأوامر. وهذا يسمح لمهاجم محلي بـتجاوز المصادقة بالكامل (2FA، كلمة المرور) وتحقيق سياق تنفيذ تعسفي للكود (RCE) داخل العميل.
فحص حالة CVE
- ناقل متميز: هذه الثغرة متميزة عن الثغرة المُبلغ عنها سابقًا CVE-2024-23739 (RunAsNode RCE).
- حالة اليوم الصفري: لا يوجد حاليًا CVE مُخصص لـ"كشف منفذ التصحيح عن بُعد" على Discord لنظام macOS. يُصنَّف هذا كـثغرة تكوين يوم صفري (أو N-Day غير مصحح).
- نموذج تهديد جديد: بينما يُعد حقن
settings.json تقنية معروفة، فإن إظهار قدرات انتشار الدودة وبرمجيات التجسس اللحظية يرفع هذا إلى مستوى خطر أمني حرج.
💥 سيناريوهات الاستغلال (تحليل الأثر)
1. الاستيلاء على الحساب بنقرة صفرية (ATO)
- الآلية: استدعاء
getToken() عبر وحدة التحكم في التصحيح لاستخراج رمز المستخدم غير المشفر.
- الأثر: يحصل المهاجم على وصول فوري للحساب من أي مكان، متجاوزًا متطلبات كلمة المرور و2FA.
2. برمجيات تجسس لحظية (مُتحقق منها)
- الآلية: استخدام
Network.enable والوصول إلى DOM عبر منفذ التصحيح لالتقاط كل النصوص المعروضة وحركة مرور WebSocket.
- إثبات مفهوم مُتحقق: نجح السكربت
discord_spyware_v2.py في استخراج قائمة الرسائل الخاصة (DM) وقائمة الخوادم للضحية (مثل: "White Hat Community", "LGU+ Security Hackathon") كنص واضح في الوقت الفعلي.
- الدليل: انظر
proof_spyware.png (مخرجات الطرفية التي تعرض نص واجهة مستخدم خاص مستخرج).
- الأثر: فقدان كامل للخصوصية. يمكن للمهاجمين مراقبة المحادثات الخاصة والقنوات المخفية بصمت.
3. انتشار دودة آلي
- الآلية: التحكم في حقل إدخال الدردشة (Textarea) عبر التلاعب بـ DOM للإرسال التلقائي لروابط خبيثة إلى جميع الأصدقاء وأعضاء الخوادم.
- الأثر: انتشار فيروسي هائل محتمل للبرمجيات الخبيثة مستغلًا ثقة الضحية.
4. استمرارية خفية (باب خلفي)
- الآلية: تعديل
settings.json لتمكين منفذ التصحيح بشكل دائم عند كل تشغيل للتطبيق.
- الأثر: يظل الباب الخلفي نشطًا إلى أجل غير مسمى دون أن تُفعّل برامج مكافحة الفيروسات، لأنه يستخدم وسوم Discord الرسمية.
🛠️ إثبات المفهوم (التحقق التقني)
تم التحقق من الثغرة عبر الخطوات التالية:
- الاستغلال: تشغيل Discord باستخدام
--remote-debugging-port=9222.
- الوصول: الاتصال بعنوان WebSocket Debugger المحلي.
- التنفيذ: حقن
alert("GOD MODE ACTIVE") لتجميد واجهة المستخدم (تشويه الشاشة) وتنفيذ discord_spyware_v2.py لتفريغ محتوى الشاشة.
🛡️ المعالجة
- تعطيل وسوم التصحيح: يجب أن تتجاهل الإصدارات الإنتاجية صراحةً مفاتيح سطر الأوامر الخطيرة مثل
--remote-debugging-port. (التعطيل في electron.main).
- فحوصات السلامة: يجب توقيع ملفات الإعدادات الحرجة مثل
settings.json (باستخدام HMAC) أو تشفيرها لمنع العبث الخارجي.