Sploitus

Exploit for bad_garbage

kitploit · 2026-08-25

Exploit Code

MARKDOWN27 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-SGKDEV-BAD_GARBAGE
# BAD_GARBAGE.c

**CVE-2026-53361** — непривилегированная, позволяющая выйти из контейнера уязвимость use-after-free в сборщике мусора сокетов AF_UNIX. Это версия с одним вектором (только MSG_PEEK).

## Ошибка

Сборщик мусора AF_UNIX освобождает «in-flight» сокеты, образующие недостижимые циклические ссылки. Одновременный `MSG_PEEK` на in-flight fd берёт ссылку, которую GC не учитывает в своём подсчёте, поэтому сборщик может освободить сокет, который всё ещё жив, и оставить висячий `sk_buff`. Предполагается, что peek будет приостанавливаться, пока выполняется сборка, но флаг `gc_in_progress`, который он проверяет, может читаться как false в середине выполнения, поэтому peek проскакивает, и гонка остаётся открытой.

То же взаимодействие, исправленное трижды:

  * **CVE-2021-0920** — `cbcf01128d0a` "af_unix: fix garbage collect vs MSG_PEEK"
  * **CVE-2026-23394** — `e5b31d988a41` "af_unix: Give up GC if MSG_PEEK intervened"
  * **CVE-2026-53361** — `d82ba05263c6` "af_unix: Set gc_in_progress to true in unix_gc()"



## Цели

_Уязвим_ = подвержен уязвимости. _Целевой_ = охвачен данным эксплойтом (один вектор MSG_PEEK). Ядра 7.x и ядро Ubuntu 6.8 GA уязвимы, но выходят за рамки данной работы.

## Некоторые протестированные ядра

## Примечания

  * **Количество CPU** — рассчитано на менее чем 8 CPU (2–7). Это выбор, а не особенность надёжности: чистая стратегия order-N намеренно исключена, не стоит раскрывать её ради бага -1 дня.
  * **Защита кэша SLUB** — бо́льшая часть кода защиты/теневания кэша удалена из PoC. Фаза утечки SID иногда может конфликтовать со случайным `kmalloc()` низкого порядка или с определённым переиспользованием PCP для конкретного кэша (`anon_vma`, `kmalloc-64` и им подобные); высокие корзины безопасны, выделенные кэши и нижние корзины — нет. Добавьте собственную защиту, чтобы довести результат до ~100%.