Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

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

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

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-43499-armv7 — ARM32 Linux内核提权漏洞利用工具,针对CVE-2026-43499(GhostLock futex UAF),目标为华为Watch 4 Pro,包含多种利用变体及详细绕过分析。 | Kitploit
工具/GitHubGitHub/tc3650/cve-2026-43499-armv7
嵌入式系统安全权限提升漏洞分析漏洞利用硬件安全Payload 开发二进制利用
GitHubtc3650/cve-2026-43499-armv7

CVE-2026-43499-armv7

ARM32 Linux内核提权漏洞利用工具,针对CVE-2026-43499(GhostLock futex UAF),目标为华为Watch 4 Pro,包含多种利用变体及详细绕过分析。

查看仓库
8326天前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-43499 GhostLock — ARM32 Huawei Watch 4 Pro

基于 CVE-2026-43499 (GhostLock) 的 Linux 内核提权漏洞利用尝试 — Huawei Watch 4 Pro (MDS-AL00, armv7l)

Kernel: 5.4.161 Device: Huawei Watch 4 Pro Arch: ARM32 v7 Status: Blocked

项目概述

本项目是针对 Huawei Watch 4 Pro (MDS-AL00, Snapdragon SW5100, HarmonyOS 4.3.0 AOSP 12) 设备的 GhostLock 内核漏洞利用尝试,在 ARM 32-bit (armv7l) 架构上适配。

GhostLock (CVE-2026-43499) 是一个影响 Linux 2.6.39 到 7.x 的内核 futex PI UAF 漏洞。本项目的目标是在华为手表上完成完整的提权链。

原仓库: MobiusM/CVE-2026-43499 (arm64 版 PoC)


设备信息

参数值
设备Huawei Watch 4 Pro (MDS-AL00)
内核5.4.161-perf (ARM32 armv7l)
系统HarmonyOS 4.3.0 (AOSP 12)
CPUSnapdragon SW5100
SELinuxEnforcing (CONFIG_SECURITY_SELINUX_DEVELOP=n)
KASLR关闭
MMUCONFIG_STRICT_KERNEL_RWX=y
栈NX (内核栈不可执行)
mmap(0)华为额外拦截 (-EINVAL,非标准 -EACCES)

当前项目状态


核心阻塞问题

1. 第二次 rb_erase 不触发 (最根本的问题)

在 kernel 5.4.161 ARM32 上,FUTEX_CMP_REQUEUE_PI 触发 EDEADLK 后,PI 链遍历不执行第二次 rb_erase。GhostLock 64 依赖的 UAF → 第二次 rb_erase 写入 UAF 页的链式利用在此内核上完全失效。

所有 8-iov writev 喷溅变种均失败:sc[0] after = e3a0002a (壳码页未被写入)。

2. iovstack 与 rt_mutex_waiter 不对齐

ghostlock64 的 8-iov writev 喷溅依赖内核栈上 iovstack[8] 数组与 rt_mutex_waiter 结构体重叠。在此内核上:

  • 测试了 11 种不同偏移 × 左右孩子 = 22 种布局
  • 无一种能成功改写 clear_refs_operations.write
  • 可能原因:此内核的栈布局(帧大小、局部变量位置)与 ghostlock64 假设的不同

3. sched_setattr PI 链遍历操作 owner 的数据

sched_setattr 能成功触发 PI 链遍历(已验证 success=1600+),但 rb_erase 操作的是 OWNER 线程的 pi_tree_entry(位于 kmalloc 堆上的 task_struct 中),而不是 waiter 线程的栈数据(fd_set writev 数据)。

因此 pselect + sched_setattr 路线也无法用于控制写值。

4. 华为内核额外限制

  • mmap(0, ..., MAP_FIXED, ...) 返回 -EINVAL,不是标准 Linux 的 -EACCES
  • CONFIG_SECURITY_SELINUX_DEVELOP=n → selinux_state.enforcing 字段不存在
  • mremap → ENOSYS

尝试过的路线


关键地址 (System.map from MDS-AL00)

root@kitploit:~
commit_creds:           0xC0140390
prepare_kernel_cred:    0xC014059C
proc_clear_refs_ops:    0xC0CAF280  (.write @ +12 = 0xC0CAF28C)
mmap_min_addr:          0xC12E8568
dac_mmap_min_addr:      0xC123C734
selinux_hooks[mmap]:    0xC0F64E1C

外部参考 (ARM64,不直接适用)

仓库设备内核架构
x-spy/CVE-2026-43499-popsicleXiaomi 17 Pro Max

两个仓库均使用 pselect() + sched_setattr 触 PI 链 + physmap 直写,依赖 ARM64 的 direct map 机制。ARM32 无 direct map,且此内核的 PI 链行为不同。


仓库文件结构

root@kitploit:~
CVE-2026-43499-armv7/
├── config/
│   └── kernel.config       # 设备内核 .config (5.4.161-perf)
├── scripts/
│   ├── ghostlock_all.sh    # 批量测试脚本
│   └── ghostlock_check.sh  # 检测脚本
├── src/
│   ├── ghostlock64.c       # 原始 8-iov 双 erase PoC (基础框架)
│   ├── ghostlock5-33.c     # 早期迭代版本 (ghostlock5 ~ ghostlock33)
│   ├── ghostlock63.c       # ghostlock 6.x 3-iov 变种
│   ├── g62_*.c             # 3-iov 变种 (不同目标地址)
│   ├── g62_8e.c            # 8-iov 精确喷溅 (最终版)
│   ├── g62_scan.c          # 多 iov 偏移扫描
│   ├── g62_self.c          # waiter 自触发 EDEADLK 测试
│   ├── g62_pispray.c       # EDEADLK + slab spray + sched_setattr
│   ├── g62_rand.c          # 写 randomize_va_space 测试
│   ├── gsu_v19.c           # 8-iov + sched_setattr 触发
│   ├── gl_pselect*.c       # pselect + sched_setattr 测试
│   ├── gl_scan.c           # fd_set 偏移扫描
│   ├── sc64.c              # shellcode payload
│   ├── trigger*.c          # 原始触发 PoC (验证漏洞存在)
│   ├── ghostlock_root.c    # 早期 root 尝试
│   └── test_*.c            # 编译/运行测试
├── README.md
├── ghostlock64             # 8-iov 双 erase PoC 二进制
├── ghostlock63             # ghostlock 6.x 3-iov 二进制
├── g62_*                   # 3-iov 变种二进制
├── gl_*                    # pselect 测试二进制
├── gsu                     # sc-page hijack 变种
├── sc64                    # shellcode
├── trigger*                # 原始触发 PoC 二进制
└── test_*                  # 测试二进制

结论

此内核版本 (5.4.161 ARM32) 的 PI 链实现不支持 GhostLock 的双 rb_erase 任意写技术。 所有已知的 CVE-2026-43499 利用路线均在此设备上受阻。需要发现新的写 0 原语或其他漏洞才能继续。

作者的话

华为你阴死我了 烧了我deepseek V4 Pro 30RMB token

下载工具
阶段状态说明
GhostLock FUTEX PI 触发✅ 验证成功FUTEX_CMP_REQUEUE_PI 返回 EDEADLK (-35)
PI 链遍历触发✅ 验证成功sched_setattr 触发 PI chain walk
第二次 rb_erase❌ 核心阻塞此内核 PI 链实现不走第二次 rb_erase
iovstack 对齐❌ 阻塞8-iov writev 喷溅不与 rt_mutex_waiter 重叠
mmap(0) 绕过❌ 阻塞华为内核额外检查 (-EINVAL)
fops hijack❌ 阻塞无受控任意写原语
cred 覆写❌ 阻塞受限于上述阻塞点
提权完成❌未实现
路线结果原因
ghostlock64 8-iov writev → FLPI❌第二次 rb_erase 不触发
ghostlock64 + sched_setattr❌同上,PI 链不走到 UAF 页
g62 3-iov❌能写但值是栈地址,栈 NX 无法执行
pselect + sched_setattr❌rb_erase 操作 owner 的堆数据
waiter 自 FLPI 第二次❌EDEADLK 快速路径,不读栈
iov 偏移扫描 (22 布局)❌全部不重叠
mm(0) / mremap 绕过❌-EINVAL / ENOSYS
selinux hook 清零❌enforcing 字段不存在
6.12.23
ARM64
pubglite55/oppo-ghostlockOPPO Find N25.10.236ARM64