
أداة تشخيص سلبية تتحقق مما إذا كان نظام لينكس عرضة لثغرة CVE-2026-31431 من خلال اختبار قابلية الوصول إلى مقبس AF_ALG، مع توفير إرشادات التخفيف ورموز خروج مناسبة لبيئات التكامل المستمر.
سكربت بايثون بسيط وآمن يحدد ما إذا كان نظام لينكس معرضًا لثغرة CVE-2026-31431 ("Copy Fail")، وهي ثغرة تصعيد صلاحيات محلية تؤثر على جميع التوزيعات الرئيسية منذ نواة 4.14.
CVE-2026-31431 هي خلل منطقي مباشر في وحدة مآخذ التشفير algif_aead في نواة لينكس. من خلال استخدام مآخذ AF_ALG مع splice()، يمكن لمهاجم غير مميز الكتابة فوق 4 بايتات في ذاكرة التخزين المؤقت للصفحات لملف ثنائي setuid والحصول على صلاحيات الجذر.
| الخاصية | التفاصيل |
|---|
| شرط سباق مطلوب | ❌ لا – الاستغلال حتمي |
| إزاحات نواة مطلوبة | ❌ لا – لا حاجة لإزاحات خاصة بالإصدار |
| تعقيد الاستغلال | سكربت بايثون واحد بحجم 732 بايت كافٍ للحصول على الجذر |
| هذه الأداة | تشخيص سلبي فقط – لا تستغل الثغرة |
يحاول السكربت إنشاء وربط مأخذ AF_ALG باستخدام قالب الخوارزمية الدقيق الذي تعتمد عليه الثغرة:
authencesn(hmac(sha256),cbc(aes))
| النتيجة | المعنى |
|---|---|
| تم إنشاء المأخذ وربطه | مسار الكود المعرض للخطر قابل للوصول – قم بالتصحيح فورًا |
EAFNOSUPPORT (errno 97) | الوحدة غير محملة – سطح الهجوم غير متاح |
Permission denied | سياسة MAC (SELinux/AppArmor) تمنع الوصول – آمن |
السكربت لا يستغل الثغرة بأي شكل من الأشكال. إنه سلبي تمامًا وآمن للتشغيل.
استنسخ المستودع أو حمّل check_copyfail.py، ثم شغّل:
python3 check_copyfail.py
____ _____ _ _
/ ___|___ _ __ _ _| ___|_ _(_) |
| | / _ \| '_ \| | | | |_ / _` | | |
| |__| (_) | |_) | |_| | _| (_| | | |
\____\___/| .__/ \__, |_| \__,_|_|_|
|_| |___/
CVE-2026-31431 "Copy Fail" – أداة فحص قابلية الوصول
Phalanx CCS / d_0_4 | للاستخدام الدفاعي فقط
-------------------------------------------------------
إصدار النواة: 6.1.0-28-amd64
نطاق الإصدار : نطاق متأثر محتمل
هدف AF_ALG : authencesn(hmac(sha256),cbc(aes))
[!!!] سطح الهجوم المعرض للخطر قابل للوصول
تم إنشاء المأخذ وربطه – AF_ALG قابل للوصول
التخفيف الفوري:
echo 'install algif_aead /bin/false' | sudo tee /etc/modprobe.d/disable-algif-aead.conf
sudo rmmod algif_aead 2>/dev/null
ثم قم بتحديث النواة بمجرد توفر التصحيحات.
الإصلاح الرسمي: commit a664bf3d603d
يخرج السكربت بالرمز 1 إذا كان سطح الهجوم قابلًا للوصول، و**0** إذا كان النظام آمنًا — مما يجعله مناسبًا للاستخدام في سكربتات الصدفة، وplaybooks الخاصة بـ Ansible، وخطوط CI.
حتى يتوفر تحديث النواة، قم بتعطيل الوحدة المعرضة للخطر:
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif-aead.conf
sudo rmmod algif_aead 2>/dev/null
الإصلاح الرسمي هو commit a664bf3d603d في النواة الرئيسية. قم بالتحديث عبر مدير الحزم الخاص بتوزيعتك بمجرد توفر التصحيحات.
ستبلغ هذه الأداة دائمًا بأن النظام آمن على أجهزة Android الحديثة (بما في ذلك Termux). مأخذ AF_ALG غير متاح للتطبيقات غير المميزة بسبب سياسات SELinux الإلزامية، لذا فإن الثغرة غير قابلة للاستغلال على إصدارات Android القياسية.
هذا المشروع مرخص بموجب رخصة MIT – راجع LICENSE للحصول على التفاصيل. لا تتردد في الاستخدام والتعديل والتوزيع.
إخلاء مسؤولية: هذه الأداة لأغراض التشخيص الدفاعي فقط.
لا تستخدمها على أنظمة لا تملكها أو دون إذن كتابي صريح.