Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
cve-2026-43499 — دراسة جدوى لـ 43499(ghostlock) لـ PD2229B | Kitploit
أدوات/GitHubGitHub/catxiaoshi/cve-2026-43499
أمان أندرويدتصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالالهندسة العكسيةأمن الجوالاستغلال الملفات الثنائية
GitHubcatxiaoshi/cve-2026-43499

cve-2026-43499

دراسة جدوى لـ 43499(ghostlock) لـ PD2229B

عرض المستودع
24منذ شهر واحدلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

ملخص فشل استغلال GhostLock على PD2229 (SM8475, 5.10.233 GKI)

一、حقائق الثغرة والجهاز

1.1 المعلومات الأساسية لـ CVE-2026-43499 (GhostLock)

العنصرالقيمة
نوع الثغرةUse-After-Free على المكدس في مسار rt_mutex / futex PI
إصدار الإدخالLinux 2.6.39-rc1 (مايو 2011، commit 8161239a8bcc)
إصدار الإصلاحالرئيسي 7.1 (commit 3bfdc63936dd)، الفروع المستقرة: 6.1.175 / 6.6.140 / 6.12.86 / 6.18.27 / 7.0.4
الشرط المسبقCONFIG_FUTEX_PI=y (مفعل افتراضيًا في النوى الرئيسية)
CVSS7.8 عالية
استقرار الاستغلالسلسلة NebuSec الأصلية 97%، الحصول على صلاحيات root خلال ~5 ثوانٍ
جائزة kernelCTF$92,337 دولار أمريكي

نطاق النوى المتأثرة:

  • 2.6.39 ≤ Linux < 6.1.175 ✅ متأثر
  • 6.2 ≤ Linux < 6.6.140 ✅ متأثر
  • 6.7 ≤ Linux < 6.12.86 ✅ متأثر
  • 6.13 ≤ Linux < 6.18.27 ✅ متأثر
  • 6.19 ≤ Linux < 7.0.4 ✅ متأثر
  • Android GKI 5.10 غير مشمول في أي فرع إصلاح ← إصدار 5.10.233 على PD2229 متأثر نظريًا

1.2 القياسات الفعلية لجهاز PD2229

العنصرالقيمة
SoCQualcomm SM8475 (Snapdragon 8 Gen 1 Plus)
إصدار النواة5.10.233-gki-g6e61de9f5b58 #1 SMP PREEMPT (24 نوفمبر 2025)
إصدار Android15 (OriginOS 5)
وقت الترجمة2025/11/25
تصحيح Android2025/11/01
CONFIG_FUTEX_PIy ✅
CONFIG_UNMAP_KERNEL_AT_EL0y (KPTI مفعل)
kptr_restrictمفروض
CONFIG_IO_URINGy ✅ (مؤكد برموز vmlinux، و seccomp لا يعترض io_uring_setup)

二、سلسلة الاستغلال المثالية مقابل التقدم الفعلي على PD2229

2.1 السلسلة الأصلية لـ NebuSec (نجحت على x86_64 / Pixel 10)

1. تجاوز KASLR        ← توقيت prefetch / PR_SET_MM_MAP auxv
2. تشغيل UAF          ← طريق مسدود يعتمد على PI بثلاثة خيوط ← FUTEX_CMP_REQUEUE_PI يُرجع -EDEADLK
3. استعادة المكدس     ← PR_SET_MM_MAP ينسخ auxv إلى إطار مكدس waiter
4. كتابة مقيدة بـ rb_erase ← الكتابة فوق inet6_protos[IPPROTO_UDP]
5. CEA + ROP          ← اختطاف تدفق التحكم
6. قلب core_pattern   ← قشرة root (نسبة نجاح 97%)

2.2 التقدم الفعلي لكل مرحلة على PD2229

المرحلةالحالةالوصف
1. تجاوز KASLR✅ تم التنفيذقناة جانبية perf_event_open + أخذ عينات callchain (بنفس طريقة تكييف OPPO Find X6 Pro 5.15.149)
2. تشغيل UAF✅ تم التنفيذنجح الطريق المسدود PI بثلاثة خيوط، FUTEX_CMP_REQUEUE_PI يُرجع -EDEADLK
3. بدائية استعادة المكدس❌ فشل معماريإطارات مكدس جميع استدعاءات النظام المعروفة لا تتداخل مع waiter (انظر القسم الثالث)
4. الكتابة المقيدة بـ rb_erase❌ محظورالشرط المسبق غير مستوفى
5. الكتابة فوق inet6_protos❌ لم يبدأيعتمد على المرحلة 4
6. ROP / اختطاف تدفق التحكم❌ لم يبدأيعتمد على المرحلة 5
7. قشرة root❌ لم يبدأيعتمد على المرحلة 6

三、نتائج الاستنفاد الشامل لبدائية استعادة المكدس (قياسات PD2229 الفعلية)

3.1 الحسابات الرئيسية لتخطيط إطار المكدس

العمق الإجمالي لمسار futex:
  __arm64_sys_futex    0x90
  + do_futex           0xc0
  + futex_wait_requeue_pi  0x1b0
  = 0x300
موقع waiter = SYS_SP - 0x300 + 0x20 = SYS_SP - 0x2e0

مسار pselect:
  إطار مكدس core_sys_select 0x1c0، stack_fds عند sp+0x50
  نطاق التغطية: يبدأ من SYS_SP - 0x1c0 + 0x50 = SYS_SP - 0x170
  الفرق مع waiter (SYS_SP - 0x2e0) هو 0x170 (368 بايت) ← لا تداخل

3.2 الطرق الـ 17 المجربة للكتابة على المكدس

#الطريقةاستدعاء النظامنتيجة PD2229سبب الفشل الأساسي
1stamp_prctlPR_SET_MM_MAP❌ EPERMاعتراض صارم من Android
2stamp_pselectpselect6 (NFDS=320)❌ لا تداخلwaiter أسفل fd_set بـ 120B
3stamp_pselectpselect6 (NFDS>336)❌ تخصيص كومةمسار kvmalloc
4stamp_socketMCAST_JOIN_SOURCE_GROUP❌ تغطية غير كافيةيكتب حقل lock فقط
5stamp_sendmsgsendmsg❌ على بعد 80B من waiterعمق إطار المكدس 0x90 غير كافٍ
6stamp_sendmmsgsendmmsg❌ على بعد 112B من waiterإطار المكدس غير كافٍ
7stamp_recvmmsgrecvmmsg❌ يصفّر task/lockإطار 0x1d0 يدمر المؤشرات الحرجة
8stamp_process_vmprocess_vm_writev❌ لا تداخلمكدس الخيط الفرعي مخصص بشكل مستقل
9stamp_keyctlKEYCTL_INSTANTIATE_IOV❌ EOPNOTSUPPاستدعاء النظام غير مدعوم + إطار مكدس 0x40
10stamp_tcpTCP_ZEROCOPY_RECEIVE❌ إطار مكدس غير كافٍالعمق المقدر غير كافٍ
11stamp_futexFUTEX_CMP_REQUEUE_PI تكراري❌ غير ممكن منطقيًايدمر نافذة UAF
12binder ioctlBINDER_WRITE_READ❌ EACCESلا توجد صلاحية /dev/binder للقشرة
13pollpoll❌ تخصيص كومةpollfd على الكومة
14epoll_waitepoll_wait❌ إطار ضحل جدًاإطار مكدس 0xE0
15sched_setattrsched_setattr❌ عمق غير كافٍإطار مكدس 0xb0
16timerfd_settimetimerfd_settime❌ لا نسخ على المكدسلا يوجد مخزن مؤقت كبير على المكدس
17io_uring_registerIORING_REGISTER_*❌ فشل مزدوج①إطار المكدس 0xF0 فقط، هدف copy_from_user ثابت عند sp+0x8 (فرق 424 بايت عن sp+0x1D0 للـ waiter)؛ ②على الرغم من أن io_uring_setup لا يعترضه seccomp (يُرجع EFAULT بدلاً من ENOSYS)، فإن تخطيط المكدس غير متطابق

فشل 17/17 بالكامل.

3.3 السبب الجذري للفشل

تخطيط المكدس الناتج عن مترجم SM8475 5.10 GKI على PD2229 (PGO + LTO + BOLT) يؤدي إلى عدم تداخل معماري بين stack_fds في core_sys_select وrt_mutex_waiter في futex_wait_requeue_pi. هذه حقيقة موضوعية يحددها المترجم، وليست مشكلة في تقنية الاستغلال.

يذكر مستودع JoinChang بوضوح: "The pselect stack overlay only works when the freed rt_mutex_waiter lands within the user-controllable region of the stack_fds buffer" — PD2229 لا يستوفي هذا الشرط.


四、تحليل مقارن للمستودعات المرجعية العامة

NebuSec/CyberMeowfia — إطار الاستغلال الأصلي

  • المستودع: https://github.com/NebuSec/CyberMeowfia
  • الهدف: x86_64 Linux / Pixel 10 (6.x GKI)
  • استعادة المكدس: PR_SET_MM_MAP ينسخ auxv إلى مكدس النواة
  • نسبة النجاح: 97%، قشرة [root] خلال ~5 ثوانٍ
  • قابلية التطبيق على PD2229: ❌ PR_SET_MM_MAP معترض بـ EPERM على Android

JoinChang/ghostlock-oneplus — كسر قفل BL لـ OnePlus

  • المستودع: https://github.com/JoinChang/ghostlock-oneplus
  • الأجهزة المُتحقق منها:
    • OnePlus Ace 6T (PLR110, SM8845) — 6.12.38 GKI ✅
    • OnePlus 15 (PLK110, SM8845) — 6.12.23 GKI ✅
  • النقاط التقنية:
    • استخراج تلقائي للإزاحات: kallsyms (28) + BTF (57) + مشتقة (9) + ثوابت (12) = 103/103
    • تغطية مكدس pselect، فرق SP = -64
    • PSELECT_SHIFT = -2
    • سلسلة الاستغلال: futex UAF ← تزييف waiter ← pselect يتحكم بالمكدس ← كتابة مقيدة بـ rb_erase ← selinux_state.enforcing=0 ← الكتابة فوق cred إلى init_cred
  • إعلان صريح بعدم الجدوى: "Not Feasible (stack layout incompatible)" — ينطبق فقط على النوى التي يتداخل فيها pselect stack_fds مع waiter
  • قابلية التطبيق على PD2229: ❌ عدم تطابق جيل النواة (6.12 مقابل 5.10)، وعدم تداخل تخطيط المكدس

p2p3p/GhostLock-for-OnePlus — استغلال كامل لـ OnePlus 6.12

  • المستودع: https://github.com/p2p3p/GhostLock-for-OnePlus
  • تم التحقق: OnePlus Ace 6T (SM8845, 6.12.38) ✅
  • قابلية التطبيق على PD2229: ❌ مثل JoinChang، عدم تطابق جيل النواة

YuKongA/ghostlock-oplus — OPPO Find N5/X8

  • المستودع: https://github.com/YuKongA/ghostlock-oplus
  • النواة: 6.6.118 GKI
  • قابلية التطبيق على PD2229: ❌ عدم تطابق جيل النواة

تكييف OPPO Find X6 Pro (PGEM10) — 5.15.149

  • الجهاز: SM8550, 5.15.149-android13, Android 15
  • التقدم: ✅ تجاوز KASLR (perf_event_open + أخذ عينات callchain)؛ المراحل اللاحقة لم تُنشر كاستغلال كامل
  • الأهمية: يثبت أن تجاوز KASLR ممكن على 5.15 GKI، لكن مرحلة استعادة المكدس لم تُتحقق علنًا
تنزيل الأداة