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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CHARON — CHARON — pre-built PoC for CVE-2026-46333 (Linux ptrace mm==NULL fd theft) | Kitploit
أدوات/GitHubGitHub/karazajac/charon
Privilege EscalationVulnerability AnalysisExploitationPenetration TestingLearning & EducationBinary Exploitation
GitHubkarazajac/charon

CHARON

CHARON — pre-built PoC for CVE-2026-46333 (Linux ptrace mm==NULL fd theft)

عرض المستودع
72منذ 3 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة

/ || | | | / \ | _ \ / _ | \ | | | | | || | / _ \ | |) | | | | | | | | | _ |/ ___ | _ <| || | |\ | _||| |// __| _\/|_| _|

ينقل واصفات الملفات عبر نهر ستيكس الخاص بـ exit-mm() CVE-2026-46333 / Linux <= 6.12.89

"مُرْعِبٌ هُوَ الْوُقُوعُ فِي يَدَيِ اللهِ الْحَيِّ." — عبرانيين 10:31

ما هذا

إثبات مفهوم (PoC) مُحكم وخالٍ من التبعيات لثغرة CVE-2026-46333: تجاوز __ptrace_may_access عبر mm==NULL الذي كشفت عنه Qualys في 2026-05-15. يُدير Charon سباقًا بين pidfd_getfd(2) وعملية SUID-root مُحتضِرة لانتزاع واصف ملف /etc/shadow المفتوح لديها عبر نافذة mm-NULL القصيرة داخل do_exit(). شغّله كمستخدم غير مميَّز على جهاز متأثر؛ سيُفرغ /etc/shadow إلى stdout.

root@kitploit:~
$ ./charon
[banner on stderr]
[*] lure /usr/bin/chage   target /etc/shadow
root:$y$j9T$ztS5H...$hz9W87TlqxEW...:...
daemon:*:20582:0:99999:7:::
bin:*:20582:0:99999:7:::
...

معدل الإصابة المعتاد: أقل من ثانية على VM رباعية النوى، ~137 محاولة في اختبار الدخان.

الثغرة في 30 ثانية

تتجاوز __ptrace_may_access() فحص قابلية التفريغ (dumpability) عندما يكون task->mm == NULL. صُمم المسار السريع (fast-path) لخيوط النواة (swapper وغيرها)، التي لا تملك mm بشكل مشروع ولا ينبغي أبدًا تتبُّعها عبر ptrace. لكن do_exit() تشغّل exit_mm() قبل exit_files()، مما يعني أن عملية SUID في فضاء المستخدم تملك لفترة وجيزة:

  • task->mm == NULL (تم حصد mm) → تخطّي فحص قابلية التفريغ
  • جدول الملفات ما يزال ممتلئًا → واصفات الملفات ما تزال قابلة للحصول
  • الاعتمادات (creds) تعكس إسقاط الصلاحيات بعد setreuid() → ينجح فحص الوصول

تثق pidfd_getfd(2) بفحص الوصول هذا وتُسلّم المهاجم واصفات الملفات المفتوحة لعملية SUID.

root@kitploit:~
do_exit()
  ├── exit_mm()      ← task->mm = NULL
  ├── ...            ← __ptrace_may_access() now lies
  └── exit_files()   ← fd table reaped

أشار Jann Horn إلى نمط سرقة واصفات الملفات (FD-theft) على lore.kernel.org في أكتوبر 2020. مكث الإصلاح قيد مراجعة القائمين على الصيانة (maintainers) لنحو 6 سنوات قبل أن تعيده Qualys إلى مقدمة الطابور.

الإصلاح في المنبع (upstream): 31e62c2ebbfd (Linus 2026-05-14). حتى 2026-05-15 لم يُدمج النقل الخلفي (backport) في فرعَي linux-6.12.y أو linux-6.6.y المستقرّين.

الأنوية المتأثرة

الشجرة المستقرةالحالة
linux-6.12.y (≤ 6.12.89)❌ متأثرة
linux-6.6.y (قبل النقل الخلفي للإصلاح)❌ متأثرة
mainline ≥ 6.15-rc1✅ مصحّحة (31e62c2ebbfd)

سيُحدَّث جدول PR / الحالة المتجددة (rolling-status) مع وصول النقلات الخلفية.

البناء

root@kitploit:~
# Tiny 38 KB static binary (recommended)
sudo apt-get install musl-tools
make static

# Or just the standard glibc build
make

الناتج: ملف ELF واحد ./charon.

التشغيل

root@kitploit:~
./charon                     # dump /etc/shadow (default)
./charon -q                  # no banner / progress, just shadow on stdout
./charon -v                  # show per-hit + final stats
./charon -r 5000             # more patience for slow systems
./charon -t /etc/ssh/ssh_host_ecdsa_key   # different target (uses ssh-keysign bait)
./charon -a                  # auto-discover SUID/SGID baits if built-ins miss
./charon -L                  # list candidate baits without trying any
./charon --help

الاكتشاف التلقائي

يتجوّل --auto في /usr/bin، /usr/sbin، /usr/local/{bin,sbin}، /usr/lib/openssh، /usr/libexec، /bin، /sbin، ويعثر على كل ملف SUID/SGID عادي (باستثناء الطُعوم التفاعلية مثل su وsudo وnewgrp وpkexec)، ويجرّب كلًّا منها كطُعم ضد الهدف المطلوب. ميزانية كل طُعم ضيقة (5 جولات × 2000 تكرار داخلي) لذا يكتمل الفحص الكامل في ~10 ثوانٍ حتى عندما لا يوجد أيُّ تطابق.

--list-baits هو النسخة للقراءة فقط — يعدّد المرشحين أنفسهم دون إطلاق الاستغلال. مفيد لاستطلاع أيُّ التوزيعات توفّر أيَّ الطُعوم.

أكواد الخروج

الكودالمعنى

الطُعوم

يأتي Charon بأربعة طُعوم SUID معروفة:

إضافة طُعم هي تعديل من 3 أسطر في مصفوفة lures[] داخل charon.c.

إجراءات التخفيف ريثما توفّر توزيعتك النقلَ الخلفي (backport)

  • طبّق 31e62c2ebbfd مباشرة.
  • عطّل pidfd_getfd(2) عبر seccomp على المضيفات الإنتاجية.
  • أزل بِت setuid من chage وpasswd إذا لم تكن بحاجة إلى تمكين المستخدمين غير المميّزين من الاستعلام عن تقادم كلمات المرور.
  • بالنسبة لأحمال العمل داخل الحاويات (containerized workloads)، فإن تفعيل no_new_privs على المضيف يحجب اللبنة الأساسية (primitive) بالكامل — يصبح كل "SUID" داخل الحاوية خاملًا، تاركًا Charon بلا فريسة.

ليس مرشحًا لبرنامج kernelctf VRP

آلة VM الخاصة بتحدي Google kernelctf VRP تشغّل bash الخاص باللاعب داخل صندوق رمل nsjail مع clone_newuser:true (uid 0 غير معيّن)، وchroot:/chroot، وno_new_privs:1. تحت no_new_privs يكون بِت setuid خاملًا، لذا لا توجد فرائس SUID حقيقية داخل الصندوق الرملي، و/flag موجود على المضيف خارج chroot. لذلك لا يمكن لـ Charon الفوز في kCTF VRP. ويظل Charon استغلالًا مشروعًا لرفع الصلاحيات محليًا (LPE) على تثبيتات المعدن العاري من عائلات Debian / Ubuntu / RHEL.

المصدر

  • الثغرة اكتشفتها وكشفت عنها Qualys → oss-security 2026-05-15.
  • إثباتات مفهوم مرجعية من @0xdeadbeefnetwork.
  • يعيد Charon كتابة حلقة الطُعم والسباق (lure-and-race) في ثنائي واحد محصّن، ويضيف سهولة استخدام لواجهة CLI، واكتشافًا تلقائيًا للنواة المصحّحة، وطُعومًا احتياطية حسب التوزيعة.

الترخيص

للاستخدام التعليمي والدفاعي المصرّح به فقط.

root@kitploit:~
                        ⛵ STYX ⛵
              ╔══════════════════════════════╗
              ║  do_exit():                  ║
              ║   ├── exit_mm()   ← task->mm ║
              ║   │                = NULL    ║
              ║   ├── ...      ←  ferry      ║
              ║   └── exit_files()           ║
              ╚══════════════════════════════╝
تنزيل الأداة
التوزيعة
النواة
الحالة (2026-05-15)
Debian trixie6.12.86+deb13❌
AlmaLinux 10.16.12.0-124.55.3❌
Ubuntu 26.047.0.0-15⚠️ تحقّق
Fedora 447.0.4-200⚠️ تحقّق
0
نجاح — محتوى الملف على stdout
1لا يوجد طُعم SUID على هذا النظام يفتح الملف المطلوب
2النواة تبدو مصحّحة (CVE-2026-46333 مغلقة)
3نفدت الجولات دون إصابة (نادر؛ جرّب -r 5000)
4خطأ CLI / IO
الملف الثنائيالملف الذي يفتحهتغطية التوزيعات
/usr/bin/chage (chage -l <user>)/etc/shadowمعظم توزيعات Debian وUbuntu وFedora
/usr/sbin/chage/etc/shadowعائلة RHEL / Rocky / Alma
/usr/bin/passwd (passwd -S <user>)/etc/shadowمعظم التوزيعات
/usr/lib/openssh/ssh-keysign/etc/ssh/ssh_host_*_keyالتوزيعات التي يكون فيها HostbasedAuthentication مفعّلًا