
Linux kernel local privilege escalation PoC для CVE-2026-68121, объединяющий PPPoE, FUSE и IP6GRE для повреждения памяти ядра и получения root.
[!WARNING] PoC предоставлен исключительно для того, чтобы помочь защитникам, мейнтейнерам и авторизованным командам безопасности проверить патчи, меры защиты, детектирование и подверженность на системах, которыми они владеют или которые им явно разрешено тестировать.
Вы несёте исключительную ответственность за то, чтобы использование этого материала было законным, авторизованным, контролируемым и проводилось в изолированной тестовой среде.
[!WARNING] Этот PoC деструктивен. Он намеренно повреждает живую память ядра. Ошибочная перезапись может повредить несвязанную память ядра и привести к зависанию/падению машины.
Запускайте только в одноразовой ВМ/временном хосте.
PoC:
struct file, и
подготавливает заполненную fdtable под целевую аллокациюdev_hard_header() перераспределить head skb, затем использует устаревший
указатель на заголовок PPPoE, чтобы перенаправить запись fdtable на поддельный файл, и/bin/sh -p.PoC рассчитан и нацелен на x86-64, чтобы всё было проще. Теоретически баг не должен быть архитектурно-специфичным, но вам придётся портировать многое (от утечки базы ядра до остальной цепочки).
Перечисляем исчерпывающе для полноты:
6.19.10-300.fc44.x86_64 или Ubuntu 24.04 с
6.8.0-124-generic или 6.8.0-136-generic (можно попробовать убрать эти
проверки, но другие дистрибутивы/версии ядра могут потребовать
кастомизации/подготовки под конкретную цель)passwd и домашним
каталогом, которым она владеетCAP_NET_ADMIN и
CAP_NET_RAW внутри этого namespace/dev/fuse, а также поддержка FUSE, PPPoE, IP6GRE,
AF_PACKET/TX-ring и team на Fedora или поддержка bonding на Ubuntumembarrier для выбранных low-order раскладокRLIMIT_NOFILE, достаточный для выбранной геометрии носителя,
проверяется во время выполнения и потенциально может потребовать до 8 192
дескрипторовТестировалось только с 4 ГБ RAM и различным числом CPU от 4 и выше. Другие комбинации CPU/памяти могут потребовать больше подготовки и/или могут перенаправить запись в несвязанную память.
Запускайте от непривилегированного пользователя с записью в passwd. Конвертация
для Ubuntu может занять некоторое время (например, 300+ попыток).
python3 pppoeject_root_repro.py
gcc с libc и заголовками разработки
Linux UAPI, taskset, unshare, ip, true и /bin/sh, а также aa-exec
и загруженный профиль trinity на Ubuntu, если прямой unshare -Urn
запрещён