Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
CVE-2026-43499-armv7 | Kitploit
Tools/GitHubGitHub/tc3650/cve-2026-43499-armv7
Embedded Systems SecurityPrivilege EscalationVulnerability AnalysisExploitationHardware SecurityPayload DevelopmentBinary Exploitation
GitHubtc3650/cve-2026-43499-armv7

CVE-2026-43499-armv7

View Repository
8326 days agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

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

Linux kernel privilege escalation exploit attempt based on CVE-2026-43499 (GhostLock) — Huawei Watch 4 Pro (MDS-AL00, armv7l)

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

Project Overview

This project is a GhostLock kernel vulnerability exploit attempt targeting the Huawei Watch 4 Pro (MDS-AL00, Snapdragon SW5100, HarmonyOS 4.3.0 AOSP 12) device, adapted for the ARM 32-bit (armv7l) architecture.

GhostLock (CVE-2026-43499) is a kernel futex PI UAF vulnerability affecting Linux 2.6.39 through 7.x. The goal of this project is to complete a full privilege escalation chain on the Huawei watch.

Original repository: MobiusM/CVE-2026-43499 (arm64 version PoC)


Device Information


Current Project Status


Core Blocking Issues

1. Second rb_erase Not Triggered (Root Cause)

On kernel 5.4.161 ARM32, after FUTEX_CMP_REQUEUE_PI triggers EDEADLK, the PI chain walk does not perform a second rb_erase. The chain exploit that GhostLock 64 relies on (UAF → second rb_erase writes to UAF page) is completely ineffective on this kernel.

All 8-iov writev spray variants fail: sc[0] after = e3a0002a (shellcode page not written).

2. iovstack and rt_mutex_waiter Misalignment

ghostlock64's 8-iov writev spray relies on the iovstack[8] array on the kernel stack overlapping with the rt_mutex_waiter structure. On this kernel:

  • Tested 11 different offsets × left/right child = 22 layouts
  • None successfully overwrote clear_refs_operations.write
  • Possible reason: This kernel's stack layout (frame size, local variable positions) differs from ghostlock64's assumptions

3. sched_setattr PI Chain Walk Operates on Owner's Data

sched_setattr can successfully trigger a PI chain walk (verified success=1600+), but rb_erase operates on the OWNER thread's pi_tree_entry (in the task_struct on the kmalloc heap), not the waiter thread's stack data (fd_set writev data).

Therefore, the pselect + sched_setattr route cannot be used to control the write value.

4. Additional Huawei Kernel Restrictions

  • mmap(0, ..., MAP_FIXED, ...) returns -EINVAL, not the standard Linux -EACCES
  • CONFIG_SECURITY_SELINUX_DEVELOP=n → selinux_state.enforcing field does not exist
  • mremap → ENOSYS

Attempted Approaches


Key Addresses (from System.map of 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

External References (ARM64, not directly applicable)

RepositoryDeviceKernelArchitecture
x-spy/CVE-2026-43499-popsicle

Both repositories use pselect() + sched_setattr to trigger the PI chain + physmap direct write, relying on ARM64's direct map mechanism. ARM32 has no direct map, and this kernel's PI chain behavior is different.


Repository File Structure

root@kitploit:~
CVE-2026-43499-armv7/
├── config/
│   └── kernel.config       # Device kernel .config (5.4.161-perf)
├── scripts/
│   ├── ghostlock_all.sh    # Batch test script
│   └── ghostlock_check.sh  # Detection script
├── src/
│   ├── ghostlock64.c       # Original 8-iov dual erase PoC (base framework)
│   ├── ghostlock5-33.c     # Early iteration versions (ghostlock5 ~ ghostlock33)
│   ├── ghostlock63.c       # ghostlock 6.x 3-iov variant
│   ├── g62_*.c             # 3-iov variants (different target addresses)
│   ├── g62_8e.c            # 8-iov precise spray (final version)
│   ├── g62_scan.c          # Multi-iov offset scan
│   ├── g62_self.c          # Waiter self-trigger EDEADLK test
│   ├── g62_pispray.c       # EDEADLK + slab spray + sched_setattr
│   ├── g62_rand.c          # Test writing randomize_va_space
│   ├── gsu_v19.c           # 8-iov + sched_setattr trigger
│   ├── gl_pselect*.c       # pselect + sched_setattr tests
│   ├── gl_scan.c           # fd_set offset scan
│   ├── sc64.c              # Shellcode payload
│   ├── trigger*.c          # Original trigger PoC (verify vulnerability)
│   ├── ghostlock_root.c    # Early root attempt
│   └── test_*.c            # Compile/run tests
├── README.md
├── ghostlock64             # 8-iov dual erase PoC binary
├── ghostlock63             # ghostlock 6.x 3-iov binary
├── g62_*                   # 3-iov variant binaries
├── gl_*                    # pselect test binaries
├── gsu                     # sc-page hijack variant
├── sc64                    # Shellcode
├── trigger*                # Original trigger PoC binaries
└── test_*                  # Test binaries

Conclusion

The PI chain implementation of this kernel version (5.4.161 ARM32) does not support GhostLock's dual rb_erase arbitrary write technique. All known CVE-2026-43499 exploitation routes are blocked on this device. A new write-0 primitive or other vulnerabilities need to be discovered to proceed.

Author's Note

Huawei, you've screwed me over. You burned 30 RMB of DeepSeek V4 Pro tokens on me.

Download Tool
ParameterValue
DeviceHuawei Watch 4 Pro (MDS-AL00)
Kernel5.4.161-perf (ARM32 armv7l)
SystemHarmonyOS 4.3.0 (AOSP 12)
CPUSnapdragon SW5100
SELinuxEnforcing (CONFIG_SECURITY_SELINUX_DEVELOP=n)
KASLRDisabled
MMUCONFIG_STRICT_KERNEL_RWX=y
StackNX (kernel stack non-executable)
mmap(0)Huawei extra blocking (-EINVAL, non-standard -EACCES)
PhaseStatusDescription
GhostLock FUTEX PI Trigger✅ VerifiedFUTEX_CMP_REQUEUE_PI returns EDEADLK (-35)
PI Chain Walk Trigger✅ Verifiedsched_setattr triggers PI chain walk
Second rb_erase❌ Core BlockingThis kernel's PI chain implementation does not perform a second rb_erase
iovstack Alignment❌ Blocked8-iov writev spray does not overlap with rt_mutex_waiter
mmap(0) Bypass❌ BlockedHuawei kernel additional check (-EINVAL)
fops hijack❌ BlockedNo controlled arbitrary write primitive
cred Overwrite❌ BlockedLimited by above blocking points
Privilege Escalation Complete❌Not achieved
ApproachResultReason
ghostlock64 8-iov writev → FLPI❌Second rb_erase not triggered
ghostlock64 + sched_setattr❌Same, PI chain does not reach UAF page
g62 3-iov❌Can write but value is stack address, stack NX prevents execution
pselect + sched_setattr❌rb_erase operates on owner's heap data
waiter self-FLPI second❌EDEADLK fast path, does not read stack
iov offset scan (22 layouts)❌All non-overlapping
mmap(0) / mremap bypass❌-EINVAL / ENOSYS
selinux hook zeroing❌enforcing field does not exist
Xiaomi 17 Pro Max
6.12.23
ARM64
pubglite55/oppo-ghostlockOPPO Find N25.10.236ARM64