
GhostLock (CVE-2026-43499) نسخة استغلال معدّلة لـ RootMyVivo Neo — iQOO Neo 11 (PD2520, SM8750, 6.6.89). للبحث المصرّح به على الأجهزة الخاصة فقط.
نسخة متفرعة من boxiaolanya2008/CVE-2026-43499-Neo11Plus، أعيدت هندستها لتناسب RootMyVivo. أُزيل كل ما كان يُعطّل الهاتف بعد الروت، وأُبقي على نواة الاستغلال بتوقيتاتها المُختبرة.
| الدليل | الجهاز | النواة | مصدر الإزاحات |
|---|---|---|---|
PD2520-BP2A.250605.031.A3 | iQOO Neo 11 | 6.6.89 | kallsyms+BTF من boot.img الخاص به، مُختبر على العتاد |
PD2520-A-16.0.28.2 | iQOO Neo 11 | 6.6.127 | kallsyms من boot_b |
I2401-16.1.22.2 | iQOO 13 (الهند) | 6.6.89 | AmarnathCJD/IQOO13-Root |
PD2426-BP2A.250605.031.A3 | iQOO Neo10 Pro | 6.6.89 (gf2) | sgswzglwlx/vivo-root-build |
PD2415-BP2A.250605.031.A3 | vivo X200 | 6.6.89 (b57) | xiaohj233/ghostlock-x200-root — الملف التنفيذي نفسه يناسب Neo10 Pro على b57 |
PD2405-AP3A.240905.015.A1 | vivo X200 Pro | 6.6.89 | CyberMeowfia |
جهاز جديد = دليل جديد في src/targets/: target.h (الإزاحات) + root.c (نسختنا النهائية المُختبرة، تُنسخ كما هي).
| المكوّن | السبب |
|---|---|
| تغيير الخلفية + قتل system_server | مصدر عمليات إعادة التشغيل البرمجية «التلقائية» والخلفيات المُستبدلة |
| خادم io على المنفذ 39555 | كان مطلوبًا فقط لتطبيق kernelapp التصحيحي |
| طبقة tmpfs فوق /apex/com.android.virt | كانت تُعلّق zygote عند إعادة التشغيل البرمجي (شاشة سوداء) |
| خدمة الإقلاع 10-neo11-su.sh | التطبيق هو من يقوم بالتثبيت |
| جداول إزاحات أجهزة أخرى | الآن جداول خاصة، دليل لكل هدف |
نواة الاستغلال (futex PI UAF → pselect fake lock → heap spray → pipe physrw → root) والوضعية (panic_on_oops=0، kptr_restrict، تسميم AVC) لم تُمَس.
أُضيف فوق upstream: safety_quiesce (ينتظر loadavg < 4 قبل مسار PI)، cred-guard (التحقق من قانونية العناوين قبل الكتابة)، حلقة إعادة محاولة حتى 3 مرات في fork جديدة. مقابض عبر البيئة: RMV_ATTEMPTS، RMV_RETRY_DELAY.
من أين تأتي الـ panics أصلًا: INIT_STACK_ALL_ZERO يمسح المكدس ويُفسد fake waiter — يُعالج بـ quiesce+retry؛ الهدف التالف بعد reclaim فاشل — cred-guard؛ panic_on_oops=1 في الستوك — الوضعية تُعطّله فورًا بعد الروت، وقبله لا ينقذ سوى الحذر.
Windows، NDK r29:
build_ports.bat # все порты
build_ports.bat I2401-16.1.22.2 # одна цель
build-win.bat # PD2520 6.6.89
يمكن أيضًا على الجهاز عبر Termux — انظر Makefile.
المخرجات: build/<target>/bin/preload.so (~140 كيلوبايت). التشغيل: LD_PRELOAD=$PWD/preload.so /system/bin/true من نطاق shell.
يُحسب كل شيء تلقائيًا عبر P0_DATA_ALIAS_CONST من P0_PHYS_OFFSET وP0_KERNEL_PHYS_LOAD. Qualcomm SM8750: 0x80000000/0xa8000000. MediaTek Dimensity 9400: 0x80000000/0x80000000. القيمة الخاطئة لا تسبب panic — ببساطة لن تنجح العملية.
تم إغلاق CVE في 6.1.175 / 6.6.140 / 6.12.86. لكن التوافق لا يحدده الإصدار وحده: موضع rt_mutex_waiter على مكدس do_futex يعتمد على بناء PGO/LTO. تحليل مفصّل — لدى JoinChang/ghostlock-oneplus: في OPLUS 6.1 يتم inline لـ do_futex والاستغلال غير ممكن، أما في vivo 6.1 فهو حيّ. قبل الشروع في النقل، تحقق من الإطار.
للبحث المصرّح به والأجهزة الخاصة فقط.