## 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%.