DIRTYFREE: Новый метод повышения привилегий в Linux, убивающий сложность DOP-атак

  • Автор темы Автор темы ADMIN
  • Дата начала Дата начала

ADMIN

Administrator
ADMIN
Регистрация
18 Окт 1989
Сообщения
1,408
Реакции
93
Баллы
48
☑ ДЕПОЗИТ
0$
С внедрением KCFI (Kernel Control-Flow Integrity) эра классических ROP-атак в ядре ушла. На смену пришло DOP (Data-Oriented Programming), но традиционный подход требует сложной подготовки: утечки адресов кучи, произвольного чтения (AAR) и произвольной записи (AAW).

На NDSS 2026 представлена техника DIRTYFREE, которая сводит эксплуатацию к одному элегантному примитиву - Arbitrary Free.

⚙️ Атака базируется на особенности функции kfree(). В отличие от kmem_cache_free(), она не требует явного указания кэша. Это позволяет реализовать Cross-Cache Free: освободить критически важный объект (находящийся в dedicated cache), используя уязвимость в обычном объекте (general cache).

Kill Chain:

1. Spray: Заполняем кучу структурами cred (с правами обычного юзера).

2. Corrupt: Используем уязвимость (UAF/OOB), чтобы перезаписать указатель внутри "Arbitrary Free Object".
• Фишка: Часто достаточно перезаписать всего 1-2 байта указателя, чтобы направить его на соседний cred -объект.

3. Arbitrary Free: Триггерим вызов kfree() для этого указателя. Ядро освобождает структуру с правами, думая, что это обычный объект.

4. Escalate: Спреим новые cred -структуры, но уже с правами root. Одна из них занимает освобожденный слот ➔ текущий процесс получает UID 0.



• Эффективность: Авторы протестировали метод на 31 реальной CVE (2023–2024 гг.). Результат: 24 успешных эксплойта.
• Минимальные требования: Многие "неэксплуатируемые" баги становятся критическими. Не нужен полный контроль над памятью, достаточно частичной перезаписи.
• Обход защит: Техника работает даже при включенном Slab Virtual (популярная митигация, разделяющая виртуалку и физику), так как использует легитимный механизм аллокатора.

Авторы нашли 14 универсальных объектов в ядре (включая msg_queue, io_ring_ctx, poll_list), которые можно использовать для этой техники практически в любом кэше (от kmalloc-16 до kmalloc-8192).
 
Защита от мошенничества: Использование посредника минимизирует риски столкнуться с «продавцами-однодневками» или недобросовестными заказчиками, которые исчезают после получения предоплаты или результата работы.
Назад
Сверху