
استغلال ثغرة أمنية في نواة Linux 5.10 خاصة بجهاز Sharp AQUOS R7 للحصول على صلاحيات الجذر (CVE-2026-43499)، مما يمنح UID 0 مؤقتًا مع SELinux permissive وخادم su.
نسخة مخصّصة للجهاز من GhostLock (CVE-2026-43499) على نواة Linux 5.10 لجهاز Sharp
AQUOS R7. الهدف المعتمد هو AQUOS R7 (Mineva، SGA202SH/A202SH)
الذي يعمل بنظام Android 14 إصدار 03.00.11، ونواة
5.10.237-android12-9-00013-gd09ef2e980e0-ab13968955 (SM8450).
الهدف المعتمد السابق، الإصدار 03.00.06 / النواة
5.10.218-android12-9-00041-g124993efd06e-ab12385094، محفوظ في
وسم git v1.0-030006.
هذه نسخة منقولة من aquos-r6-ghostlock
(AQUOS R6، النواة 5.4.61-qgki). كل ثابت — معالجة KASLR،
نافذة تسريب selinux_state، إزاحات task/cred، منطقة الخدش zero-BSS —
أُعيد اشتقاقه والتحقق منه مقابل نواة R7؛ ولم تُستخدم هندسة مكدّس R6
إلا كمرجع أولي.
يمنحك التشغيل الناجح UID 0 مع SELinux في الوضع المتساهل ويشغّل خادم
أوامر su صغيرًا. وهو لا يمنح مجموعة قدرات Linux كاملة
كما أن التغيير غير دائم: إعادة التشغيل تعيد حالة النواة الأصلية.
يلزم استخدام clang من Android NDK الذي يستهدف aarch64-linux-android29 (تم الاختبار
مع NDK r30):
make build/ghostlock510 # ~3.4 MB static binary
make strip # optional; ~0.6 MB, same behaviour
إمكانية إعادة الإنتاج (معايرة 03.00.11): هذا المصدر، المبني باستخدام سلسلة الأدوات
أعلاه، مطابق بايت ببايت (MD5 25fc1d5d0e92d36c56f00f983a49667d) للـ
الملف التنفيذي المستخدم في اختبار 03.00.11 على الجهاز. أصل الإصدار هو
الصيغة المُجرَّدة بـ llvm-strip من ذلك الملف التنفيذي بالضبط (598,672 بايت، SHA-256
5c413a80e9fcc41032412f4e0e5183bc723dde9a2e0ace5a6d9c79681b04b9cd).
لنسخة 03.00.06 راجع الوسم v1.0-030006 (غير المُجرَّد MD5
fa896ebd361519766b46cc2bab70dea2).
ادفع الملف التنفيذي (أصل الإصدار أو نسختك المبنية) وشغّله مرة واحدة:
adb push ghostlock510 /data/local/tmp/ghostlock510
adb shell chmod 755 /data/local/tmp/ghostlock510
adb shell "setsid nohup /data/local/tmp/ghostlock510 --use-setattr --stamp3 --perm-pc --cred-swap --install-su --stamp-off 0xf0 --log /data/local/tmp/ghostlock510.log </dev/null >/dev/null 2>&1 &"
استخدم عميل su المثبّت لأوامر الجذر (المسار الكامل مطلوب):
adb shell "/data/local/tmp/su -c 'id; getenforce'"
# uid=0(root) gid=2000(shell) groups=2000(shell) context=u:r:kernel:s0
# Permissive
يتواصل su مع برنامج الخفي (daemon) الخاص بالاستغلال عبر TCP على واجهة loopback (المنفذ 9999)؛ ولا تُرفَق أي صدفة جذر (root shell) دائمة. تعتمد الأوامر على السطر، ولا يعمل تداخل su داخل su. تحتاج البرامج التفاعلية (vi، top، …) إلى PTY؛ ويُترك وضع su التفاعلي فوق برنامج الخفي كعمل مستقبلي.
مقيس على هذه البنية الدقيقة (انظر VERIFICATION.md):
لذا: أعد التشغيل، وشغّل ghostlock510 مرة واحدة، ولا تشغّله مجددًا ما دامت تلك الجلسة حية. إعادة التشغيل هي مسار التنظيف.
المدخلات الخارجية الكبيرة غير مضمنة عمدًا في هذا المستودع:
vmlinux/System.map لبناء نواة Android CI 13968955؛ وتم التحقق من التطابق على مستوى البايت مع النواة العاملة فعليًا على الجهاز عبر صورة boot_b الخاصة به (جميع مقاطع PT_LOAD البالغ عددها 23، بمقارنة لكل مقطع).
إصلاح CVE (backport 5.10.y بتاريخ 2026-07-21) لاحق لهذه الشجرة
(HEAD 2025-08-20)، وkernel/futex/core.c مطابق بايتًا لبناء
03.00.06 — أي أن الثغرة لا تزال موجودة.v1.0-030006): أُخذت الإزاحات من بناء نواة Android CI 12385094، وتم التحقق منها بايتًا عبر صورة boot_a الخاصة بالجهاز.--stamp3 / --use-setattr (لا يوجد ترخيص مذكور في ذلك المستودع).