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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-43499-aristotle-apk — Futex-PI use-after-free 취약점을 이용한 CVE-2026-43499 Android 커널 익스플로잇으로, Xiaomi XIG04에서 ADB를 활성화하기 위해 임시 루트 권한을 획득합니다. 자동화된 페이로드 빌드와 원탭 활성화를 포함합니다. | Kitploit
도구/GitHubGitHub/soralis0912/cve-2026-43499-aristotle-apk
Android SecurityPrivilege EscalationVulnerability AnalysisExploitationShellcodeMobile SecurityPayload DevelopmentBinary Exploitation

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHub
soralis0912/cve-2026-43499-aristotle-apk

CVE-2026-43499-aristotle-apk

Futex-PI use-after-free 취약점을 이용한 CVE-2026-43499 Android 커널 익스플로잇으로, Xiaomi XIG04에서 ADB를 활성화하기 위해 임시 루트 권한을 획득합니다. 자동화된 페이로드 빌드와 원탭 활성화를 포함합니다.

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

Aristotle ADB Enable

개발자 옵션에 접근할 수 없는 au/KDDI Xiaomi "aristotle"(XIG04, Android 12) 기기에서 CVE-2026-43499로 얻은 임시 루트를 사용하여 ADB를 켜는 최소한의 Android 앱입니다. KingRoot와 같은 범주의 기기 소유자 도구로, 자신의 휴대폰을 루팅하여 설정 하나를 변경합니다.

범위: 다음 펌웨어를 실행하는 본인의 XIG04 Xiaomi/XIG04_jp_kdi/XIG04:12/SP1A.210812.016/V14.0.3.0.TMFJPKD. 범용 또는 원격 익스플로잇이 아닙니다.


기능

버튼 하나, 작업 하나:

  1. 익스플로잇 페이로드(preload.so)를 APK에서 앱의 개인 filesDir로 스테이징하고 chmod 0700을 적용합니다.
  2. LD_PRELOAD가 해당 페이로드를 가리키는 단기 실행 /system/bin/true를 실행하여 커널 버그를 작동시킵니다. 페이로드의 ELF 생성자가 Futex-PI use-after-free를 트리거하여 임시 루트를 획득하고 su 클라이언트와 데몬을 자체 설치합니다.
  3. su -c id를 실행하고 uid=0을 확인하여 루트를 확인합니다.
  4. 루트로 ADB를 활성화합니다:
    • settings put global development_settings_enabled 1
    • settings put global adb_enabled 1
    • stop adbd; start adbd (setprop ctl.restart adbd로 대체)

모든 단계가 화면의 로그로 출력됩니다.

취약점

CVE-2026-43499 — Linux 커널 Futex-PI 경로(kernel/locking/rtmutex.c, remove_waiter())의 use-after-free 취약점입니다. aristotle의 5.10.136-android12 커널이 영향을 받습니다(CONFIG_FUTEX_PI=y, CONFIG_RT_MUTEXES=y). 이 익스플로잇은 데이터 전용 "direct-root"(cred 교체, SELinux enforcing 전환)를 사용하고 MTE 태그를 브루트포스하여 기기의 하드닝을 우회합니다. 익스플로잇 소스와 측정된 aristotle 오프셋은 이 저장소의 exploit/ git 서브모듈에 있습니다.


페이로드는 자동으로 빌드됩니다

preload.so는 커밋되지 않습니다. exploit/ 서브모듈에서 생성되어 빌드 시점에 APK에 포함됩니다:

  • exploit/ — git 서브모듈: CVE-2026-43499 aristotle 익스플로잇(preload.so 빌드).
  • Gradle 태스크 buildExploitSo(preBuild에 연결됨)는 익스플로잇의 make ... API=31을 실행한 다음, APK가 패키징되기 전에 결과 preload.so를 app/src/main/assets/exploit/preload.so로 복사합니다.

따라서 Android NDK가 설치되어 있으면 일반적인 ./gradlew assembleDebug로 페이로드를 빌드하여 함께 배포합니다.

빌드

root@kitploit:~
# 1. fetch the exploit submodule
git submodule update --init --recursive

# 2. install the Android NDK r29 (the exploit Makefile auto-detects it,
#    or export ANDROID_NDK_ROOT), plus JDK 17 and Android SDK platform 34

# 3. build — auto-builds preload.so (API=31) and embeds it
./gradlew assembleDebug          # -> app/build/outputs/apk/debug/app-debug.apk

NDK가 없거나 앱 셸만 필요한가요? 페이로드 빌드를 건너뛰세요(그러면 앱이 실행 시 "exploit payload NOT deployed"라고 보고하며 런타임에 아무것도 변경하지 않습니다):

root@kitploit:~
./gradlew assembleDebug -PskipExploitBuild

래퍼 jar: gradle-wrapper.jar는 커밋되지 않습니다. gradle wrapper --gradle-version 8.2로 한 번 생성하거나 시스템 Gradle로 빌드하세요(CI는 시스템 Gradle을 사용하므로 래퍼 jar가 필요하지 않습니다).

CI / 릴리스

.github/workflows/build-release.yml(GitHub Actions)은 모든 push에서 APK를 빌드하고 app-debug.apk를 첨부하여 GitHub Release(태그 build-<run>)로 게시합니다. 워크플로는 exploit 서브모듈을 체크아웃하고 JDK 17 / Android SDK 34 / NDK r29를 설치한 다음 gradle assembleDebug를 실행하여 preload.so(API=31)를 빌드하고 포함합니다.

1회성 설정: 이 저장소와 익스플로잇 저장소를 동일한 GitHub 소유자 아래 형제 저장소로 푸시하여 서브모듈의 상대 URL이 올바르게 해석되도록 하세요. 익스플로잇 저장소가 비공개인 경우 repo 범위의 PAT를 시크릿 SUBMODULE_PAT으로 추가하고 워크플로의 token: 줄 주석을 해제하세요.

구조

root@kitploit:~
.
├── settings.gradle / build.gradle / gradle.properties   Gradle wiring
├── gradlew(.bat) + gradle/wrapper/                       wrapper
├── exploit/                                              git submodule (builds preload.so)
└── app/
    ├── build.gradle          minSdk 31 / targetSdk 31 / compileSdk 34, arm64-v8a; buildExploitSo task
    └── src/main/
        ├── AndroidManifest.xml         single launcher Activity, no dangerous perms
        ├── java/.../MainActivity.kt    button + scrolling log
        ├── java/.../ExploitRunner.kt   stage → LD_PRELOAD → su -c "settings ..."
        ├── res/{layout,values}/        UI, strings, theme
        └── assets/exploit/             preload.so is embedded here at build time

실행

  1. git submodule update --init --recursive를 실행하고 NDK를 설치한 다음 ./gradlew assembleDebug를 실행합니다.
  2. XIG04에 설치하고 실행합니다. ADB를 활성화하려는 경우 기기 자체에서 APK를 설치(파일 관리자/브라우저 다운로드)하고 런처에서 엽니다.
  3. Enable ADB (tmp-root) 버튼을 누르고 로그를 확인합니다. 성공하면 adb_enabled is now: 1로 끝납니다.
  4. 평소처럼 PC에서 ADB로 연결합니다.

제한 사항 / 주의 사항

  • 단일 빌드. 오프셋은 위의 ROM에 고정되어 있습니다. 다른 빌드에는 페이로드를 다시 포팅해야 합니다.
  • tmp-root는 휘발성입니다. 재부팅하면 루트가 사라집니다. 글로벌 설정의 adb_enabled는 일반적으로 유지되며, 일단 활성화되면 adbd는 루트가 필요 없습니다.
  • SELinux / W^X. LD_PRELOAD를 통한 앱 비공개 파일 실행은 앱 도메인에 따라 거부될 수 있습니다. 익스플로잇 자체 전략이 이를 처리하며, 거부 사항은 숨기지 않고 로그에 표시됩니다.
  • 기기 소유자 전용. 이 도구는 본인이 소유한 하드웨어에서 ADB를 잠금 해제하기 위한 것입니다.
도구 다운로드