
CVE-2026-43499 (GhostLock) — адаптация для ASUS ROG Phone 5S: триггер UAF + восстановление стека pselect, утечка KASLR заблокирована
Исследование адаптации CVE-2026-43499 (GhostLock) на ASUS ROG Phone 5S (ASUS_I005).
Вывод: срабатывание уязвимости и возврат стека полностью подтверждены; цепочка повышения привилегий не завершена из-за недостаточной глубины перезаписи стека.
Конкретно:
waiter+0x28..0x40 (pi_tree_entry.rb_left и lock)waiter+0x27Подробный анализ см. в docs/05-limitations.md.
| Этап | Содержание | Статус |
|---|---|---|
| 0 | Срабатывание UAF (3 потока + CMP_REQUEUE_PI) | ✅ |
| 1 | Восстановление стека при pselect timeout=0 (shift=10) | ✅ |
| 1.6 | Утечка SP стека ядра W (perf PERF_SAMPLE_REGS_INTR) | ✅ |
| 2 | Запись по произвольному адресу (требуется KASLR slide) | ❌ |
| — | Утечка KASLR (все 8 источников не сработали) | ❌ |
| Параметр | Значение |
|---|---|
| Устройство | ASUS ROG Phone 5S (ASUS_I005) |
| SoC | Snapdragon 888 (SM8350) |
| Android | 13 |
| Ядро | 5.4.210-qgki-perf-gc89cd02a7dfe arm64 |
| SELinux | Enforcing (u:r🐚s0) |
| CapEff | 0 |
CVE-2026-43499 (GhostLock) — это UAF в стеке подсистемы rtmutex ядра Linux.
remove_waiter() в пути отката прокси-блокировки использует current вместо waiter->task,
что приводит к тому, что в task_struct->pi_blocked_on остаётся висячий указатель.
_copy_from_user всё равно выполняетсяPSELECT_WAITER_WORD_SHIFT = 10См. docs/05-limitations.md:
docs/ аналитические документы и хронология
06-research-snapshot.md полный снимок исследования07-iteration-log.md журнал неудачных версийdisasm/ ключевые фрагменты дизассемблированияrecon/ результаты разведкиinclude/ таблица символов + смещения структурsrc/ исходный код PoC (подробнее см. src/README.md)scripts/ аналитические скриптыlogs/ журналы выполнения (не в git)# 1. Извлечение символов и смещений (требуется vmlinux, собранный из официальных исходников ядра ASUS)
./scripts/extract_symbols.sh
./scripts/gen_symbols_h.sh
./scripts/extract_offsets.sh
# 2. Компиляция Stage 0
aarch64-linux-gnu-gcc -static -O2 -pthread \
-o ~/tmp/work/bin/poc_stage0_trigger src/poc_stage0_trigger.c
# 3. Запуск на устройстве (требуется adb shell на целевое устройство)
adb shell /data/local/tmp/poc_stage0_trigger
Инструментарий: aarch64-linux-gnu-gcc -static -O2 -pthread
Ссылки
· gitchw/ghostlock-cve-2026-43499 Huawei Watch 4 Pro, 5.4.210 (ARM32)
· ccp-p/ghostlock-cve-2026-43499-4.19-k40 Redmi K40, 4.19.157 (aarch64)
· JoinChang/ghostlock-oneplus несколько устройств OnePlus, осуществимость компоновки стека
· knowlily/cve-2026-43499-honor анализ неудачи на Honor
Отказ от ответственности
Только для исследований в области безопасности. Не использовать на неавторизованных устройствах.