Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
F9360-CVE43499 — SM-F9360 (Galaxy Z Fold4、q4q) ロック済みブートローダー KernelSU root — CVE-2026-43499 一時root → LD_PRELOAD DEFEX バイパス → no-LTO clang-12 kernelsu.ko。2026-08-12 デバイス検証済み。 | Kitploit
ツール/GitHubGitHub/e-r-butch/f9360-cve43499
Androidセキュリティ特権昇格エクスプロイトリバースエンジニアリングモバイルセキュリティ学習と教育ファームウェア解析バイナリエクスプロイト
GitHube-r-butch/f9360-cve43499

F9360-CVE43499

SM-F9360 (Galaxy Z Fold4、q4q) ロック済みブートローダー KernelSU root — CVE-2026-43499 一時root → LD_PRELOAD DEFEX バイパス → no-LTO clang-12 kernelsu.ko。2026-08-12 デバイス検証済み。

リポジトリを見る
43529日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

SM-F9360 (Galaxy Z Fold4 / q4q) ブートローダーアンロック不要の KernelSU Root

CVE-2026-43499 一時 root → LD_PRELOAD チャネルで DEFEX をバイパス → LTO なし clang-12 版 kernelsu.ko → su + KernelSU Manager 全機能

ステータス:✅ 2026-08-12 実機検証達成(ファームウェア F9360ZCSAIZF1、カーネル 5.10.236-android12-9-2755199-abF9360ZCSAIZF1)

本プロジェクトは Bootloader ロック された Samsung デバイスで KernelSU root を達成する完全な再現可能手順を記録する:BL アンロック不要、boot.img 書き込み不要、Odin 不要。


TL;DR (English): This repo documents a fully device-verified jailbreak path for a locked-bootloader Samsung Galaxy Z Fold4 (SM-F9360, SM8450, kernel 5.10.236, firmware F9360ZCSAIZF1): a CVE-2026-43499 (rtmutex UAF, fixed in July-2026 firmware) exploit chain grants temporary kernel-domain root; a custom LD_PRELOAD constructor .so bypasses Samsung's DEFEX execve interceptor to init_module() a KernelSU LKM built with the exact device toolchain (AOSP clang 12.0.5 r416183b) and with LTO disabled — the two factors that make the module loadable and its init executable on this CFI/LTO hardened kernel. Result: su works (uid=0, context=u:r:ksu:s0) and KernelSU Manager v3.2.5 recognizes the kernel. Root is in-memory only: every reboot requires re-running the exploit (~3 min, scripted). All pitfalls and dead ends (fake exports, CRC patching, ksud late-load, LTO function-sections layout) are documented below.


目次

  • 1. 成果と本質的な制限
  • 2. 背景:なぜ難しいのか、なぜ可能なのか
  • 3. 攻撃チェーン概要(3 層)
  • 4. 環境要件
  • 5. Step 1 — exploit のビルド(一時 root)
  • 6. Step 2 — kernelsu.ko のビルド(LTO なし clang-12 レシピ)
  • 7. Step 3 — ksu-load.so のビルド(DEFEX バイパスローダー)
  • 8. Step 4 — デバイス側での実行と検証
  • 9. 再起動後の復旧手順
  • 10. 重要な発見と落とし穴一覧
  • 11. ファームウェア/カーネル互換性
  • 12. 謝辞と上流プロジェクト
  • 13. 免責事項

1. 成果と本質的な制限

項目状態
一時 root(カーネルドメイン kernel:s0)✅ 安定達成(連続 9 回成功)
KernelSU モジュールロード(init_module)✅ kernelsu ... Live (O)
KSU init 完全実行✅ 15 個の埋め込み mark すべてグリーン
su コマンド✅ uid=0(root) gid=0(root) context=u:r:ksu:s0
KernelSU Manager v3.2.5✅ カーネルバージョン認識(supercall 検出通過)、SELinux 強制モードで動作
Bootloader アンロック❌ 不要
書き込み/パーティション変更❌ 不要

本質的な制限:BL ロック → root は純粋なメモリ状態。 再起動のたびに exploit の再実行 + モジュールの再ロードが必要(全工程約 3 分、スクリプト化済み)。ksud ユーザー空間 daemon はデプロイ不可(DEFEX が execve を遮断、§10-4 参照)だが、su / supercall / Manager はいずれもカーネル sucompat が直接処理し、ksud に依存しない。

警告:rmmod kernelsu はデバイスを即座に panic 再起動させる(RKP が保護メモリ上の syscall-table 復元パスを保護)——絶対にアンロードしないこと。

2. 背景:なぜ難しいのか、なぜ可能なのか

なぜ難しいのか(Samsung の多層防御)

  • BL ロック:OEM ロックは解除不可、fastboot oem unlock は存在しない。永続化 root(magisk/kernel patch)はすべて boot.img の書き込みが必要だが、locked BL はあらゆる自署名イメージを拒否する。
  • KDP / RKP / DEFEX:カーネルデータ保護(rodata への物理書き込みは KDP monitor のハードリセットを誘発)、RKP hypervisor が syscall table を保護、DEFEX が root ドメインでの新規 ELF 実行を遮断。
  • CFI + LTO カーネル:CONFIG_CFI_CLANG=y + Full LTO。mod->init の唯一の供給源は CFI jump-table スロット __cfi_jt_init_module。間接呼び出しは .cfi_jt テーブルエントリを経由しなければならず、そうでなければ CFI チェックで即 panic。
  • TRIM_UNUSED_KSYMS:KSU が必要とする約 40 個のシンボルが __ksymtab エクスポートテーブルから削除され、通常の insmod では解決不能(Unknown symbol)。
  • MODULE_FORCE_LOAD=n + modversions:vermagic は 1 文字単位で完全一致が必要。IGNORE_MODVERSIONS/IGNORE_VERMAGIC フラグはすべて try_to_force_load() の死路に至る。

なぜ可能なのか

  1. CVE-2026-43499(rtmutex proxy-lock ロールバック UAF、メインライン上流で 2026-07 修正)は 2026-06 以前のファームウェアで安定してカーネルドメインへ権限昇格可能——コミュニティには同一 SoC(SM8450)+ 同一カーネルブランチ(5.10)の実機検証済み移植が既に存在する:sarabpal-dev/IonStack-S22U(b0q / S22U、exp32 ルート)。
  2. DEFEX は execve のみを遮断し、動的ロードは遮断しない:LD_PRELOAD constructor .so が root ドメインで任意コードを実行する唯一の免除チャネル。
  3. KernelSU v3.2+ の jailbreak モード(ksud late-load)はまさに BL ロックデバイス向けに設計されている:boot を書き込まず、実行時に直接 init_module。
  4. ツールチェーン一致の原則:CFI type-id は LLVM 内部のハッシュであり、モジュールはデバイスカーネルと完全に同一のコンパイラでビルドする必要がある(q4q デバイス = AOSP clang 12.0.5 r416183b)。
  5. LTO 分割レイアウトがモジュールクラッシュの究極の根本原因:function-sections が生成する 447 個の ALLOC 小セクションは Samsung カーネルローダーで必ずクラッシュする。LTO を無効化して再ビルド → 従来の 22 セクション構成 → 一発成功(詳細は §10-1)。

3. 攻撃チェーン概要(3 層)

┌─ Layer 1: CVE-2026-43499 一時 root
│   ionstack-q4q exploit(KASLR リーク → mm reclaim → exp32 32-bit スタック stamp
│   → CFI r/w → pipe physrw → UMH root daemon)
│   → /data/local/tmp/cve-2026-43499-root -c '<cmd>' = kernel:s0 ドメインの root コマンドチャネル
│
├─ Layer 2: LD_PRELOAD .so ロードチャネル(DEFEX バイパス)
│   DEFEX は kernel ドメインの execve による新規 ELF を遮断(Killed);LD_PRELOAD の constructor
│   実行は免除 → ksu-load.so が /system/bin/true プロセス内で:
│   ko を読み込み → /proc/kallsyms で 201 個の UND シンボルを手動再配置(SHN_ABS + st_value=絶対アドレス)
│   → vermagic patch(旧版で必要)→ init_module() → 成功
│
└─ Layer 3: KernelSU カーネルモジュール(LTO なし clang-12 版)
    init 完全実行で 15 mark すべてグリーン → sucompat (allow_shell=1) + supercall 利用可能

4. 環境要件

デバイス

項目値
型番SM-F9360(Galaxy Z Fold4、q4q)
SoCSM8450(Snapdragon 8+ Gen 1)
ファームウェアF9360ZCSAIZF1(≤ 2026-06 ビルド、CVE 含有)
カーネル5.10.236-android12-9-2755199-abF9360ZCSAIZF1
デバイスコンパイラAOSP clang 12.0.5 (r416183b, c935d99d7cf)(/proc/version で確認)
正確な vermagic5.10.236-android12-9-2755199-abF9360ZCSAIZF1 SMP preempt mod_unload modversions aarch64

異なるファームウェア = 異なる kallsyms / レイアウト / vermagic であり、target.h の再適応と再ビルドが必要。§11 参照。

ビルドマシン

  • macOS ホスト + colima/docker、Ubuntu 24.04 aarch64 コンテナ(x86_64 clang バイナリは arm64 コンテナで動作しない。macOS ホストでのビルドはツール地獄であり、一律コンテナ化する)
  • コンテナ内:clang-14/15 + focal リポジトリの clang-12 / lld-12(/usr/bin/clang-12、/usr/bin/ld.lld-12)
  • コンテナに gcc なし → make は必ず CC=clang HOSTCC=clang LD=ld.lld-12
  • NDK r29(exploit と ksu-load.so のビルド)
  • Samsung カーネルソース:GitHub ミラー FryUpDoe/android_kernel_samsung_q4q(opensource.samsung.com は Cloudflare のアンチクロールあり)

5. Step 1 — exploit のビルド(一時 root)

exploit は sarabpal-dev/IonStack-S22U(SM8450 5.10 実機 GREEN 基盤、exp32 ルート)をベースとする。q4q 適応 = リポジトリ内 patches/ionstack-q4q-adapt.patch(249 行、target.h パラメータ、kernelsnitch、root.c などをカバー)。

export ANDROID_NDK_HOME=$HOME/Projects/f9360-root/tools/android-ndk-r29
cd work/ionstack-q4q          # IonStack-S22U clone + 本 patch
make PROJECT=q4q-F9360ZCSAIZF1   # 注意変数名は PROJECT= であり TARGET= ではない

q4q の重要パラメータ(調整済み、変更禁止):

パラメータ値理由
P0_KERNEL_PHYS_LOAD0xa8000000b0q/S22U 実機値(SM8450 全系の約束事。0x80080000 は誤アライメントの偽陽性)
APP_KERNEL_PAGE_KSNITCH_IDENTITY_END0xffffff8b00000000(44GB)デバイスメモリは phys 33.8–39.5GB に分散しており、2GB ウィンドウ(e2s からの流用)では永遠に見つからない
KERNELSNITCH_FUTEX_HASH_SIZE2048カーネルの roundup_pow2(256*8)=2048。デフォルトの 4096 では mm leak が全失敗する
KERNELSNITCH_MTE_ENABLED0製品カーネルは kasan=off、MTE 未アクティブ
EXP32_STAMP_OFF0x58逆アセンブルから導出(b0q/q4q の futex_wait_requeue_pi と compat do_ipv6_setsockopt のフレームが一致)
fork 32→16 組 / APPENDED_FUTEXES 4096→1024—システム負荷を低減し LMKD SIGKILL を防止
KSU_LOAD_ONLY=1(root.c)—fake_exports をスキップ(ksu-load.so の手動再配置で代替)

3 つのバイナリを生成(build/q4q-F9360ZCSAIZF1/):preload .so、app .so、root helper PIE。デバイス側の実測は低負荷で実行必須(loadavg < 2.5、起動後 1–2 分待つ)。高負荷時は exploit の fork ストーム(約 544 スレッド + 1024 futex park スレッド)が LMKD により無言で SIGKILL される。

6. Step 2 — kernelsu.ko のビルド(LTO なし clang-12 レシピ)

これが本プロジェクトの最も核心的な再現可能レシピである。まず原理を述べ、次にコマンドを示す。

なぜ必要か:3 つの鉄則

ツールをダウンロード