Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
asus-i005-cve-2026-43499 — CVE-2026-43499 (GhostLock) ASUS ROG Phone 5S 대응 버전 — UAF 트리거 + pselect 스택 재점유, KASLR 유출 차단 | Kitploit
도구/GitHubGitHub/huaguiqi/asus-i005-cve-2026-43499
Android SecurityPrivilege EscalationMemory ForensicsVulnerability AnalysisExploitationReverse EngineeringMobile SecurityPapers & ResearchPayload DevelopmentBinary Exploitation
GitHub
11431개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
huaguiqi/asus-i005-cve-2026-43499

asus-i005-cve-2026-43499

CVE-2026-43499 (GhostLock) ASUS ROG Phone 5S 대응 버전 — UAF 트리거 + pselect 스택 재점유, KASLR 유출 차단

저장소 보기

asus-i005-cve-2026-43499

ASUS ROG Phone 5S(ASUS_I005)에서의 CVE-2026-43499 (GhostLock) 적응 연구.

결론: 취약점 트리거와 스택 회수는 완전히 검증되었으나, 권한 상승 체인은 스택 덮어쓰기 깊이가 부족하여 완료되지 못했다.

구체적으로:

  • Stage 0~1.6 전부 검증 성공(트리거, 스택 회수, 스택 주소 유출)
  • Stage 2의 쓰기 원시 연산은 waiter+0x28..0x40(pi_tree_entry.rb_left 및 lock)을 덮어써야 함
  • pselect nfds=320은 waiter+0x27까지만 덮어씀
  • 더 깊이 덮어쓰는 스택 회수 캐리어를 찾지 못함(40개 이상의 후보 syscall을 모두 소진)
  • i005의 모든 KASLR leak 소스도 전부 차단됨

상세 분석은 docs/05-limitations.md를 참조.

TL;DR

단계내용상태
0UAF 트리거 (3 스레드 + CMP_REQUEUE_PI)✅
1pselect timeout=0 스택 회수 (shift=10)✅
1.6W 커널 스택 SP 누출 (perf PERF_SAMPLE_REGS_INTR)✅
2임의 주소 쓰기 (KASLR slide 필요)❌
—KASLR 누출 (8가지 소스 모두 실패)❌

대상 기기

항목값
기기ASUS ROG Phone 5S (ASUS_I005)
SoCSnapdragon 888 (SM8350)
Android13
커널5.4.210-qgki-perf-gc89cd02a7dfe arm64
SELinuxEnforcing (u:r🐚s0)
CapEff0

취약점 개요

CVE-2026-43499 (GhostLock)은 Linux 커널 rtmutex 하위 시스템의 스택 UAF입니다. remove_waiter()는 프록시 잠금 롤백 경로에서 waiter->task 대신 current를 사용하여, task_struct->pi_blocked_on에 댕글링 포인터가 남게 됩니다.

주요 성과

1. pselect timeout=0 스택 회수(독자 개발)

  • pselect timeout>0 → do_select → schedule → dangling pi_blocked_on 순회됨 → 교착 상태
  • timeout=0일 때 end_time=NULL, do_select는 즉시 반환되지만 _copy_from_user는 여전히 실행됨
  • nfds=320 → 단일 40바이트 → core_sys_select가 스택 상의 stack_fds 사용
  • ex fd_set 시작점이 정확히 waiter 시작점과 정렬됨 → PSELECT_WAITER_WORD_SHIFT = 10

2. W 커널 스택 주소 유출

  • perf_event_open(pid=W_tid) + PERF_SAMPLE_REGS_INTR(SP)
  • IRQ 스택 필터링 → 41개의 실제 W 스택 샘플 모두 동일
  • 16KB 정렬 → sp_top → fake_waiter = sp_top - 0x1b0

3. 차단 지점 — i005 강화 설정이 모든 KASLR leak에 저항

docs/05-limitations.md 참조:

  • kptr_restrict=2
  • arm64에서 perf 하드웨어가 EL0→EL1 벡터 진입 PC 기록 (overflow delayed)
  • perf_event_open(system-wide/kworker) EACCES
  • bpf() EACCES
  • /proc/{kallsyms,timer_list,self/stack} EACCES
  • /sys/module/*/sections EACCES

디렉터리 구조

  • docs/ 분석 문서 및 타임라인
    • 06-research-snapshot.md 전체 연구 스냅샷
    • 07-iteration-log.md 실패 버전 기록
    • disasm/ 주요 디스어셈블리 조각
    • recon/ 정찰 출력
  • include/ 심볼 테이블 + 구조체 오프셋
  • src/ PoC 소스 코드(상세는 src/README.md 참조)
  • scripts/ 분석 스크립트
  • logs/ 실행 로그(git에 포함하지 않음)

재현

# 1. 심볼 및 오프셋 추출(ASUS 공식 커널 소스로 컴파일한 vmlinux 필요)
./scripts/extract_symbols.sh
./scripts/gen_symbols_h.sh
./scripts/extract_offsets.sh

# 2. Stage 0 컴파일
aarch64-linux-gnu-gcc -static -O2 -pthread \
  -o ~/tmp/work/bin/poc_stage0_trigger src/poc_stage0_trigger.c

# 3. 기기에서 실행 (대상 기기로 adb shell 필요)
adb shell /data/local/tmp/poc_stage0_trigger
툴체인: aarch64-linux-gnu-gcc -static -O2 -pthread

참고

· gitchw/ghostlock-cve-2026-43499        Huawei Watch 4 Pro, 5.4.210 (ARM32)
· ccp-p/ghostlock-cve-2026-43499-4.19-k40  Redmi K40, 4.19.157 (aarch64)
· JoinChang/ghostlock-oneplus              OnePlus 다중 기기, 스택 레이아웃 실행 가능성
· knowlily/cve-2026-43499-honor             Honor 실패 분석

면책 조항

보안 연구 목적으로만 사용하십시오. 승인되지 않은 기기에는 사용하지 마십시오.
도구 다운로드