Sploitus

Exploit for CVE-2026-43499

kitploit · 2026-08-27

Exploit Code

MARKDOWN55 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-MOBIUSM-CVE-2026-43499
# CVE-2026-43499 — Использование после освобождения в Futex PI ядра Linux

## Ошибка

`remove_waiter()` в `kernel/locking/rtmutex.c` используется путями медленной блокировки, а также для отката прокси-блокировки в `rt_mutex_start_proxy_lock()`, вызываемой из `futex_requeue()`.

В случае прокси-блокировки `waiter::task` не является `current`, но `remove_waiter()` некорректно работает с `current`. Это вызывает три проблемы:

  1. Удаление из красно-чёрного дерева происходит без удержания `waiter::task::pi_lock`.
  2. Поле `pi_blocked_on` задачи-ожидателя не очищается, оставляя висячий указатель, готовый к использованию после освобождения.
  3. `rt_mutex_adjust_prio_chain()` работает с неверной задачей.



**CWE-416** (Использование после освобождения). CVSS 3.1: **7.8 HIGH** (Локально, низкая сложность, низкие привилегии).

Затрагивает: Linux 2.6.39 – 6.18.x; исправлено в 6.1.175, 6.6.140, 6.12.86, 6.18.27, 7.0.4.

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

**Предварительные требования:** Android NDK 27, CMake ≥ 3.22, `adb`.

root@kitploit:~
    
    
    cmake -B build -G Ninja
    cmake --build build
    adb push build/trigger /data/local/tmp/trigger
    adb shell chmod +x /data/local/tmp/trigger
    adb shell /data/local/tmp/trigger
    

Ожидаемый вывод на уязвимом устройстве заканчивается паникой ядра:

root@kitploit:~
    
    
    Unable to handle kernel write to read-only memory
    

## Благодарности

**Сообщили:**

  * Юань Тань
  * Ифань У
  * Цзюэфэй Пу
  * Синь Лю



**Исправление подготовлено:** Кинань Дун  
**Исправление внесено:** Томас Гляйкснер  
**Коммит:** `3bfdc63` — rtmutex: Использовать waiter::task вместо current в remove_waiter()