Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-43499-armv7 | Kitploit
도구/GitHubGitHub/tc3650/cve-2026-43499-armv7
Embedded Systems SecurityPrivilege EscalationVulnerability AnalysisExploitationHardware SecurityPayload DevelopmentBinary Exploitation
GitHubtc3650/cve-2026-43499-armv7

CVE-2026-43499-armv7

저장소 보기
8326일 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

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

CVE-2026-43499 (GhostLock) 기반 Linux 커널 권한 상승 exploit 시도 — 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 커널 취약점 exploit 시도이며, ARM 32-bit (armv7l) 아키텍처에 맞게 포팅되었습니다.

GhostLock (CVE-2026-43499)은 Linux 2.6.39부터 7.x까지 영향을 주는 커널 futex PI UAF 취약점입니다. 이 프로젝트의 목표는 Huawei 워치에서 완전한 권한 상승 체인을 완성하는 것입니다.

원본 저장소: 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)Huawei 추가 차단 (-EINVAL, 비표준 -EACCES)

현재 프로젝트 상태


핵심 차단 문제

1. 두 번째 rb_erase 미발생 (가장 근본적인 문제)

kernel 5.4.161 ARM32에서 FUTEX_CMP_REQUEUE_PI가 EDEADLK를 트리거한 후, PI 체인 순회는 두 번째 rb_erase를 수행하지 않습니다. GhostLock 64가 의존하는 UAF → 두 번째 rb_erase로 UAF 페이지에 쓰는 체인 exploit은 이 커널에서 완전히 무효화됩니다.

모든 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. Huawei 커널의 추가 제한

  • mmap(0, ..., MAP_FIXED, ...)는 -EINVAL을 반환하며, 표준 Linux의 -EACCES가 아님
  • CONFIG_SECURITY_SELINUX_DEVELOP=n → selinux_state.enforcing 필드가 존재하지 않음
  • mremap → ENOSYS

시도한 경로


주요 주소 (MDS-AL00의 System.map)

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 exploit 경로가 이 디바이스에서 차단되었습니다. 계속하려면 새로운 쓰기 프리미티브나 다른 취약점을 발견해야 합니다.

작성자의 말

화웨이, 너 때문에 엿먹었네. deepseek V4 Pro 30RMB 토큰을 다 태워버렸어.

도구 다운로드
단계상태설명
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) 우회❌ 차단됨Huawei 커널의 추가 검사 (-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