Sploitus

Exploit for ghostlock-selinux-disabler

kitploit · 2026-08-28

Exploit Code

MARKDOWN69 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-PERONGH-GHOSTLOCK-SELINUX-DISABLER
# GhostLock Отключатель SELinux

Извлечение только Write-1-only из JoinChang/ghostlock-oneplus для CVE-2026-43499. Он отключает `enforcing` SELinux на поддерживаемых, уязвимых ядрах OnePlus с заблокированным загрузчиком, и больше ничего не делает: никакой перезаписи cred, никакой root-оболочки, никакого KernelSU, никакой загрузки и никакой утечки KASLR.

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

CVE-2026-43499 — это use-after-free в rtmutex ядра Linux в пути повторной постановки futex PI пути. Во время отката proxy-lock, `remove_waiter()` работает с `current` вместо задачи ожидающего, оставляя указатель `pi_blocked_on` ожидающего висящим. Это исправлено в основной ветке Linux 6.12.86 и более новых версиях 6.12.

## Что он делает

Одна запись PI для дочернего узла:

root@kitploit:~
    
    
    fake_right = base + 0x100   ->  byte0 = 0 (enforcing), byte1 = 1
    

Он повторно использует кучу полного эксплойта и маршрут PI через `pselect`, но обходит KASLR (`kaslr_slide = 0`). Он повторяет попытки до 20 раз (с очисткой slab между попытками) и завершает работу, как только `/sys/fs/selinux/enforce` показывает `0`.

## Что было удалено из полного эксплойта

Общий примитив (куча spray из `util.c`, маршрут pselect из `fops.c`, `kernelsnitch` и таблицы смещений) сохранён.

## Протестированные ядра

См. `src/devices/offsets.h`, ключи по `uname -r`:

  * OnePlus Ace 6T — `6.12.38-android16-5-...-ab14275539-4k`
  * OnePlus Ace 6T — `6.12.38-android16-5-...-ab14552068-4k`
  * OnePlus 15 — `6.12.23-android16-5-...-ab14541642-4k` (только смещения, не проверено)



## Сборка

root@kitploit:~
    
    
    make            # uses /opt/android-ndk (or $ANDROID_NDK_HOME)
    

Создаёт `selinux_disabler`, aarch64 PIE для Android API 35.

## Использование

root@kitploit:~
    
    
    adb push selinux_disabler /data/local/tmp/a/e && chmod 755 /data/local/tmp/a/e
    adb shell /data/local/tmp/a/e
    

Проверка:

root@kitploit:~
    
    
    adb shell cat /sys/fs/selinux/enforce   # -> 0
    

## Добавление устройств

Нужен только `boot.img`. Используйте утилиты извлечения из директории `tools` проекта tools directory, затем добавьте запись в `src/devices/<device>/offsets.h` и включите её через `#include` из `src/devices/offsets.h`.

## Лицензия

Только для авторизованных исследований в области безопасности и образовательных целей.