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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-98260-pudding-android — Исследовательский порт Android CVE-2026-98260 для конкретной цели — Xiaomi 17 (pudding) | Kitploit
Инструменты/GitHubGitHub/addxemmm/cve-2026-98260-pudding-android
Безопасность AndroidПовышение привилегийКриминалистика памятиЭксплуатацияПост-эксплуатацияМобильная безопасностьЭксплуатация Бинарных Файлов
GitHub

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
addxemmm/cve-2026-98260-pudding-android

CVE-2026-98260-pudding-android

Исследовательский порт Android CVE-2026-98260 для конкретной цели — Xiaomi 17 (pudding)

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

CVE-2026-98260 · Android 17 / pudding 本地提权移植

Цепочка эксплойта для Android AArch64, нацеленная на конкретную сборку ядра Xiaomi 17 (кодовое имя pudding): начиная с обычной оболочки ADB, последовательно переводит SELinux в режим Permissive, обнуляет UID/GID текущего процесса, добавляет полный набор Linux capabilities и предоставляет root-сервис в рамках текущего цикла загрузки.

Ссылки и источники

Этот проект основан на материале CVE-2026-98260-popsicle-android (Xiaomi 17 Pro Max / popsicle) и портирован из него; это не независимое исследование, реализованное с нуля.

  • Обнаружение уязвимости, публичный анализ и PoC для цели Ubuntu: InfinityCore
  • Полная трёхэтапная цепочка на Android GKI, раскладка объектов и дизайн повторного использования страниц: вышеуказанный репозиторий popsicle
  • Этот репозиторий выполняет только целевую адаптацию pudding (два адреса ссылок, один встроенный символ пробы, масштаб сканирования); остальной код и идеи принадлежат первоначальному автору

Краткий обзор уязвимости

Вызов execve() из неосновного потока сначала выполняет de_thread() для обмена идентичностью потока. Если exec после этого завершается неудачей (например, exec_mmap() прерывается SIGKILL и возвращает -EINTR), задача завершается до очистки POSIX timer: k_itimer освобождается, но его узел timerqueue остаётся в дереве живой задачи. Когда родительский процесс позже собирает эту задачу, cleanup_timerqueue() снова обращается к уже освобождённому узлу, что приводит к use-after-free.

Эксплойт превращает этот UAF в ограниченную восьмибайтовую запись нуля, а затем продвигается в три шага: SELinux → UID/GID → полный набор capabilities. Полное вводное объяснение см. в docs/VULNERABILITY.md.

Проверенная цель и результаты

ПунктИзмеренное значение
УстройствоXiaomi 17, модель 25113PN0EC, кодовое имя pudding
СистемаXiaomi HyperOS 4 OS4.0.5.0.XPCCNXM, Android 17
Ядро6.12.69-android16-6-g43b5ab7e247d-abogki561813157-4k
Размер страницы4 KiB
Начальная точкаАвторизованная обычная оболочка ADB, UID 2000, SELinux Enforcing, загрузчик заблокирован
Успешный результатUID/GID 0, SELinux Permissive, CapPrm/CapEff/CapBnd=000001ffffffffff
Время жизниroot-сервис доступен для новых оболочек ADB в рамках текущей загрузки; после перезагрузки требуется повторный запуск

Независимая проверка после успеха (в новой оболочке ADB):

uid=0(root) gid=0(root)
CapInh: 000001ffffffffff
CapPrm: 000001ffffffffff
CapEff: 000001ffffffffff
CapBnd: 000001ffffffffff
getenforce: Permissive

Это не постоянный root. Ничего не записывается в boot/init_boot или любой другой раздел, загрузчик остаётся заблокированным; после перезагрузки SELinux возвращается в режим Enforcing, а root-сервис исчезает.

Вероятность успеха

Вероятность успеха не гарантируется. На практике потребовалось 9 запусков, чтобы один раз полностью пройти A→B→C. Условия прохождения трёх этапов независимы друг от друга:

ЭтапПрограмма на устройствеУсловие прохождения
1. SELinuxexploit-android-perfgetenforce возвращает Permissive, остальные поля словаря состояния остаются ожидаемыми
2. Идентичностьexploit-android-perf-chainUID/GID того же процесса становятся равны 0, затем выполняется exec fullcap
3. Полные праваexploit-android-key-ptr + pc98260_rootd.cПолные capabilities, root-сервис доступен из новой оболочки

Если какой-либо шаг не сработал, выводится [PARKED] и сохраняется опасное состояние, необходима перезагрузка; повторные попытки в рамках текущей загрузки недопустимы.

--aio 16384 — это настроечное значение для данного устройства (в успешном запуске попадание произошло на 3903-й странице метаданных perf).

Отличия от версии popsicle

Местоpopsiclepudding
LINK_SELINUX_STATE0xffffffc08289aba00xffffffc0827f9ba0
LINK_GETPID0xffffffc080074eac0xffffffc080102e10
Утечка адреса timerзонд, возвращаемый alloc_posix_timerэтот символ встроен (inlined), вместо него используется точка входа posix_cpu_timer_create $arg1
PERF_MAX819216384 (повышает шанс попадания в страницу)

Обоснование и доказательства см. в docs/ADAPTATION.md.

Сборка из исходного кода

Требуется Android NDK. Каталог bin/ в репозитории собран с помощью NDK 26.3.11579264 / API 34:

powershell -NoProfile -ExecutionPolicy Bypass -File .\build.ps1 -NdkHome "$env:LOCALAPPDATA\Android\Sdk\ndk\26.3.11579264" -ApiLevel 34

-VerifyReference поочерёдно сравнивает SHA-256 новых артефактов с bin/; побайтовое совпадение возможно только при использовании того же инструментария, что и для bin/. При смене версии NDK всё будет работать, но хеши будут отличаться.

Артефакты:

АртефактИсходный код
exploit-android-perfsrc/exploit-android-perf.c
exploit-android-perf-chainsrc/exploit-android-perf-chain.c
exploit-android-key-ptrsrc/exploit-android-key-ptr.c + src/pc98260_rootd.c
pc98260-susrc/pc98260_su.c

Сборка не подключается к телефону и не записывает данные на устройство.

Запуск на авторизованной цели

Подключите устройство с включённой отладкой по USB и выданным разрешением, добавьте platform-tools в PATH:

.\开始98260临时ROOT.bat

Или явно указать устройство:

powershell -NoProfile -ExecutionPolicy Bypass -File .\run_98260.ps1 -Serial <ADB序列号> -Reboot

Скрипт на хосте проверяет модель устройства, инкрементальную версию системы, полную строку ядра, boot ID и хеши четырёх бинарников; кроме того, перед запуском каждого этапа он устанавливает /sys/kernel/tracing/tracing_on в 0 (в некоторых сборках HyperOS miuibpf оставляет его в 1, из-за чего цепочка эксплуатации отказывается запускаться). При появлении [PARKED] скрипт останавливается и предлагает перезагрузиться.

После успешного выполнения root можно использовать так:

adb shell -t /data/local/tmp/pc98260-su
adb shell /data/local/tmp/pc98260-su -c "id"

Почему процесс останавливается при неудаче

Цепочка эксплуатации требует точного освобождения «той самой страницы, где находится целевой таймер». Если не удаётся наблюдать ту же целевую страницу или проверка после записи указателя оказывается несогласованной, программа сохраняет соответствующие zombie/отображения и останавливается, чтобы избежать слепого освобождения, пока ядро всё ещё ссылается на висячий узел. В этом случае границей следующей попытки следует считать новую загрузку телефона.

Границы репозитория

Данный репозиторий не содержит: резервные копии устройства, образы boot/init_boot, образы разделов, payload.bin, извлечённые из прошивки ядра/ELF, исходные журналы выполнения, серийные номера ADB или boot ID. logs/ и build/ игнорируются Git. В bin/ находятся только четыре бинарника временной цепочки повышения привилегий.

Предупреждения по безопасности

  • После успеха SELinux находится в режиме Permissive, а root-демон слушает /data/local/tmp/pc98260-root.sock с полными capabilities; в течение текущей загрузки всё устройство полностью открыто.
  • Если не используете — немедленно перезагрузитесь, не оставайтесь в этом состоянии надолго.
  • Процесс эксплуатации может вызвать панику ядра/перезагрузку; не выполняйте его на основном устройстве с важными несохранёнными данными.
  • Только для ваших собственных устройств и авторизованных исследований безопасности.

Документация

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