
إثبات مفهوم لاستغلال CVE-2026-29781، يستغل بيانات اعتماد植入 Sliver الملتقطة لإحداث انهيار مؤشر فارغ (nil-pointer panic) وتعطيل خادم C2 عبر حزم mTLS مشوّهة.
ثغرة معمارية في خادم Sliver C2 تسمح بتسليح الاتصال العكسي (Reverse-C2 Weaponization). من خلال استخراج بيانات الاعتماد من برنامج implant تم التقاطه، يمكن للمدافع استغلال علاقة C2 لتفعيل مفتاح إيقاف تشغيل عن بُعد للبنية التحتية. يستهدف هذا الاستغلال نقصًا منهجيًا في التحقق من المؤشرات الفارغة (nil-pointer validation) في معالجات Protobuf، مما يؤدي إلى انهيار عام في وقت التشغيل (runtime panic).
تأثير CVE-2026-29781 هو شلل تشغيلي كامل للبنية التحتية لـ C2.
الصياد يصبح المطارد: المدافع الذي يلتقط ملف implant ثنائي يمكنه عكس الهجوم وإيقاف خادم Sliver تمامًا.
انهيار عبر النقل (Cross-Transport Collapse): نظرًا لأن وسائل النقل mTLS وWireGuard وDNS تفتقر إلى آلية استرداد (recover())، فإن حزمة واحدة مشوهة تتسبب في إنهاء كامل لبيئة تشغيل Go (SIGSEGV).
فقدان الجلسات الجانبي: الانهيار الناتج عن منارة DNS (DNS beacon) سيقتل فورًا جميع جلسات HTTP وmTLS وWireGuard النشطة عبر الأسطول بأكمله.
إخلاء المشغلين: يتم فصل جميع المشغلين النشطين فورًا عن واجهة gRPC، مع فقدان جميع الحالات غير المحفوظة والمراقبة في الوقت الفعلي.
تتطلب الاستعادة تدخلًا يدويًا لإعادة تشغيل الخادم وإعادة إنشاء سلاسل التنقل المعقدة (pivot chains)، مما يخلق هدفًا عاليًا لوقت الاسترداد (RTO).
المتطلبات الأساسية: استخراج بيانات الاعتماد: احصل على شهادة mTLS والمفتاح الخاص ومفتاح Age السري من برنامج implant الخاص بـ Sliver الذي تم التقاطه.
تعديل PoC: افتح mtls_poc.go واستبدل القيم النائبة في كتلة var (c2Endpoint وclientCertPEM وclientKeyPEM وpeerPrivateKey) ببيانات الاعتماد المستخرجة.
قم بتشغيل الاستغلال ضد خادم Sliver الاختباري الخاص بك:
go run mtls_poc.go
النتيجة المتوقعة ودليل الانهيار: عند استلام الحزمة المشوهة، يقوم خادم Sliver بتفعيل إلغاء مرجعية مؤشر فارغ (Nil-Pointer Dereference) فوري. نظرًا لأن طبقة النقل (mTLS/Yamux) تفشل في التعافي من هذا الانهيار، فإن عملية الخادم بأكملها تنتهي بـ SIGSEGV.
يمكنك التحقق من ذلك عن طريق فحص حالة الخادم:
systemctl status sliver
الاستشارة الرسمية GHSA-hx52-cv84-jr5v

فلسطين حرة 🇵🇸