
Одноразовый рут-кит для vivo iQOO Neo9S Pro (MT6989), эксплуатирующий futex PI UAF CVE-2026-43499 через транспорт MCAST, со скриптами и документацией по анализу.
Комплект для одноразового получения root через GhostLock для vivo iQOO Neo9S Pro (V2339FA, MediaTek MT6989). Данный репозиторий содержит: патч портирования MCAST transport, одноразовый скрипт, полную аналитическую документацию; полный рабочий комплект (включая бинарные файлы и KernelSU) см. в Releases.
Device: vivo iQOO Neo9S Pro (V2339FA / PD2339, MT6989) Firmware: PD2339_A_16.2.12.1.W10.V000L1 (Android 16) Kernel: 6.1.145-android14-11-maybe-dirty Vulnerability: CVE-2026-43499 (futex PI requeue UAF) For device owners / security research only. Use on your own device.
setsockopt(SOL_IP, MCAST_JOIN_SOURCE_GROUP, buf, 0x108) в качестве примитива отравления, полностью перекрывающий stale rt_mutex_waiter, что позволило пройти всю цепочку (W1→W2→W3→KernelSU).ghostlock-kit-20260913.zip из Releases и распакуйте.cd <解压目录>\ghostlock-kit
powershell -ExecutionPolicy Bypass -File .\scripts\run-at-lockscreen.ps1 -Reboot
[+] Root 成功! — готово (во время выполнения не разблокируйте телефон). Проверка:adb shell su -c id
# uid=0(root) gid=0(root) groups=0(root) context=u:r:ksu:s0
При неудаче срабатывает kernel panic с автоматической перезагрузкой, скрипт автоматически ожидает и повторяет попытку (успешность около 25–30% за попытку; при экране блокировки почти всегда с первого раза). root является временным (KernelSU late-load), после перезагрузки телефона требуется повторный запуск скрипта.
.
├── scripts/
│ ├── run-at-lockscreen.ps1 # 一键:重启→锁屏等待→推送校验→运行→自动重试(推荐)
│ └── retry-if-needed.ps1 # 通用重试(不强制重启)
├── src/
│ └── ghostlock-mcast.patch # 源码改动(基线 ghostlock-app @ 50d2b72)
├── docs/ # 分析文档(利用报告/transport 分析/waiter 与 PI walk/设备手册/排查记录)
└── LICENSE # Apache-2.0(继承上游)
Бинарные файлы и полный комплект (files/ghostlock, files/ksud, files/offsets.json, KernelSU APK) не размещены в git-репозитории,
скачайте ghostlock-kit-20260913.zip из Releases.
| Ресурс | Описание | SHA-256 |
|---|---|---|
ghostlock-kit-20260913.zip | Полный комплект (скрипты+бинарные файлы+APK+документация) | df547f6b2852a0d86582958e049ef5a44599a5a91ce0dace2162fb7d0fcab11d |
Ключевые файлы внутри комплекта (MD5):
| Файл | MD5 |
|---|---|
files/ghostlock(эксплойт) | e581609ed114d33efa3b8a1958f85637 |
files/ksud(официальный KernelSU v3.3.0 userspace) |
FUTEX_WAIT_REQUEUE_PI поле task->pi_blocked_on продолжает указывать на rt_mutex_waiter в его стеке.setsockopt(SOL_IP, MCAST_JOIN_SOURCE_GROUP, buf, 0x108) заставляет do_ip_setsockopt выполнить
memset(0x108) + copy_from_user(0x108), диапазон копирования [S'−0x338, S'−0x230) полностью перекрывает данный waiter (waiter расположен по смещению буфера 0x60);
установка buf[8]=0 приводит к сбою проверки семейства, и syscall чисто возвращается после копирования.sched_setattr → rt_mutex_adjust_prio_chain читает поддельный waiter → rb_erase left-only relink
формирует примитив записи .Подробности см. в docs/ (включая цепочку доказательств, анализ дизассемблирования и снимки краха).
# 基线:ghostlock-app @ 50d2b72(含 PR#127)
git clone https://github.com/YuKongA/ghostlock-app.git
cd ghostlock-app && git checkout 50d2b72
git apply /path/to/src/ghostlock-mcast.patch
make NDK_ROOT=<your-ndk> ghostlock
Содержимое патча: MCAST transport (do_mcast_fake_lock_route), выбор маршрута, логика observe/предварительного создания,
GHOSTLOCK_WALK_LOG (локализация walk на стороне consumer), резервное копирование pstore в root-скрипте, GHOSTLOCK_SKIP_VR.
ksud и APK в данном комплекте взяты из официального релиза v3.3.0, авторские права принадлежат их авторамТолько для локальных исследований безопасности владельцем на собственном устройстве и для личного использования root; не применяйте на любых неавторизованных устройствах или в незаконных целях. Использование данного инструмента может привести к нестабильности устройства или риску для данных; сделайте резервную копию и примите соответствующие последствия.
de059ed8ffd896129a0a4bbe338c946a |
files/offsets.json(смещения для данной модели) | a2498197161b01bdcc5dffc0614fbfbd |
*(target) := valuecred = init_cred → W3 очистка seccomp (в shell-сценарии пропускается) → root-скрипт late-load KernelSU.| Вопрос | Решение |
|---|
| После неудачи телефон перезагружается | Нормально (вероятностное событие); после перезагрузки не разблокируйте, сразу перезапустите скрипт |
| Менеджер показывает "не установлен/не работает" | Сначала убедитесь, что su -c id работает; откройте менеджер и обновите, не смахивайте/не останавливайте принудительно |
| root исчезает после перезагрузки | Нормально (late-load не персистентный); перезапустите скрипт |
| Хочу использовать ReSukiSU | На данной модели недоступно (при открытии менеджера происходит зависание с перезагрузкой), при необходимости подберите совместимую версию |
| После обновления системы | offsets.json может стать недействительным, требуется повторная генерация/импорт |