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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
cve-2026-31431-mitigation — تخفيف قائم على Seccomp لثغرة CVE-2026-31431، وهي ثغرة رفع صلاحيات محلية (LPE) في نواة لينكس. تمنع مقبس AF_ALG عبر وحدة PAM وغلاف مستقل، مع اكتشاف تلقائي للنوى المُصحّحة. | Kitploit
أدوات/GitHubGitHub/linux-zs/cve-2026-31431-mitigation
أدوات دفاعيةتحليل الثغرات الأمنيةتدقيق التكوينالمحاكاة الافتراضية للأمان
GitHublinux-zs/cve-2026-31431-mitigation

cve-2026-31431-mitigation

تخفيف قائم على Seccomp لثغرة CVE-2026-31431، وهي ثغرة رفع صلاحيات محلية (LPE) في نواة لينكس. تمنع مقبس AF_ALG عبر وحدة PAM وغلاف مستقل، مع اكتشاف تلقائي للنوى المُصحّحة.

عرض المستودع

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-31431 تخفيف seccomp

حل خفيف وقابل للعكس يعتمد على seccomp لتخفيف CVE-2026-31431، وهي ثغرة تصعيد صلاحيات محلية في نظام Linux kernel في نظام التشفير الفرعي algif_aead / authencesn.

中文文档


نظرة عامة على الثغرة

النوع: تصعيد صلاحيات محلي (LPE)

المكوّن المتأثر: Linux kernel crypto/algif_aead.c - عملية AEAD في المكان

أساس الهجوم: كتابة قابلة للتحكم بحجم 4 بايت في ذاكرة التخزين المؤقت للصفحات لأي ملف قابل للقراءة عبر مسار الكتابة المؤقتة لخوارزمية AEAD authencesn. من خلال استهداف /etc/passwd، يمكن للمهاجم تغيير UID الخاص به إلى 0 (الجذر) والحصول على قشرة جذر عبر su.

النوى المتأثرة: تم التأكيد على النواة 6.12+، 6.17+، 6.18+، وتم إعادة إنتاجها أيضًا على نوى RHEL/CentOS 4.18/5.14.

البيئات المُتحقق منها: Rocky Linux 8 (النواة 4.18) و Rocky Linux 9 (النواة 5.14) - تم حظر الاستغلال بالكامل، وتم تأكيد الإزالة الآمنة.

السبب الجذري: الالتزام 72548b093ee3 أدخل عملية AEAD في المكان. عند استخدام صفحات ذاكرة مخزنة مؤقتًا مقسمة كقائمة تبعثر وجهة، يتم كتابة حقل AAD seqno_lo بشكل غير صحيح مرة أخرى في ذاكرة التخزين المؤقت للصفحات أثناء فك تشفير AEAD.

الإصلاح الرسمي: العودة إلى عملية AEAD خارج المكان.

كيف يعمل هذا التخفيف

يحتوي هذا الحل على مكوّنين:

  1. وحدة PAM (pam_block_afalg.so) - الدفاع الأساسي. يتم تحميلها بواسطة PAM أثناء فتح الجلسة (pam_sm_open_session)، وتطبق مرشح seccomp BPF الذي يحظر socket(AF_ALG, ...) قبل تشغيل أي كود مستخدم. يغطي هذا جميع الجلسات المصادق عليها عبر PAM: su -c، su -، SSH، تسجيل الدخول عبر TTY، إلخ.

  2. الملف الثنائي المستقل (block_afalg) - اختياري. يمكنه تغليف برامج محددة لسيناريوهات غير PAM (مثل مهام cron، خدمات systemd، الاستدعاء اليدوي).

مرشح seccomp:

  • يحظر فقط socket(AF_ALG, ...) (يُرجع EACCES)
  • تأثير صفري على جميع استدعاءات النظام الأخرى (بما في ذلك setuid، su، sudo)
  • يُورث لجميع العمليات الفرعية (fork + exec)
  • يكتشف تلقائيًا النوى المُصححة ويصبح بلا تأثير

البنية

root@kitploit:~
فتح جلسة PAM (su، ssh، login، إلخ.)
  |
  v
pam_block_afalg.so (pam_sm_open_session)
  |
  +-- تحقق: هل النواة معرضة للخطر؟ (محاولة socket(AF_ALG))
  |     |
  |     +-- لا  --> إرجاع PAM_SUCCESS (بلا تأثير)
  |     |
  |     +-- نعم --> prctl(PR_SET_SECCOMP, مرشح BPF)
  |                   |
  |                   +-- مرشح seccomp نشط على عملية sshd الفرعية
  |                   +-- يُورث لقشرة المستخدم وجميع العمليات الفرعية
  |                   +-- socket(AF_ALG, ...) يُرجع EACCES
  v
قشرة المستخدم / الأمر يعمل مع حماية seccomp
  |
  +-- su، sudo، وجميع استدعاءات النظام الأخرى تعمل بشكل طبيعي
  +-- فقط مقبس AF_ALG محظور

الملفات

الملفالغرض
pam_block_afalg.cكود مصدر وحدة PAM. يطبق مرشح seccomp عند فتح الجلسة.

المتطلبات

  • Linux kernel مع دعم seccomp (معظم النوى الحديثة)
  • gcc (للترجمة)
  • libpam (وقت التشغيل، مثبت مسبقًا عادةً)
  • وصول الجذر/sudo (للتثبيت)
  • بنية x86_64 (مرشح BPF يستخدم أرقام استدعاءات نظام x86_64)

البدء السريع

root@kitploit:~
# 1. ترجمة وحدة PAM
gcc -Wall -O2 -fPIC -shared -o pam_block_afalg.so pam_block_afalg.c \
    /usr/lib64/libpam.so.0

# 2. التثبيت (يضيف تلقائيًا إعدادات PAM إلى su، sshd، login)
sudo ./deploy.sh install

# 3. التحقق (يجب أن تكون جلسة جديدة)
cat /proc/self/status | grep Seccomp
# يجب أن يُظهر: Seccomp: 2

python3 -c "
import socket
try:
    s = socket.socket(38,2,0); s.close()
    print('VULNERABLE')
except OSError:
    print('BLOCKED')
"
# يجب أن يُظهر: BLOCKED

# 4. إلغاء التثبيت
sudo ./deploy.sh remove

مرجع الأوامر

الأمرالوصف
deploy.sh installترجمة وحدة PAM، تثبيتها في /lib64/security/، إضافة إعدادات PAM تلقائيًا
deploy.sh removeإلغاء تثبيت كامل: إزالة الوحدة، تنظيف إعدادات PAM، حذف الملفات
deploy.sh status

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

لسيناريوهات غير PAM، استخدم block_afalg مباشرة:

root@kitploit:~
# الترجمة
gcc -Wall -O2 -o block_afalg block_afalg.c

# تشغيل أمر مع حظر AF_ALG
./block_afalg python3 your_script.py
./block_afalg bash

التحقق

التحقق من أن النواة معرضة للخطر

root@kitploit:~
python3 -c "
import socket
try:
    s = socket.socket(38, socket.SOCK_SEQPACKET, 0)
    s.close()
    print('VULNERABLE: AF_ALG socket available')
except:
    print('SAFE: AF_ALG socket blocked or unavailable')
"

التحقق من أن وحدة PAM نشطة

root@kitploit:~
# التحقق من حالة seccomp
cat /proc/self/status | grep Seccomp
# Seccomp: 0 = غير محمي
# Seccomp: 2 = محمي

# اختبار مقبس AF_ALG
python3 -c "
import socket
try:
    s = socket.socket(38,2,0)
    s.close()
    print('AF_ALG available - NOT protected')
except OSError:
    print('AF_ALG blocked - PROTECTED')
"

# التحقق من سجلات PAM
grep pam_block_afalg /var/log/secure
# يجب أن يُظهر: تم تطبيق مرشح seccomp، تم حظر AF_ALG

القيود

  • x86_64 فقط: مرشح BPF يثبت رقم استدعاء النظام 41 (__NR_socket على x86_64). البنى الأخرى تحتاج إلى تحديث رقم استدعاء النظام.
  • يعتمد على PAM: يحمي فقط الجلسات التي تمر عبر PAM. استدعاءات exec() المباشرة بدون PAM غير مغطاة (استخدم block_afalg لها).
  • لا يوجد تعطيل وقت التشغيل: بمجرد تطبيق مرشح seccomp على عملية، لا يمكن إزالته. يضمن فحص النواة تطبيقه فقط عند الحاجة.
  • الجلسات الجديدة فقط: الجلسات الحالية التي بدأت قبل تثبيت الوحدة غير محمية بأثر رجعي.

متى يتم الإزالة

  1. تم تطبيق تصحيح النواة الرسمي - تكتشف وحدة PAM هذا تلقائيًا، ولكن يمكنك أيضًا التنظيف باستخدام remove.
  2. RHEL/CentOS يصدر نواة مُصححة - yum update kernel ثم إزالة الوحدة.

الترخيص

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

تنزيل الأداة
pam_minimal.h
تعريفات أنواع PAM الحد الأدنى (يُترجم بدون pam-devel).
block_afalg.cملف ثنائي مستقل لتغليف seccomp. للاستخدام غير PAM.
deploy.shسكربت النشر. يُترجم، يُثبت، ويدير وحدة PAM.
عرض حالة التثبيت، إعدادات PAM، حالة النواة