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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
check-cve-2026-23111 — سكربت للتحقق مما إذا كانت الأنظمة معرضة للثغرة cve-2026-23111 | Kitploit
أدوات/GitHubGitHub/criann/check-cve-2026-23111
تصعيد الامتيازاتماسحات الثغرات الأمنيةتحليل الثغرات الأمنيةتدقيق التكويناستخبارات التهديداتالتعلم والتعليمالاستجابة للحوادث
GitHubcriann/check-cve-2026-23111

check-cve-2026-23111

سكربت للتحقق مما إذا كانت الأنظمة معرضة للثغرة cve-2026-23111

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

الأكثر شعبية

عرض الكل →

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

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

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

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

سكريبت التحقق الدفاعي CVE-2026-23111

نظرة عامة

CVE-2026-23111 هي ثغرة في نواة لينكس في nf_tables يمكن استغلالها لتصعيد الامتيازات محليًا بواسطة مستخدم غير ممتاز على الأنظمة التي تتوفر فيها مساحات أسماء المستخدمين و nftables.[1][2] النشرات الاستشارية من البائعين والحكومات تصفها كمشكلة محلية تؤثر على توزيعات لينكس وتؤكد على التصحيح كإصلاح أساسي.[3][4]

يحتوي هذا المستودع على سكريبت تحقق دفاعي مصمم للمساعدة في تقييم ما إذا كان المضيف يعرض الشروط التقنية المرتبطة بهذه الثغرة دون توفير استغلال لتصعيد الامتيازات. يتحقق من ظروف النواة ووقت التشغيل ذات الصلة، ويحمل وحدة nf_tables اختياريًا للاختبار الوظيفي الكامل، ويحاول مسار تحقق غير ممتاز باستخدام unshare و nft، ويجمع سجلات تشخيصية محلية، ويصنف المضيف إلى أحكام تشغيلية مثل آمن على الأرجح، محظور بواسطة سياسة محلية، أو مسار مكشوف متاح.[1][5]

ما هي الثغرة CVE

وفقًا لـ NVD، فإن CVE-2026-23111 هي ثغرة في nf_tables بنواة لينكس تم حلها كإصلاح لخطأ منطقي في netfilter ويمكن استغلالها لتصعيد الامتيازات محليًا من مستخدم غير ممتاز عبر مساحات أسماء المستخدمين و nftables على التكوينات المتأثرة.[1] تصف نشرة أوبونتو الأمنية نفس مسار الاستغلال عالي المستوى وتتتبع حالات الحزم المتأثرة والثابتة حسب الإصدار.[2]

صرحت ريد هات أن مستخدمًا محليًا منخفض الامتيازات قد يستغل المشكلة لإحداث رفض الخدمة أو ربما تحقيق تصعيد الامتيازات، وتوثق مسار تخفيف يعتمد على منع تحميل وحدة nf_tables عندما يكون ذلك مقبولًا تشغيليًا.[3] كما تشير التوجيهات الوطنية من المركز الكندي للأمن السيبراني المؤسسات المتأثرة إلى تحديثات البائعين وتذكر إعادة إنشاء initramfs عند استخدام إجراءات منع تحميل الوحدة.[4]

ما يفعله السكريبت

السكريبت مخصص لتقييم التعرض الدفاعي، وليس للاستغلال. وهو مصمم لـ:

  • التعرف على النواة قيد التشغيل، عائلة التوزيع، وإعدادات التعزيز الصلبة ذات الصلة وقت التشغيل.
  • التحقق مما إذا كان CONFIG_USER_NS و CONFIG_NF_TABLES موجودين على ما يبدو.[1]
  • فحص kernel.unprivileged_userns_clone و user.max_user_namespaces لتقدير ما إذا كانت مساحات أسماء المستخدمين غير المميزة متاحة.
  • اكتشاف ما إذا كان هناك رفض صارم (hard modprobe deny) (install nf_tables /bin/false) أو قائمة سوداء ضعيفة لوحدة nf_tables.
  • التحقق من سجل تغييرات حزمة النواة RPM للبائع بحثًا عن إدخال backport لـ CVE-2026-23111 (عائلة RHEL فقط).
  • بصمة /proc/kallsyms للرمز الضعيف (nft_map_catchall_activate) مقابل الرمز بعد التصحيح (nft_catchall_set_activate) قبل أي تفاعل مع الوحدة.
  • تحميل nf_tables اختياريًا عبر modprobe عند تحديد --allow-load-module (انظر أدناه)، وإلغاء تحميلها تلقائيًا عند الخروج.

يخزن السكريبت السجلات في دليل فرعي لدليل السكريبت ويزيلها افتراضيًا ما لم يتم استخدام --keep-logs.

سياسة تحميل الوحدة

افتراضيًا، لا يقوم السكريبت أبدًا بتحميل nf_tables. إذا لم تكن الوحدة محملة بالفعل عند بدء السكريبت، يتم تخطي جميع اختبارات nft الوظيفية ويتم اشتقاق الحكم فقط من إصدار النواة، بصمة kallsyms، تكوين modprobe، سجل تغييرات RPM، وأدلة sysctl/LSM.

هذا الإعداد الافتراضي المحافظ يتجنب توسيع سطح الهجوم عن غير قصد على المضيفين الإنتاجيين. لتمكين الاختبار الوظيفي الكامل على نظام خاضع للرقابة أو مخصص للأدوات، استخدم --allow-load-module كجذر (انظر أدناه).

الاستخدام

root@kitploit:~
# الافتراضي — لا تحميل وحدة، حكم يعتمد فقط على أدلة السياسة
./check_cve_2026_23111.sh
./check_cve_2026_23111.sh --color
./check_cve_2026_23111.sh --keep-logs
./check_cve_2026_23111.sh --color --keep-logs

# اختبار وظيفي كامل — تحميل (وإلغاء تحميل) nf_tables، يتطلب صلاحيات الجذر
sudo ./check_cve_2026_23111.sh --allow-load-module
sudo ./check_cve_2026_23111.sh --allow-load-module --color --keep-logs

الخيارات

متى تستخدم --allow-load-module

استخدم --allow-load-module عندما تحتاج إلى أعلى حكم موثوق على جهاز افتراضي معزول أو غير إنتاجي أو مبني لغرض الاختبار. السيناريوهات النموذجية:

  • التحقق من صحة نواة في النطاق الضعيف قبل نشر إصلاح البائع.
  • نظام الاختبار مزود بـ KASAN أو أدوات قياس أخرى وتريد ملاحظة آثار النواة.
  • الوحدة غير مستخدمة على المضيف الهدف وهناك حاجة لفحص مسار كامل من البداية إلى النهاية كدليل تدقيق.

لا تستخدم --allow-load-module على المضيفين الإنتاجيين حيث يتم حظر nf_tables عن قصد أو حيث سيؤدي تحميلها إلى انتهاك سياسة التعزيز.

بوابات الأمان لـ --allow-load-module

قبل محاولة تحميل الوحدة، يفرض السكريبت الفحوصات التالية وينهي التشغيل بخطأ إذا فشل أي منها:

  1. يجب ألا يكون هناك رفض صارم لـ modprobe (install nf_tables /bin/false) في /etc/modprobe.d/.
  2. يجب أن يكون modprobe متاحًا على النظام.
  3. يجب تشغيل السكريبت كجذر (uid 0).

إذا تم تحميل الوحدة بنجاح بواسطة السكريبت، يتم استدعاء modprobe -r nf_tables عند الخروج عبر مصيدة cleanup()، بغض النظر عن كيفية إنهاء السكريبت (نجاح، خطأ، أو CTRL+C).

نموذج الحكم

يستخدم السكريبت أحكامًا تشغيلية بدلاً من نتائج الاستغلال:

تهدف هذه الأحكام إلى دعم تحديد أولويات التصحيح والفرز الدفاعي، وليس لتحل محل التحقق من حالة حزمة البائع.

تغطية إصدارات النواة

يقوم السكريبت بمطابقة النواة قيد التشغيل مع نقاط الإصلاح الموثقة من المنبع:

التخفيف الموصى به

الإجراء الأساسي الموصى به هو تثبيت تحديث النواة المُصلح من البائع وإعادة التشغيل إلى النواة المصححة.[2][3][4] نظرًا لأن الاستغلال يعتمد على سطح هجوم النواة المحلي، يمكن أن يقلل التعزيز الإضافي من التعرض أثناء جدولة التصحيح أو التحقق منه.[5][6]

الإجراءات ذات الأولوية

  1. تصحيح النواة باستخدام النشرة الاستشارية الرسمية للتوزيعة وإعادة التشغيل إلى الإصدار المُصلح.[2][3][4]
  2. تقييد مساحات أسماء المستخدمين غير المميزة حيثما تسمح متطلبات العمل، لأن مسار الهجوم الموثق يعتمد على توفرها للمستخدمين غير المميزين.[1][5][6]
  3. تعطيل أو حظر تحميل nf_tables إذا كان النظام لا يتطلب وظائف nftables وتم التحقق من تأثير التغيير التشغيلي.[3][4]
  4. تحديد إمكانيات الشبكات المميزة مثل مسارات الوصول التي تتضمن CAP_NET_ADMIN، وتقليل عدد الحسابات التي يمكنها معالجة حالة جدار الحماية.[5]

أمثلة على خطوات التعزيز

تقييد مساحات أسماء المستخدمين غير المميزة:

root@kitploit:~
echo 'kernel.unprivileged_userns_clone=0' > /etc/sysctl.d/99-cve-2026-23111.conf
echo 'user.max_user_namespaces=0' >> /etc/sysctl.d/99-cve-2026-23111.conf
sysctl --load /etc/sysctl.d/99-cve-2026-23111.conf

حظر تحميل وحدة nf_tables عندما يكون آمنًا تشغيليًا:

root@kitploit:~
echo 'install nf_tables /bin/false' > /etc/modprobe.d/disable-nf_tables.conf
rmmod nf_tables 2>/dev/null || true

إذا تم استخدام تخفيف تحميل الوحدة، توصي بعض التوجيهات بإعادة إنشاء initramfs حتى لا يتم تحميل الوحدة المحظورة أثناء الإقلاع المبكر.[4]

ملاحظة خاصة بأوبونتو

توثق أوبونتو قيود AppArmor لمساحات أسماء المستخدمين غير المميزة كطريقة لتقليل سطح الهجوم وليس كبديل كامل لإصلاحات النواة.[6] قد يبدو المضيف أقل تعرضًا في اختبار وقت التشغيل لأن مسار الهجوم محظور محليًا، بينما لا يزال العلاج طويل المدى يتطلب تثبيت حزمة النواة المُصلحة من البائع.[2][6] يتحقق السكريبت من فعالية قيود AppArmor من خلال محاولة استدعاء unshare --user فعلي والتحقق مما إذا كانت CAP_NET_ADMIN داخل مساحة اسم مستخدم+شبكة فعالة.

ملاحظة خاصة بـ Red Hat

تدرج Red Hat بشكل صريح منع تحميل وحدة nf_tables كتخفيف لـ CVE-2026-23111 عندما يكون هذا التغيير مناسبًا للبيئة.[3] يكتشف السكريبت هذا التكوين عبر check_modprobe_deny() ويميز بين الرفض الصارم (install nf_tables /bin/false، الذي يمنع التحميل عند الطلب) والقائمة السوداء الضعيفة (التي لا تمنع). على أنظمة عائلة RHEL، يفحص السكريبت أيضًا سجل تغييرات RPM للنواة قيد التشغيل بحثًا عن إدخال backport لـ CVE-2026-23111، مما يتيح حكمًا مؤكدًا من البائع بغض النظر عن رقم الإصدار المنبع.

المراجع الرسمية

  • NVD: تفاصيل CVE-2026-23111 [1]
  • أمان أوبونتو: CVE-2026-23111 [2]
  • أمان Red Hat: CVE-2026-23111 [3]
  • نشرة المركز الكندي للأمن السيبراني: AL26-011 [4]
  • نظرة عامة على قيود مساحة اسم المستخدم في AppArmor لأوبونتو: فهم قيود مساحة اسم المستخدم في AppArmor [6]

النطاق والسلامة

هذا الـ README والسكريبت المرافق مخصصان للتحقق الدفاعي، والجرد، وتخطيط التخفيف. لا يحلان محل توجيهات البائع، أو التحقق على مستوى الحزمة، أو عمليات إدارة التصحيح القياسية، ولا ينبغي استخدامهما كبديل لتطبيق الإصلاحات الرسمية الموصوفة في النشرات الاستشارية المرتبطة.[2][3][4]


📚 مستودع أبحاث أمنية تعليمي

مستودع للتعلم والاختبار والبحث في مفاهيم الأمن السيبراني في بيئات خاضعة للرقابة.


⚠️ إخلاء مسؤولية أمني وقانوني

الغرض

هذا المستودع مخصص للأغراض التعليمية وأبحاث الأمن المصرح بها فقط.

صُمم لمساعدة المستخدمين على التعرف على:

  • الثغرات الأمنية
  • مفاهيم العزل والحماية
  • الممارسات الآمنة في البرمجة والدفاع

الاستخدام المصرح به فقط

استخدم هذا المستودع فقط في البيئات التي لديك إذن فيها، مثل:

  • مختبرات شخصية أو أجهزة افتراضية
  • بيئات Docker أو معزولة
  • اختبار الاختراق المصرح به
  • التدريب على الأمن السيبراني أو البحث الأكاديمي

الاستخدام غير المصرح به أو غير القانوني ممنوع تمامًا.


عدم وجود مسؤولية

المؤلف والمساهمون غير مسؤولين عن أي ضرر أو سوء استخدام أو مشاكل قانونية أو خسائر ناتجة عن هذا المشروع.

باستخدام هذا المستودع، فإنك توافق على أن:

  • أنت مسؤول عن أفعالك
  • ستستخدمه بشكل قانوني وأخلاقي
  • يتم توفير المشروع بدون ضمان

الاستخدام الأخلاقي

هذا المشروع مخصص من أجل:

  • أبحاث الأمن الدفاعي
  • تعليم الأمن السيبراني
  • الوعي بالثغرات
  • أبحاث الأنظمة والبرمجيات الآمنة

يرجى اتباع ممارسات الإفصاح المسؤولة والامتثال لجميع القوانين المعمول بها.


الاتصال

للإفصاح المسؤول أو التعاون، اتصل بمشرف المستودع عبر GitHub.

تنزيل الأداة
  • تشغيل خطوة تحقق مقيدة unshare -U -n --map-root-user + nft عند تحميل الوحدة، وتسجيل stdout و stderr وسجلات النواة الأخيرة.
  • التحقق من أن unshare --user ينشئ بالفعل مساحة اسم وأن CAP_NET_ADMIN فعال بداخلها، لتأكيد ما إذا كانت قيود AppArmor أو SELinux فعالة حقًا.
  • تسليط الضوء على ما إذا كانت عناصر التحكم الأمنية المحلية مثل AppArmor أو SELinux تمنع المسار المختبر.[6]
  • إخراج مخرجات تعتمد على الحكم مع تمييز ألوان اختياري لتسهيل الفرز.
  • الخيارالوصف
    --allow-load-moduleتفويض السكريبت لتحميل nf_tables عبر modprobe إذا لم تكن الوحدة محملة بالفعل. يتيح تشغيل أداة تمرين مسار الالتقاط الكامل nft واختبار فعالية CAP_NET_ADMIN. يتم إلغاء تحميل الوحدة تلقائيًا عند الخروج. يتطلب صلاحيات الجذر. يُرفض إذا كان هناك رفض صارم لـ modprobe قيد التنفيذ بالفعل. استخدم فقط على أنظمة غير إنتاجية أو مخصصة للأدوات.
    --colorتمكين إخراج stdout ملون عندما يدعم الطرفية ذلك.
    --keep-logsالاحتفاظ بالسجلات والآثار تحت دليل السكريبت بدلاً من حذفها عند الخروج.
    --helpطباعة معلومات الاستخدام والخروج.
    الحكمالمعنى
    not-affectedإصدار النواة أقل من 5.13؛ ميزة عنصر الالتقاط لم تُقدم بعد ومسار الشفرة الضعيفة غير موجود.
    likely-patched-vendor-confirmedتم العثور على CVE-2026-23111 في سجل تغييرات RPM لنواة البائع، مما يؤكد وجود backport للإصلاح بغض النظر عن الإصدار المنبع.
    likely-patched-upstream-confirmedإصدار النواة ضمن النطاق المُصلح المنبع و اختبار nft الوظيفي أعاد قيمة غير صفرية بدون إشارة نواة — أقوى دليل ثابت + ديناميكي على حالة آمنة.
    likely-patched-upstreamإصدار النواة ضمن نطاق مُصلح منبع ولكن لم يتم تشغيل الاختبار الوظيفي (الوحدة غائبة، أو غير حاسمة). يجب التحقق من حالة نشرة البائع الاستشارية.
    likely-safe-or-patchedلم يتم تأكيد أي مسار قابل للاستغلال بواسطة السكريبت؛ السبب غامض بين نواة مُصلحة، أو غياب الشفرة الضعيفة، أو حظر محلي ضمني.
    blocked-by-local-policyيبدو أن المسار المختبر محظور بواسطة AppArmor، SELinux، قيود مساحة اسم المستخدم، أو رفض modprobe.[6] الحظر السياسي ليس بديلاً عن إصلاح البائع.
    exposed-path-availableالمضيف يعرض مسار userns + nftables متوافق مع متطلبات الاستغلال الموثقة.[1][5]
    strong-signal-lab-confirmationتمت ملاحظة إشارة سجل نواة متوافقة مع تلف الذاكرة المرتبط بـ nf_tables. تأكد فقط في مختبر مخصص للأدوات قابل للاستبدال.
    prerequisites-missingأدوات التشخيص المطلوبة (unshare، nft) مفقودة؛ لم يكتمل أي تحقق وقت تشغيل ذي معنى.
    الفرعثابت فيالالتزام المنبع
    6.13.x+≥ 6.13.1f41c5d1
    6.12.x≥ 6.12.128c760ba
    6.6.x≥ 6.6.75b9b6573
    6.1.x≥ 6.1.1288b68a45
    6.2–6.5, 6.7–6.11منتهي الدعم منبعًاbackport من التوزيعة فقط
    5.15.xيعتمد على التوزيعةأمازون لينكس: ALAS2KERNEL-5.15-2026-098
    5.10.xيعتمد على التوزيعةأمازون لينكس 2: معلق حتى مارس 2026
    5.4.xيعتمد على التوزيعةأمازون لينكس 2: معلق حتى مارس 2026
    5.13–5.14منتهي الدعم منبعًاbackport من التوزيعة فقط
    < 5.13غير متأثرميزة الالتقاط غير موجودة