Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2025-8045 — استغلال ثغرة CVE-2025-8045، وهي ثغرة استخدام بعد التحرير (UAF) في برنامج تشغيل نواة معالج رسوميات Arm Mali GPU. يحوّل مخزن GPU المؤقت المُحرَّر إلى جدول صفحات متسخ، مما يتيح القراءة/الكتابة العشوائية على مستوى النواة وفتح صدفة بصلاحيات الجذر على أندرويد. | Kitploit
أدوات/GitHubGitHub/kuzeyardabulut/cve-2025-8045
أمان أندرويدتصعيد الامتيازاتالاستغلالاستغلال الملفات الثنائية
GitHubkuzeyardabulut/cve-2025-8045

CVE-2025-8045

استغلال ثغرة CVE-2025-8045، وهي ثغرة استخدام بعد التحرير (UAF) في برنامج تشغيل نواة معالج رسوميات Arm Mali GPU. يحوّل مخزن GPU المؤقت المُحرَّر إلى جدول صفحات متسخ، مما يتيح القراءة/الكتابة العشوائية على مستوى النواة وفتح صدفة بصلاحيات الجذر على أندرويد.

عرض المستودع
51منذ 13 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2025-8045 — ثغرة الاستخدام بعد التحرير في قائمة انتظار KCPU لوحدة معالجة الرسوم Arm Mali GPU

استغلال لرفع الامتيازات محليًا يستهدف CVE-2025-8045، وهي ثغرة استخدام بعد التحرير (use-after-free) في برنامج تشغيل نواة وحدة معالجة الرسوم Arm Mali GPU (kbase). تتنافس عملية محلية غير ممتازة مع مسار تفريغ قائمة انتظار KCPU الخاصة بـ CSF لتحرير واستعادة cpu_queue.buffer، وتحوّل التخصيص المعلّق إلى جدول صفحات تملكه العملية ("جدول صفحات قذر" أو dirty pagetable)، وتستخدم هذه الأولية للحصول على قراءة/كتابة فيزيائية عشوائية على مستوى النواة — وتنتهي بجذر (root) مع ضبط SELinux على الوضع المتساهل (permissive).

تم الاستغلال على Pixel 7 Pro (الإصدار BP3A.250905.014). الإزاحات المثبّتة في exploit.c معايرة لهذا الهدف؛ الأجهزة/الإصدارات الأخرى تحتاج إلى إعادة اشتقاق الإزاحات (انظر الضبط وقابلية النقل).


الثغرة

CVE-2025-8045 هي ثغرة استخدام بعد التحرير في برامج تشغيل نواة Arm Valhall وبنية الجيل الخامس لوحدات معالجة الرسوم (r53p0–). يمكن لعملية محلية غير ممتازة قيادة عمليات معالجة GPU بطريقة تجعل برنامج التشغيل يعمل على ذاكرة تم تحريرها بالفعل، مما يفتح الباب أمام كشف ذاكرة النواة، وإفسادها، وتنفيذ كود.

r54p1

يصل هذا الاستغلال إلى الثغرة عبر واجهة قائمة انتظار KCPU الخاصة بـ CSF والمكشوفة من خلال /dev/mali0:

  • يتم تجهيز قائمة انتظار KCPU بانتظار CQS_WAIT غير قابل للتحقيق يليه FENCE_SIGNAL. يؤدي الانتظار إلى توقف القائمة مؤقتًا بحيث يعمل مؤقّت السياج (fence timer) لاحقًا، عند حد دلو عجلة مؤقّت (timer-wheel bucket) يمكن التنبؤ به.
  • يدفع KBASE_IOCTL_CS_CPU_QUEUE_DUMP تنفيذ kbase_csf_cpu_queue_dump_buffer(). مزامنة انتقال حالة القائمة (ISSUED ← COMPLETE/PENDING) مع مسار التفريغ تحرّر cpu_queue.buffer بينما لا يزال مُشارًا إليه — هذه هي UAF.

الاستغلال هو استغلال توقيت: يقوم أولاً بمعايرة المهلة الزمنية (deadline)، ثم يتنبأ بها في كل جولة ويُطلق "موجة" من استدعاءات التفريغ غير المؤذية لتوسيع نافذة السباق حول لحظة التحرير.

استراتيجية الاستغلال

المرحلةما يحدث
معايرةالجولة الأولى تقيس حافة الانتقال ISSUED←COMPLETE لمعرفة طور دلو عجلة المؤقّت.
تنبؤ + مسحالجولات اللاحقة تتنبأ بالموعد النهائي وتمسح إزاحة القراءة بمقدار ±مللي ثانية لتصيب لحظة التحرير بدقة.
موجة64 سلسلة تنفيذ تكدّس استدعاءات CS_CPU_QUEUE_DUMP على csf.lock لتطويق الموعد النهائي وتوسيع النافذة.
استعادةتفريغ مسبق لقوائم التحرير غير القابلة للنقل (UNMOVABLE)، ثم رشّ صفحات GPU مختومة بحيث تعود الكتلة المحررة تحت سيطرتنا.
جدول صفحات قذرتحرير مرة أخرى ورشّ جداول صفحات CPU فوريًا في نفس الصفحة؛ تخصيص GPU الآن يتطابق مع جدول مستوى أخير حي.
قراءة/كتابة عشوائيةيتم توجيه إدخال نافذة (PTE) لا يُعاد استخدامه أبدًا إلى صفحات فيزيائية للنواة؛ ويتم إجبار مسح TLB عبر رحلة ذهاب وإياب PROT_NONE على تعيين مؤقت كبير (scratch mapping).
جذرمسح selinux_state.enforcing، وتصحيح sel_read_enforce باستخدام commit_creds(init_cred)، ثم تحرير عملية فرعية متوقفة تنفّذ قشرة بصلاحيات جذر.

نظرًا لأن صفحة واحدة تصبح في الوقت نفسه تخصيص Mali وجدول صفحات CPU حي، تبقى العملية متوقفة إلى الأبد بدلًا من الخروج — تحريرها سيكون تحريرًا مزدوجًا وسيُحدث ذعرًا في النواة.

البناء

root@kitploit:~
# Android / arm64 (NDK)
aarch64-linux-android31-clang -O2 -o exploit exploit.c

التشغيل

root@kitploit:~
./exploit

عند النجاح تحصل على قشرة بصلاحيات جذر (uid=0) مع SELinux متساهل. تدفق نموذجي:

root@kitploit:~
[*] pid=...  cpus=8  wave=64  harvest cpu=7  rounds=256
[*] round  1  calibrate  deadline t0+... ms  phase ... ms
[*] round  N  read +... us
[+] UAF page: spray region R page P @ ..., 1 live descriptor
[+] entry 0 = ... -- a CPU page table, writable through the GPU
[+] alias: dirty pagetable
[+] selinux_state.enforcing = 0 @ phys ...
[+] sel_read_enforce patched @ phys ...
[+] root shell: uid=0 euid=0

إذا أكمل جميع الجولات دون نجاح، فإن cpu_queue.c:71 في dmesg يشير إلى أن السباق يصل إلى هدفه لكن الاستعادة فشلت — اضبط معاملات الاستعادة/الموجة.

الضبط وقابلية النقل

القيم في exploit.c معايرة لجهاز Pixel 7 Pro، الإصدار BP3A.250905.014. الإزاحات والثوابت خاصة بالجهاز/النواة ويجب إعادة اشتقاقها لأي هدف آخر:

  • KERNEL_PA_BASE، SEL_READ_ENFORCE، INIT_CRED، COMMIT_CREDS، SELINUX_STATE — إزاحات رموز/فيزيائية للنواة.
  • ARM64_PTE_FLAGS — قالب واصف المستوى الأخير لإعداد MMU الخاص بالهدف.
  • WAVE_*، SWEEP_*، BUCKET_NS، WAIT_NS، أحجام الرش — مقابض توقيت السباق وتهيئة كومة الذاكرة.

الإصدارات المتأثرة

  • برنامج تشغيل نواة Arm Valhall GPU Kernel Driver: r53p0 – r54p1
  • برنامج تشغيل نواة Arm 5th Gen GPU Architecture Kernel Driver: r53p0 – r54p1

قم بالتحديث إلى إصدار برنامج التشغيل المُصلَح من Arm للمعالجة.

إخلاء مسؤولية

يُنشر هذا الكود strictly لأغراض البحث الأمني الدفاعي، وهندسة الكشف، والتعليم. لا تشغّله ضد أنظمة لا تملكها أو لا تملك إذنًا كتابيًا صريحًا لاختبارها. لا يتحمل المؤلف أي مسؤولية عن إساءة الاستخدام أو عن أي ضرر ناتج. استخدامه ضد أنظمة دون إذن غير قانوني.

تنزيل الأداة