سكربت فحص ثغرة 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
إصدارات النواة المتأثرة
وظائف السكربت
- كشف الثغرة: تحديد إصدار النواة + تحليل الحالات الأربع لـ algif_aead + فحص الإجراءات التخفيفية
- فحص الاختراق: مقارنة ذاكرة التخزين المؤقت لـ SUID + سجل تحميل الوحدات + فحص سجل Shell + سلامة ملفات النظام + تدقيق السجلات + كشف الحاويات
- توصيات الإصلاح: ثلاث طرق دفاعية (modprobe.d / initcall_blacklist / ترقية النواة)، مع أوامر محددة حسب التوزيعة
- الاستجابة للطوارئ: إخراج إجراءات استجابة كاملة تلقائيًا عند اكتشاف علامات اختراق
الاستخدام السريع
# تحميل السكربت
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/3]
الجزء الثاني: فحص الاختراق [2/3]
الجزء الثالث: توصيات الإصلاح [3/3]
الأنظمة المتوافقة
Ubuntu / Debian / Kali / CentOS / RHEL / Rocky / AlmaLinux / Fedora / openSUSE / Arch Linux / Alpine Linux
الترخيص
MIT License
إخلاء المسؤولية
هذه الأداة مخصصة للبحث الأمني واختبارات الاختراق المصرح بها فقط. يجب على المستخدم ضمان الامتثال للقوانين واللوائح المحلية، واستخدامها على الأنظمة المستهدفة التي حصل على إذن صريح لاختبارها. المطور غير مسؤول عن أي عواقب ناتجة عن الاستخدام غير المصرح به.