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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ghostlock-myron-tw — GhostLock (CVE-2026-43499) REDMI K90 Pro Max 台湾ファームウェア (myron, WPMTWXM) 向けカーネルエクスプロイト移植版 — オフセット、ビルドガイド、プリビルドバイナリ | Kitploit
ツール/GitHubGitHub/jason5545/ghostlock-myron-tw
Androidセキュリティ特権昇格エクスプロイトリバースエンジニアリングモバイルセキュリティバイナリエクスプロイト
GitHubjason5545/ghostlock-myron-tw

ghostlock-myron-tw

GhostLock (CVE-2026-43499) REDMI K90 Pro Max 台湾ファームウェア (myron, WPMTWXM) 向けカーネルエクスプロイト移植版 — オフセット、ビルドガイド、プリビルドバイナリ

リポジトリを見る
52ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

POCO F8 Ultra / REDMI K90 Pro Max 向け GhostLock — グローバル版 & 台湾版 (myron, WPMTWXM)

POCO F8 Ultra / REDMI K90 Pro Max(コードネーム myron、Snapdragon 8 Elite Gen 5 / SM8850)のグローバル/台湾ファームウェア向けに GhostLock (CVE-2026-43499) カーネルエクスプロイトを移植したものです。

Target: HyperOS OS3.0.6.0.WPMTWXM — kernel 6.12.23-android16-5-g5a0e85dd9db0-ab14499855-4k

English summary below / 下方に英語の要約があります。


なぜこのポートが必要なのか

同じ端末、同じコードネームでも、国際/台湾版(WPMTWXM、すなわち POCO F8 Ultra)と中国版(WPMCNXM)のカーネルは同じバイナリではありません:

ROMkernel releaseビルド日時
台湾版 3.0.1.0.WPMTWXM...-ga5f232d1ead0-ab14083253-4k2025-09-11
台湾版 3.0.6.0.WPMTWXM...-g5a0e85dd9db0-ab14499855-4k2025-11-26
中国版 3.0.306/308.WPMCNXM...-g16e473de48a3-abogki462654244-4k2025-11-19
  • 中国版は Google 公式の GKI ブランチ(abogki*)を追跡しており、台湾版は Xiaomi 独自の統合ブランチです
  • 両者の git commit は異なり、config は 7 個のオプションが異なり、しかもすべて +pgo +bolt +lto でコンパイルされています—— コードに少しでも差異があれば、シンボル配置が完全に乱れます
  • 実測:init_task/init_cred は 0x10000 の差、selinux_state は 0x120c8 の差(固定オフセットではない)

GhostLock のような data-only exploit はそのビルドの正確なアドレスを必要とするため、中国版向けに計算された payload は国際版ではすべて無効です。この repo は国際版に欠けているそのオフセット表を補うものです。

内容

  • offsets/myron_tw/offsets.h — 台湾版 3.0.6.0 の完全なターゲット (JoinChang/ghostlock-oneplus で使用)
  • scripts/device_step1.sh — root 取得後の ABL バックアップ + unlock EFI 書き込みスクリプト
  • Releases にビルド済みの ghostlock バイナリ (arm64) があります

検証済みの分析結果

  1. kallsyms 静的抽出の正確性:_text を基準にバイナリを読み戻して相互検証—— init_task.comm="swapper"、init_cred.usage=4、init_uts_ns.release が uname と文字単位で一致。実機 root なしで信頼できるオフセットを取得可能。
  2. Struct レイアウトは中国版と完全に同一(BTF 検証済み):task_struct 5184 bytes、 cred@0x900、pi_blocked_on@0xA18 など、上流の STRUCT_OFFSETS_6_12 と一致。
  3. スタック配置の実現可能性:futex_wait_requeue_pi(frame 0x1c0、waiter@sp+0x80)と core_sys_select(frame 0x1b0、stack_fds@sp+0x18)が、実現可能と検証済みの Xiaomi 17 (pudding) と完全に同一 → PSELECT_SHIFT=0。
  4. selinux_state.enforcing は +0、policycap は +2 にあり、1 バイト書き込みで policycap を壊すことはない。
  5. Rust ashmem → Path B(直接 PI write)のみ使用可能、Path A (UMH) は使用不可。

ビルド

git clone https://github.com/JoinChang/ghostlock-oneplus.git
cd ghostlock-oneplus
cp /path/to/this-repo/offsets/myron_tw/offsets.h src/devices/myron_tw/offsets.h
# 在 src/devices/offsets.h 的 #include 清單加一行:
#   #include "myron_tw/offsets.h"
make NDK_CC=<你的 NDK>/toolchains/llvm/prebuilt/*/bin/aarch64-linux-android35-clang

使用

adb shell uname -r
# 必須是 6.12.23-android16-5-g5a0e85dd9db0-ab14499855-4k,否則程式會拒絕執行

adb push ghostlock /data/local/tmp/e
adb shell chmod 755 /data/local/tmp/e
adb shell /data/local/tmp/e
  • 成功 → root シェル + SELinux permissive(ソフト root、再起動で失効)
  • 失敗して再起動 = タイミングを逃したので再実行。連続 panic の場合は PSELECT_SHIFT=-1 などの微調整を試す
  • デバイスを OTA させないこと——更新後はカーネルが入れ替わり、オフセットが無効になるうえ、新版では脆弱性が修正済みの可能性がある

後続(BL アンロック)

国際版の機種は root 取得後、ABL 置換法でアンロックできる(公式枠は不要):abl_a/b をバックアップ → unlock EFI を書き込み → fastboot で純正 ABL + spoof を書き込み → 復元。純正 ABL は自分が所持する 台湾版 3.0.1.0 ROM の abl.img から取得する(本 repo には Xiaomi 専有ファームウェアファイルを置いていない)。 scripts/device_step1.sh はこのフローの端末側部分である。このフローではユーザーデータを消去しない。

他のリージョン版への移植(MIXM / EUXM / INXM…)

この repo は WPMTWXM のみを対象としています。Xiaomi は地域ごとのブランチでそれぞれカーネルをコンパイルするため、オフセットは共有できません—— しかし方法は共有できます。tools/ にあるのは、私たちが実際に台湾版 target を生成するために使っている3つのツールです:

# 1. 從你的 OTA 包解出 boot.img(payload.bin 用 payload-dumper),然後:
python3 tools/extract_offsets.py boot.img          # 產生 OFFSETS_ENTRY + 交叉驗證
python3 tools/check_btf.py boot.img                # 驗證 struct 布局(決定 STRUCT_OFFSETS 能否沿用)
python3 tools/check_feasibility.py boot.img        # 驗證 pselect 棧配置(決定 SHIFT)
  • extract_offsets.py: kallsyms を抽出し、すべてのオフセットを計算し、さらに init_task.comm / init_cred.usage / init_uts_ns.release を読み戻してクロス検証する——合格しなければ使わない
  • check_btf.py: カーネルに埋め込まれた BTF から task_struct/cred/selinux_state のフィールドオフセットを読み出し、STRUCT_OFFSETS_6_12 と項目ごとに照合する
  • check_feasibility.py: futex_wait_requeue_pi と core_sys_select のフレーム配置を逆アセンブルし、既知の実行可能なカーネルと照合する(pip install capstone が必要)

三つとも合格したので、あなたのバージョンはおそらく通用するでしょう。新しい地域バージョンの target を PR で追加してくれると歓迎します。

謝辞

  • Nebula Security — GhostLock の原研究と PoC
  • JoinChang/ghostlock-oneplus — 本ポートのベース
  • 酷安コミュニティの各種移植の経験

English Summary

POCO F8 Ultra(REDMI K90 Pro Max)のグローバルファームウェアは、CN ファームウェアとは異なるカーネルビルドを出荷しています(ブランチ、config、PGO/BOLT レイアウトが異なる)。そのため、コミュニティで公開されている GhostLock のオフセットはすべて CN の ogki カーネル上で計算されたものであり、グローバル版のデバイスでは一致しません。本リポジトリは、OS3.0.6.0.WPMTWXM(6.12.23-android16-5-g5a0e85dd9db0-ab14499855-4k)向けに欠けていたターゲットオフセットを提供します。これらは公式 OTA パッケージから静的に抽出し、相互検証(kallsyms + BTF + イメージ内読み取り)したもので、さらに Releases にビルド済みバイナリも用意しています。構造体レイアウトは CN ビルドと同一で、異なるのはシンボルアドレスのみです。スタックフレームのレイアウトは、動作確認済みの Xiaomi 17(pudding)と一致します。

ご自身のデバイスでのみ使用してください。 この脆弱性は公開されています(kernelCTF により開示が義務付けられたもの)。本ポートは、グローバル版の所有者が自身の端末を root 化できるようにするために存在します。

免責事項 / Disclaimer

僅供自有裝置的授權安全研究。ご自身のデバイスでのみ、許可されたセキュリティ研究に使用してください。 いかなる結果も保証されず、使用は自己責任となります。

ツールをダウンロード