
Redmi K50G/POCO F4 GT向けのCVE-2026-43499(futex UAF)を利用したローカル権限昇格エクスプロイトで、一時的なrootを取得し、ブートローダーのロック解除なしでKernelSUをロードします。
BL ロック解除不要のワンクリック一時 Root。GhostLock(CVE-2026-43499, futex PI Use-After-Free) ローカル権限昇格チェーンで root アンカーを取得し、その後 KernelSU 3.2.5 late-load 方式で kernelsu モジュールを実行中のカーネルにマウントし、KSU モジュールで SELinux Permissive を維持しつつネットワークを修復します。
対象デバイス: Redmi K50G / POCO F4 GT —— コードネーム
ingres, SoC SM8450 (Snapdragon 8 Gen 1) システム: Android 14, UKQ1.240624.001, カーネル 5.10.209-android12 (KMIandroid12-5.10) ステータス: ✅ 実機検証済み 一時 Root 成功
| ファイル | 役割 |
|---|---|
exploit | GhostLock 権限昇格バイナリ(ARM64 PIE、strip なし)。内部に KernelSnitch mm 衝突位置特定、futex PI UAF スタック上書き、カーネルアンカー root、su daemon、内蔵 libksud.so と KSU late-load ロジックを含む |
Root-K50G.bat | Windows ワンクリックスクリプト(自身のディレクトリからファイルを特定、ダブルクリックで使用):デバイス検出 → ファイル転送 → 権限昇格実行 → そのまま root shell へ |
ksu_loader.sh | root 化されたカーネルアンカーによって実行:libksud.so late-load --kmi 5.10.209-android12 で KernelSU をロードし、post-fs-data / services / boot-completed フェーズを順にトリガー |
ksu-module/chuxin_permissive_netfix/ | KernelSU モジュール(module.prop + service.sh):2 秒ごとに enforce=0 を監視・維持し、改ざん防止属性をリセット、netd を再起動、wifi/データを有効化してネットワーク断を修復 |
adb/ | 内蔵 adb ツール(ポータブル・インストール不要) |
adb驱动无需重启.exe | Xiaomi ドライバワンクリックインストールツール |
全体のチェーンは 4 ステップ:
FUTEX_WAIT_REQUEUE_PI + FUTEX_CMP_REQUEUE_PI)でカーネルスタック上にダングリングな rt_mutex_waiter を生成;rt_mutex_adjust_prio_chain の走査をトリガーし、制御可能なカーネル読み取り/書き込みプリミティブを取得。cred(uid/gid=0、完全な caps、kernel SID)を注入し、root アンカープロセス(実行ログの anchor: ROOT uid=0)を取得;SHELL_ROOT=1)と su daemon(SU_DAEMON=1、/data/local/tmp/su)。kernelsu.ko を libksud.so late-load --kmi 5.10.209-android12 で実行中のカーネルにロード(焼き込み/ブートイメージパッチ不要、デバイスの現在の KMI と正確に一致);Root-K50G.bat をダブルクリック;id を入力して uid=0(root) を確認;/data/local/tmp/su -c id でも確認可能。adb push exploit /data/local/tmp/exploit
adb push ksu_loader.sh /data/local/tmp/ksu_loader.sh
adb shell chmod 755 /data/local/tmp/exploit /data/local/tmp/ksu_loader.sh
adb shell "env NO_COLOR=1 SE_LINUX=1 KSU_LOADER=1 SHELL_ROOT=1 SU_DAEMON=1 SUSPECT_CPU=99999 KS_MAX_TRIES=8 /data/local/tmp/exploit"
実行終了後に確認:
adb shell /data/local/tmp/su -c id
# uid=0(root) gid=0(root) ...
chuxin_permissive_netfix モジュールの service.sh が自動的に属性をリセットし netd を再起動(LSPosed 等のモジュールを焼いた後も有効);本リポジトリの内容はセキュリティ研究および個人デバイステスト専用です。権限昇格/システム状態の変更には一定のリスクが伴い、操作を誤るとデバイスが文鎮化したりデータが失われる可能性があります。原理を完全に理解し、自己責任で使用してください。不正な用途には使用しないでください。
参考:CVE-2026-43499(GhostLock)—— Linux カーネル futex 優先度継承 UAF、カーネル 2.6.39 〜 7.1 に影響、ローカル権限昇格が可能。
ksu_loader.sh が post-fs-data、services、boot-completed を順に実行し、KernelSU 管理フレームワーク(ksud)を正常に起動。chuxin_permissive_netfix を /data/adb/modules/ にロード:その service は ksu ドメイン(security:setenforce 権限あり)で動作し、2 秒ごとに enforce を 0 に書き戻し、ksud が boot-completed 後に SELinux を Enforcing へ戻す動作を相殺(AVC による su socket 拒否 + ネットワーク断を防止);ro.boot.flash.locked / verifiedbootstate / 保証ビット属性をリセットし netd を再起動、Root 後のネットワークを修復。| 変数 | デフォルト | 意味 |
|---|
NO_COLOR | 0 | カラー出力を無効化 |
SE_LINUX | 0 | SELinux Permissive flip を有効化(カーネルアンカーが enforce を直接書き込み) |
KSU_LOADER | 0 | root アンカー内で ksu_loader.sh を実行(KernelSU late-load) |
SHELL_ROOT | 0 | アンカー内で root shell を fork |
SU_DAEMON | 0 | アンカー内で /data/local/tmp/su daemon を起動 |
SUSPECT_CPU | - | 対象 CPU を指定(アンカーをバインド)、99999 は自動 |
KS_MAX_TRIES | - | KernelSnitch mm 衝突/アンカー試行回数の上限 |