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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
ghostlock-sabrina — CVE-2026-43499 GhostLock, Google TV가 탑재된 Chromecast(sabrina)용 루트 익스플로잇 | Kitploit
도구/GitHubGitHub/k-o-n-t-o-r/ghostlock-sabrina
Android SecurityEmbedded Systems SecurityPrivilege EscalationVulnerability AnalysisExploitationHardware & IoT SecurityPapers & ResearchPayload DevelopmentBinary Exploitation
GitHubk-o-n-t-o-r/ghostlock-sabrina

ghostlock-sabrina

CVE-2026-43499 GhostLock, Google TV가 탑재된 Chromecast(sabrina)용 루트 익스플로잇

11일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기

GhostLock Sabrina

Linux 커널의 futex PI(우선순위 상속) 서브시스템에서 발생하는 use-after-free 취약점인 CVE-2026-43499를 통해 Chromecast with Google TV(sabrina)의 루트 익스플로잇.

커널 5.15.170(PGO+BOLT+LTO, clang 17)을 실행하는 Android 14 기반의 잠긴 부트로더 기기에서 루트 권한을 획득합니다.

취약점

GhostLock은 rt_mutex_start_proxy_lock()의 -EDEADLK 롤백 경로에서 호출되는 remove_waiter()의 버그를 악용합니다. 이 함수는 대기자 태스크의 pi_blocked_on 대신 requeuer의 pi_blocked_on(이미 NULL)을 지웁니다. 대기자의 pi_blocked_on은 절대 지워지지 않아, 커널 스택에 해제된 rt_mutex_waiter에 대한 dangling pointer가 남습니다.

이후 sched_setattr이 rt_mutex_adjust_pi -> rt_mutex_adjust_prio_chain을 트리거하고, 이는 dangling pointer를 따라가 재할당된 힙 페이지의 공격자 제어 데이터를 통해 PI 체인을 순회하여 rb_erase를 통한 임의 쓰기 프리미티브를 제공합니다.

익스플로잇 체인

핵심 혁신

  • SIGUSR1 walk-before-cleanup: SEQPACKET 오버레이가 futex 대기를 중단시키는 시그널 핸들러 내부에서 실행되므로, PI 체인 walk가 futex 정리 경로가 스프레이 페이지의 스핀락을 경합하기 전에 발동합니다(MCS qspinlock wedge 제거)
  • Fake user_namespace: 스프레이 페이지에 identity uid/gid 맵과 ucounts = NULL을 가진 자체 포함 네임스페이스 -- cap_capable이 첫 반복에서 일치하고 inc_rlimit_ucounts가 한 번의 루프 후 종료되어 &init_user_ns 유출 필요성을 제거합니다
  • TID 게이트 perf 샘플링: PERF_SAMPLE_TID 필터가 호출 스레드의 레지스터 스냅샷만 집계되도록 보장하여, 핫 시스템 서비스가 mode-vote를 지배하는 것을 방지합니다

대상

  • 기기: Chromecast with Google TV(sabrina), Amlogic S905X3(4x A55), 2 GB RAM
  • 커널: 5.15.170-android14-11-gf4a1f03072af(aarch64, PGO+BOLT+LTO, clang 17.0.2)
  • Android: 14, 빌드 UTTC.250917.004, 보안 패치 2025-10-01
  • 설정: CONFIG_FUTEX_PI=y, CONFIG_IO_URING=y, perf_event_paranoid=-1, SELinux enforcing, panic_on_oops=1, user namespaces 없음

빌드

root@kitploit:~
export ANDROID_NDK_HOME=/path/to/android-ndk
make -j$(nproc)

Android NDK가 필요합니다(r27로 테스트됨). 정적으로 링크된 aarch64 바이너리를 생성합니다.

사용법

root@kitploit:~
adb push ghostlock /data/local/tmp/
adb shell "cd /data/local/tmp && ./ghostlock --cred"

익스플로잇은 약 20초가 걸립니다(힙 스프레이 + KernelSnitch 무차별 대입). 성공하면 프로세스가 uid=0 자격 증명으로 /system/bin/sh를 exec합니다.

저자

이 익스플로잇은 Claude Opus 4.6(Anthropic)이 GLM-5.3(Z.ai)을 커널 익스플로잇 컨설턴트로 두고 이식 및 개발했습니다.

참고 자료

  • GhostLock (원본 익스플로잇) -- 이 이식의 기반이 된 AnomalyStudio의 OnePlus/Pixel GhostLock 익스플로잇
  • KernelSnitch -- futex 해시 충돌을 통한 커널 힙 주소 유출 타이밍 사이드 채널(Gruss et al., TU Graz)
  • CVE-2026-43499 -- futex PI use-after-free 취약점
  • Linux kernel 5.15 소스 -- kernel/futex/, kernel/locking/rtmutex.c, lib/rbtree.c

면책 조항

이 익스플로잇은 보안 연구 및 교육 목적으로 공개되었습니다. 연구자가 소유한 기기를 대상으로 합니다. 소유하지 않은 기기나 승인 없이 사용하지 마십시오.

라이선스

MIT

도구 다운로드
단계기법
KASLR 유출PERF_SAMPLE_IP를 사용한 perf_event_open(TID 게이트)
Task struct 유출PERF_SAMPLE_REGS_INTR를 사용한 perf_event_open(TID 게이트, 선형 맵 주소의 최빈값)
mm_struct 유출KernelSnitch -- futex 해시 충돌 타이밍 사이드 채널
힙 스프레이SLUB discard choreography(memfd-close, CPU-partial overflow) + io_uring_setup(256) order-2 페이지 회수
스택 오버레이AF_UNIX SOCK_SEQPACKET sendmsg -- move_addr_to_kernel이 128바이트 sockaddr을 커널 스택에 복사하여 dangling waiter의 task/lock/prio 필드를 덮어씀
Walk 트리거단조 nice 사다리(7 -> 14 -> 19)를 사용한 sched_setattr이 PI 체인 walk를 발동
쓰기 프리미티브rb_erase Case 1a가 child(fake_cred)를 parent->rb_right = task->cred에 씀
Cred 교체task->cred = fake_cred(uid=0, 모든 caps, 스프레이 페이지에 자체 포함된 fake user_namespace)
루트 셸execve("/system/bin/sh") -- exec 경로의 commit_creds가 fake_cred를 깨끗한 slab credential로 복사