
CVE-2025-21479 PoC für ZFlip5 mit Knox im Weg!(˶˃ ᵕ ˂˶)
Bild
Beliebiger physischer GPU-Lese-/Schreibzugriff (CVE-2025-21479) -> KASLR-Leak -> SELinux permissiv -> RKP-sicherer Init-Hook-Root-Server & DEFEX-Bypass für die Ausführung benutzerdefinierter Binaries (LD_PRELOAD)
Es dauert etwa 6 Minuten.. Sei geduldig.
Ich werde es später optimieren.
Galaxy Z Flip 5 (SM-F731N)
Firmware: F731NKSU5EYD9
Android: 15
Sicherheitspatch: 2025-04-01
SoC: Snapdragon 8 Gen 2 (SM8550 / kalama)
GPU: Adreno 740 v2
Galaxy Z Flip 5 (SM-F7310) — danke an @eoegamer fürs Testen & Fahren!!
Firmware: F7310ZCS4CXH2
Android: 14
SoC: Snapdragon 8 Gen 2 (SM8550 / kalama)
GPU: Adreno 740
Verwende das GPU-Firmware-Muster:
xxd /vendor/firmware/a740_sqe.fw | grep -i "0300 422a"
Wenn es übereinstimmt, ist die Firmware verwundbar
; vulnerable firmware (v675)
and $04, $12, 0x3
; patched firmware (v676)
and $04, $12, 0x7
exploit.c wurde für F731NKSU5EYD9 erstellt.
Für andere Firmware passe es zuerst mit port_extract.py an (siehe 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'
Führe es einmal pro Boot aus (der Root-Server ist nicht persistent).
Bei Erfolg hinterlässt es einen Root-toybox nc-Listener, der an Loopback (127.0.0.1:4444) gebunden ist. Hole dir eine Root-Shell über adb shell:
adb shell
nc 127.0.0.1 4444 # root shell, uid=0 (u:r:sec_system_init_shell:s0)
Stock-Binaries können weiterhin direkt ausgeführt werden.
Das Problem ist, dass DEFEX benutzerdefinierte native Binaries blockiert, wenn sie direkt ausgeführt werden.
Führe deinen benutzerdefinierten Code stattdessen als LD_PRELOAD-Bibliothek aus, die von der Root-Shell aus in einen Stock-Hostprozess injiziert wird:
LD_PRELOAD=/data/local/tmp/test.so /system/bin/toybox true
Erstelle test.so mit einem __attribute__((constructor))-Einstiegspunkt; sein Konstruktor läuft als Root innerhalb des Stock-Hosts!
Wenn es länger als 15 Minuten hängt, starte das Gerät neu und lass es abkühlen.
GPU-Spraying ist probabilistisch. Wiederhole oder starte neu, wenn es fehlschlägt.
Deaktiviere Software-Updates
Deaktivieren:
pm disable-user --user 0 com.sec.android.soagent
pm disable-user --user 0 com.wssyncmldm
Reaktivieren:
pm enable --user 0 com.sec.android.soagent
pm enable --user 0 com.wssyncmldm
Nur für autorisierte Sicherheitsforschung und Bildungszwecke. Das genaue Gerät und die Firmware müssen übereinstimmen.