Sploitus

Exploit for CVE-2026-43499-aristotle-apk

kitploit · 2026-09-04

Exploit Code

MARKDOWN107 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-SORALIS0912-CVE-2026-43499-ARISTOTLE-APK
# Aristotle ADB Enable

Минимальное Android-приложение, которое включает **ADB** на **au/KDDI Xiaomi "aristotle" (XIG04, Android 12)** , чьи параметры разработчика недоступны, используя временный root, полученный через **CVE-2026-43499**. Это инструмент для владельца устройства той же категории, что и KingRoot: он рутит ваш собственный телефон, чтобы переключить настройку.

> Область применения: ваш собственный XIG04, работающий под управлением `Xiaomi/XIG04_jp_kdi/XIG04:12/SP1A.210812.016/V14.0.3.0.TMFJPKD`. Не универсальный или удалённый эксплойт.

* * *

## Что делает

Одна кнопка, одна задача:

  1. Размещает эксплойт-пейлоад (`preload.so`) из APK в приватную директорию приложения `filesDir`, `chmod 0700`.
  2. Запускает ядерную ошибку, запуская короткоживущий `/system/bin/true` с `LD_PRELOAD`, указывающим на этот пейлоад. Конструктор ELF пейлоада запускает use-after-free в Futex-PI, получает временный root и самостоятельно устанавливает клиент и демон `su`.
  3. Подтверждает root, выполняя `su -c id` и проверяя наличие `uid=0`.
  4. Включает ADB от root: 
     * `settings put global development_settings_enabled 1`
     * `settings put global adb_enabled 1`
     * `stop adbd; start adbd` (возвращается к `setprop ctl.restart adbd`)



Каждый шаг выводится в экранный лог.

## Уязвимость

**CVE-2026-43499** — use-after-free в пути Futex-PI ядра Linux (`kernel/locking/rtmutex.c`, `remove_waiter()`). Ядро aristotle `5.10.136-android12` подвержено уязвимости (`CONFIG_FUTEX_PI=y`, `CONFIG_RT_MUTEXES=y`). Эксплойт использует data-only "direct-root" (замена `cred`, отключение SELinux enforcing) и подбирает MTE-теги, чтобы обойти защиту устройства. Исходный код эксплойта и измеренные смещения для aristotle находятся в **git-подмодуле`exploit/`** этого репозитория.

* * *

## Пейлоад собирается автоматически

`preload.so` **не включён в репозиторий**. Он создаётся из подмодуля `exploit/` и встраивается в APK во время сборки:

  * `exploit/` — git-подмодуль: эксплойт CVE-2026-43499 для aristotle (собирает `preload.so`).
  * Задача Gradle `buildExploitSo` (подключена к `preBuild`) запускает `make ... API=31` в эксплойте, а затем копирует полученный `preload.so` в `app/src/main/assets/exploit/preload.so` до упаковки APK.



Обычный `./gradlew assembleDebug` собирает пейлоад и включает его, если установлен Android NDK.

## Сборка

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
    

**Wrapper jar:** `gradle-wrapper.jar` не включён в репозиторий. Сгенерируйте его один раз с помощью `gradle wrapper --gradle-version 8.2`, или собирайте с системным Gradle (CI использует системный Gradle, поэтому wrapper jar там не требуется).

## CI / релизы

`.github/workflows/build-release.yml` (GitHub Actions) собирает APK при **каждом пуше** и публикует его как **GitHub Release** (тег `build-<run>`), с прикреплённым `app-debug.apk`. Рабочий процесс проверяет подмодуль `exploit`, устанавливает JDK 17 / Android SDK 34 / NDK r29 и запускает `gradle assembleDebug`, который собирает и встраивает `preload.so` (API=31).

Одноразовая настройка: отправьте этот репозиторий и репозиторий эксплойта одному и тому же **владельцу GitHub** как соседние репозитории, чтобы относительный URL подмодуля разрешался. Если репозиторий эксплойта приватный, добавьте PAT с областью `repo` как секрет `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. Подключите ADB с вашего ПК как обычно.



## Ограничения / предостережения

  * **Однократная сборка.** Смещения привязаны к указанной прошивке; для другой сборки требуется перепортированный пейлоад.
  * **tmp-root непостоянен.** Root теряется при перезагрузке. `adb_enabled` в глобальных настройках обычно сохраняется, и adbd не требует root после включения.
  * **SELinux / W^X.** Выполнение файла из приватной директории приложения через `LD_PRELOAD` может быть запрещено в зависимости от домена приложения; стратегия самого эксплойта обрабатывает это, и любой запрет отображается в логе, а не скрывается.
  * **Только для владельцев устройств.** Это предназначено для разблокировки ADB на принадлежащем вам оборудовании.