
CVE-2025-21479 PoC ZFlip5 के लिए, जिसमें Knox रास्ते में है!(˶˃ ᵕ ˂˶)
Image
GPU arbitrary physical R/W (CVE-2025-21479) -> KASLR leak -> SELinux permissive -> RKP-safe init-hook root server & DEFEX bypass custom binary exec (LD_PRELOAD)
इसमें लगभग 6 मिनट लगते हैं.. धैर्य रखें।
मैं इसे बाद में ऑप्टिमाइज़ करूँगा।
Galaxy Z Flip 5 (SM-F731N)
फ़र्मवेयर: F731NKSU5EYD9
Android: 15
सुरक्षा पैच: 2025-04-01
SoC: Snapdragon 8 Gen 2 (SM8550 / kalama)
GPU: Adreno 740 v2
Galaxy Z Flip 5 (SM-F7310) — परीक्षण और चलाने के लिए @eoegamer को धन्यवाद!!
फ़र्मवेयर: F7310ZCS4CXH2
Android: 14
SoC: Snapdragon 8 Gen 2 (SM8550 / kalama)
GPU: Adreno 740
GPU फ़र्मवेयर पैटर्न का उपयोग करें:
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'
हर बूट पर एक बार चलाएँ (रूट सर्वर स्थायी नहीं है)।
सफल होने पर यह लूपबैक (127.0.0.1:4444) से बंधा एक रूट toybox nc लिसनर छोड़ता है। 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 मिनट से अधिक समय तक हैंग रहता है, तो रिबूट करें और डिवाइस को ठंडा होने दें।
GPU स्प्रेइंग संभाव्य है। विफल होने पर पुनः प्रयास करें या रिबूट करें।
सॉफ्टवेयर अपडेट बंद करें
बंद करें:
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
केवल अधिकृत सुरक्षा अनुसंधान और शिक्षा के लिए। सटीक डिवाइस और फर्मवेयर का मेल होना चाहिए।