Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
ghostlock-cve-2026-43499-4.19-k40 — Android 内核 LPE PoC,针对 CVE-2026-43499,即 4.19 高通内核中的 rtmutex 释放后使用漏洞,已适配 Redmi K40,并带有 LD_PRELOAD root 载荷。 | Kitploit
工具/GitHubGitHub/ccp-p/ghostlock-cve-2026-43499-4.19-k40
Android安全权限提升内存取证漏洞分析漏洞利用后渗透利用移动安全Payload 开发二进制利用

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
GitHubccp-p/ghostlock-cve-2026-43499-4.19-k40

ghostlock-cve-2026-43499-4.19-k40

Android 内核 LPE PoC,针对 CVE-2026-43499,即 4.19 高通内核中的 rtmutex 释放后使用漏洞,已适配 Redmi K40,并带有 LD_PRELOAD root 载荷。

查看仓库
4111517天前尚未审核

GhostLock — CVE-2026-43499 PoC(Qualcomm 4.19 内核)

本地权限提升,利用 CVE-2026-43499 —— 一个 rtmutex remove_waiter() 缺陷,该缺陷会在等待者的内核栈上留下一个悬空的 struct rt_mutex_waiter(kernel/locking/rtmutex.c,CWE-416 释放后使用)。 改编自 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(),而该函数 操作的是 current 而非 waiter->task —— 在没有 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 受影响。

仓库内容

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 内核的第二轮适配(相对于 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,没有按 memcg 划分的缓存);传统 pipe 16 槽缓冲区数组落在 kmalloc-1024 中
  • 4.19 上不存在 selinux_blob_sizes → 直接使用 cred->security (SELINUX_CRED_BLOB_OFF=0);struct seccomp 没有 filter_count
  • ASHMEM_MISC_FOPS = miscdevice.fops 槽位(ashmem_misc + 0x10)
  • 结构体偏移(task_struct / cred / pipe_inode_info / file_operations / mm_struct / struct page / configfs_buffer)已根据此内核的 kallsyms + 内嵌 ikheaders 重新推导,并对照内核自身的 RELA 重定位表进行了验证

构建

使用 Android NDK 的 Linux / WSL:

export NDK_ROOT=/path/to/android-ndk-r27c
./build.sh                      # 或:make PROJECT=oplus-4.19.157-perf

输出:prebuilt/preload.so(LD_PRELOAD 载荷)以及一个内嵌的 su_daemon PIE。

ADB 用法(一次性 root)

需要一个 ADB shell(普通的、非特权 adb shell 就足够 —— 该 漏洞利用完全以非特权方式运行并自行提权)。

# 1. 推送载荷
adb push prebuilt/preload.so /data/local/tmp/

# 2. 通过 LD_PRELOAD 对任意命令(此处为 id)运行漏洞利用
adb shell LD_PRELOAD=/data/local/tmp/preload.so id

# 成功时预期输出:uid=0(root) gid=0(root) groups=...
# 失败时进程以 1 退出,下面的日志会告诉你它在哪里停止。

可选的一行命令变体:

# 同时捕获退出状态
adb shell "LD_PRELOAD=/data/local/tmp/preload.so id; echo rc=\$?"

# 交互式 root shell(该漏洞利用还会安装一个 su 守护进程)
adb shell "LD_PRELOAD=/data/local/tmp/preload.so /system/bin/sh -c 'su -c id'"

调试日志(在 panic/重启后仍保留)

每一行 pr_* 都会通过立即的 write()+fsync() 镜像到磁盘,以便 日志在 kernel panic/重启后仍能保留:

/sdcard/Download/log_<timestamp>.txt

如果 /sdcard 不可用,回退路径为:/sdcard/Downloads、 /data/local/tmp/log_<timestamp>.txt。

# 运行之后(即使重启后):
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 ... —— 物理读写已安装
  • uid_before=... uid_after=0 ... selinux=1->0 —— 凭据已修补
  • 在 4.19 上,slide gadget 在首次尝试前会打印 UNVERIFIED —— 该 阶段就是需要利用此日志按设备进行调优的阶段。

说明与限制

  • 第一阶段(KASLR slide 泄漏)按设备进行调优;无法为 4.19 静态推导出的 值会在 target.h 中标记,并在运行时记录为 UNVERIFIED。使用 fsync 日志在设备上迭代。
  • 此构建上的 CONFIG_STATIC_USERMODEHELPER=y 禁用了 modprobe 路径技巧; 主要路径是直接修补 cred。
  • 在部署前,通过内核自身的 kallsyms (/proc/kallsyms)和 /proc/slabinfo 验证你确切构建上的偏移正确性。

许可证

Apache-2.0(上游:NebuSec/CyberMeowfia)。仅用于安全研究和 经授权的设备 root。请在你拥有的硬件上使用。

下载工具