
DirtyClone - إثبات مفهوم لتصعيد الامتيازات المحلي (LPE) يستهدف ثغرة متعلقة بالنواة/XFRM موصوفة في المصدر بأنها CVE-2026-43503
DirtyClone هي أداة تشخيصية لإثبات المفهوم (PoC) لتصعيد الامتيازات المحلية مكتوبة بلغة C. تستهدف مسار استغلال مرتبطًا بـ kernel/XFRM موصوفًا في المصدر على أنه CVE-2026-43503 وهي مخصصة فقط لأبحاث الأمن المصرح بها في بيئات خاضعة للتحكم.
يحتوي هذا المستودع على:
ينفذ التنفيذ الحالي الخطوات عالية المستوى التالية:
هذه الأداة مخصصة لاختبارات الأمن المصرح بها فقط. قد يكون تشغيلها على أنظمة بدون إذن صريح غير قانوني وقد يؤثر على سلامة النظام.
قم بتثبيت حزمة تطوير OpenSSL المطلوبة أولاً:
# Debian/Ubuntu
sudo apt-get install libssl-dev
# Fedora
sudo dnf install openssl-devel
# Arch Linux
sudo pacman -S openssl
ثم قم بترجمة الملف الثنائي:
gcc -o dirtyclone dirtyclone.c -lcrypto -Wall -O2
شغّل البرنامج باستخدام:
./dirtyclone
الوسائط الاختيارية:
./dirtyclone -q # quiet mode
./dirtyclone -v # verbose mode (default)
./dirtyclone -h # show help
أثناء التشغيل يقوم البرنامج بما يلي:
يعتمد الاستغلال على فكرة بسيطة: يقوم البرنامج بإعداد حمولة ESP/XFRM مصممة بعناية تجعل النواة تفك تشفير البيانات إلى منطقة ذاكرة مدعومة بذاكرة التخزين المؤقت للصفحات، ثم يتحقق مما إذا كانت البايتات في الملف الثنائي SUID المستهدف قد تغيرت.
من الناحية العملية، يقوم البرنامج بالإجراءات التالية:
/usr/bin/su، وتعيينه في الذاكرة؛هذا تدفق لإثبات المفهوم، وليس إطارًا عامًا لتصعيد الامتيازات. وهو يهدف إلى إظهار آلية الاستغلال والمساعدة في التحقق مما إذا كانت النواة المستهدفة لا تزال تعرض السلوك المعرّض للخطر.
المثال المبسط التالي يعرض نفس المفهوم على مستوى عالٍ:
#include <stdio.h>
#include <string.h>
static int dummy_exploit(unsigned char *target_bytes) {
unsigned char expected[] = {0x31, 0x0f, 0x05};
memcpy(target_bytes, expected, sizeof(expected));
return 0;
}
int main(void) {
unsigned char target[16] = {0};
dummy_exploit(target);
printf("Patched bytes: %02x %02x %02x\n", target[0], target[1], target[2]);
return 0;
}
المشروع الحقيقي يستخدم نفس المبدأ، لكنه يغلف الحمولة كحزمة بنمط ESP/XFRM ويقود مسار النواة عبر حزمة الشبكة بدلاً من نسخة ذاكرة بسيطة.
مرحلة الإعداد
تحضير XFRM
بناء الحمولة
مرحلة التسليم
التحقق والتنفيذ
يتضمن التنفيذ:
atexit ومعالجات الإشارات (signal handlers)،fork/execvp،يتوقع المصدر بيئة Linux تتضمن:
ip و iptables و modprobe على النظام،/usr/bin/su،يهدف البرنامج إلى إظهار ملخص PoC تشخيصي ثم إما:
إذا لم يُفعَّل الاستغلال، يطبع البرنامج رسالة واضحة تشير إلى أن النواة مصححة على الأرجح.
استخدم هذا المشروع فقط عندما:
لا تشغّل هذا الكود أبدًا على أنظمة الإنتاج أو الأنظمة التي ليس لديك إذن بتقييمها.
يحدد رأس المصدر المؤلف باسم MrAashish0x1 (gl1tch0x1). لا يتضمن المستودع ملف ترخيص منفصل، لذا ينبغي التعامل مع الكود كمواد بحثية وليس كبرنامج إنتاجي.