
# CVE-2026-31431 Copy Fail سكربت كشف ثغرة نواة لينكس
CVE-2026-31431 (Copy Fail) هي ثغرة رفع صلاحيات محلية في نواة لينكس، تستغل مقبس AF_ALG (عائلة العناوين 38) مع استدعاء النظام splice() للنسخ صفرية النسخ، لتجاوز صلاحيات الكتابة والتلاعب بذاكرة التخزين المؤقت للصفحات (page cache)، مما يتيح التلاعب بملفات SUID الثنائية دون صلاحية كتابة، وبالتالي الحصول على صلاحيات root.
socket(AF_ALG, SOCK_SEQPACKET, 0) # إنشاء مقبس AF_ALG
-> bind(authencesn(hmac(sha256),cbc(aes))) # ربط قالب تشفير AEAD
-> sendmsg(عملية AEAD) # تشغيل مسار التشفير في النواة
-> splice(-> الملف الهدف) # كتابة صفرية النسخ، تجاوز فحوصات الصلاحيات
-> التلاعب بملفات SUID مثل /usr/bin/su # رفع الصلاحيات إلى root
| فرع النواة | النطاق المتأثر | الإصدار المُصلَح |
|---|---|---|
| mainline / 6.19.x | < 6.19.12 | >= 6.19.12 |
| 6.18.x (stable) | < 6.18.22 | >= 6.18.22 |
| 6.12.x (LTS) | < 6.12.23 | >= 6.12.23 |
| 6.6.x (LTS) | < 6.6.87 | >= 6.6.87 |
| 6.1.x (LTS) | < 6.1.130 | >= 6.1.130 |
| 4.14 ~ < 7.0 | جميعها متأثرة | الترقية إلى إصدار آمن |
| < 4.14 | غير متأثرة | - |
| >= 7.0 | يتضمن الإصلاح | - |
# تحميل السكربت
wget https://raw.githubusercontent.com/tangjie1/CVE-2026-31431-Check/main/cve-2026-31431-check.sh
# منح صلاحية التنفيذ وتشغيله (يتطلب صلاحيات root)
chmod +x cve-2026-31431-check.sh
sudo ./cve-2026-31431-check.sh
# وضع غير تفاعلي (مناسب للأتمتة/CI)
sudo ./cve-2026-31431-check.sh --non-interactive
| الرقم | محتوى الفحص | الوصف |
|---|---|---|
| [1.0] | جدول نطاقات الإصدارات المتأثرة | عرض مقارنة الإصدارات المتأثرة/المُصلَحة لكل فرع |
| [1.1] | إصدار النواة | المقارنة مع النطاقات المتأثرة المعروفة وخطوط الأساس المُصلَحة |
| [1.2] | حالة وحدة algif_aead | أربع حالات: مدمجة / محمّلة / موجودة وقابلة للتحميل عند الحاجة / غير موجودة |
| [1.3] | قالب التشفير authencesn | هل هو متاح في /proc/crypto |
| [1.4] | الإجراءات التخفيفية | initcall_blacklist + قائمة الحظر في modprobe.d |
| [1.5] | التقييم الشامل | استنتاج متعدد العوامل يعطي نتيجة safe/medium/high/critical |
| الرقم | محتوى الفحص | الوصف |
|---|---|---|
| [2.1] | فحص ذاكرة التخزين المؤقت لـ SUID | مقارنة dd direct I/O مع تجزئة ذاكرة التخزين المؤقت |
| [2.2] | سجل تحميل الوحدات | dmesg + مدة تحميل lsmod |
| [2.3] | فحص سجل Shell | مطابقة الكلمات المفتاحية في .bash_history لجميع المستخدمين |
| [2.4] | فحص ملفات النظام | مستخدمون غير طبيعيين UID=0 / وقت تعديل passwd و SUID |
| [2.5] | فحص الدلائل المؤقتة | ملفات مشبوهة في /tmp /var/tmp /dev/shm خلال آخر 24 ساعة |
| [2.6] | تدقيق سجلات النظام | سجلات فشل su + كلمات مفتاحية لثغرات sudo |
| [2.7] | كشف الهروب من الحاويات | بيئة Docker + seccomp + /proc/1/root |
| الطريقة | المبدأ | هل تتطلب إعادة تشغيل؟ | سيناريو الاستخدام |
|---|---|---|---|
| الطريقة الأولى | قائمة حظر modprobe.d + rmmod | لا | CONFIG=m (وضع الوحدة) |
| الطريقة الثانية | معامل النواة initcall_blacklist | نعم | CONFIG=y (الوضع المدمج) أو دفاع عميق |
| الطريقة الثالثة | ترقية النواة إلى إصدار آمن | نعم | إصلاح دائم (موصى به) |
Ubuntu / Debian / Kali / CentOS / RHEL / Rocky / AlmaLinux / Fedora / openSUSE / Arch Linux / Alpine Linux
MIT License
هذه الأداة مخصصة للبحث الأمني واختبارات الاختراق المصرح بها فقط. يجب على المستخدم ضمان الامتثال للقوانين واللوائح المحلية، واستخدامها على الأنظمة المستهدفة التي حصل على إذن صريح لاختبارها. المطور غير مسؤول عن أي عواقب ناتجة عن الاستخدام غير المصرح به.