
أعدت إنتاج ثغرة LPE عديمة الملفات CVE‑2026‑31431 (“Copy Fail”) على Kali Linux، ثم صممت كشوفات auditd وSigma وYARA لرصد هذا الاستغلال الخفي للنواة الذي لا يترك أي أثر على القرص.
يوثّق هذا المستودع عملية الاستنساخ من البداية إلى النهاية، وهندسة الكشف، والاستجابة للحوادث لثغرة CVE-2026-31431 ("Copy Fail")، وهي ثغرة حرجة لتصعيد الصلاحيات محليًا في نواة لينكس تؤثر على النوى من 4.14 حتى 7.0-rc.
Copy Fail هي خلل منطقي وليس تلفًا في الذاكرة. إنها حتمية التصرف، وتؤثر تقريبًا على كل توزيعات لينكس الصادرة منذ 2017، وهي بلا ملفات تمامًا — لا يمكن لأنظمة مراقبة سلامة الملفات التقليدية (AIDE, Tripwire) رؤيتها. يتكون إثبات المفهوم العملي من 732 بايت فقط من Python.
| المكوّن | التفاصيل |
|---|---|
| المشغّل الافتراضي | VirtualBox |
| الجهاز الظاهري الهدف | Kali Linux 2026.1 |
| النواة | 6.18.12+kali-amd64 |
| إثبات المفهوم للاستغلال | theori-io/copy-fail-CVE-2026-31431 |
| الكشف | auditd, Sigma, YARA |
يبدأ المختبر بالتأكد من أن الجهاز المستهدف يعمل بنواة قابلة للاستغلال.
تفاصيل إصدار Kali Linux 2026.1 والنواة.
مخرجات uname -r تُظهر النواة القابلة للاستغلال 6.18.12+kali-amd64.
يتطلب الاستغلال وحدة النواة algif_aead وقالب التشفير authencesn.
الوحدة محمّلة
يؤكد كل من lsmod وmodinfo توفر algif_aead؛ ويُظهر /proc/crypto القالب القابل للاستغلال authencesn.
يستخدم إثبات المفهوم os.splice، الذي يتطلب بايثون 3.10 أو أحدث. نتحقق من المفسّر.
إصدار بايثون تم تثبيت بايثون 3.12 وهو جاهز.
قبل تشغيل الاستغلال الكامل، يؤكد فاحص آمن أن النظام قابل للاستغلال.
يُبلغ الفاحص بأن النظام "ربما يكون قابلاً للاستغلال"، مما يمهد الطريق للاستغلال.
يتم إنشاء حساب testuser بدون صلاحيات لمحاكاة مهاجم ليس لديه حقوق خاصة.
يُظهر id UID 1001، مما يؤكد الوصول غير الجذري.
يتم استنساخ إثبات المفهوم الرسمي من Theori وتنفيذه من حساب غير مميز.
تم استنساخ مستودع الاستغلال بنجاح.
تنفيذ الاستغلال
يستبدل استغلال بايثون ذاكرة التخزين المؤقت للصفحات ويُفعّل ملف /usr/bin/su التالف.
مخرجات whoami وid تثبت تصعيد الصلاحيات الكامل إلى الجذر.
لا يُفسد الاستغلال سوى ذاكرة التخزين المؤقت للصفحات في الذاكرة. يحتفظ ملف /usr/bin/su الموجود على القرص بمجموع الاختبار الأصلي.
تطابق SHA256
يتطابق sha256sum مع تجزئة الحزمة الأصلية حتى بعد الاستغلال، مما يؤكد عدم تعديل القرص.
لا يمكن كشف Copy Fail عبر مراقبة سلامة الملفات. وبدلاً من ذلك، نركّز على البدائيات على مستوى استدعاءات النظام التي تستخدمها.
ننشر قواعد auditd مخصصة تعمل عند:
AF_ALG (العائلة 38)splice()
جميع القواعد المخصصة نشطة، وتم التحقق منها باستخدام auditctl -l.
بعد تشغيل الاستغلال مرة ثانية، نرى تنبيهات لاستدعاءات النظام المحددة المستخدمة:
يُظهر ausearch حدث إنشاء مقبس AF_ALG من عملية testuser.
يُظهر ausearch حدث splice() من نفس PID، وهو ارتباط قوي.
تُترجم قاعدة Sigma نتائج auditd إلى صيغة SIEM محايدة تجاه البائع.
قاعدة Sigma بصيغة YAML تكشف إنشاء مقبس AF_ALG واستدعاءات splice().
تساعد قاعدة YARA في تحديد كود استغلال Copy Fail على القرص.
قاعدة YARA تطابق سلسلة authencesn وثوابت المقابس ومراجع splice() الموجودة في إثباتات المفهوم.
يتوفر تقرير كامل للاستجابة للحوادث في reports/incident-copy-fail.md. ويتضمن:
تخفيف فوري (لا يتطلب إعادة تشغيل):
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif.conf
sudo rmmod algif_aead
| الطبقة | ما تراه | الحالة |
|---|
| auditd | استدعاءات مقبس AF_ALG و splice | ✅ تم النشر |
| Sigma | أنماط استدعاءات النظام عبر SIEM | ✅ القاعدة جاهزة |
| YARA | كود إثبات المفهوم على القرص | ✅ القاعدة جاهزة |
| FIM (AIDE/Tripwire) | تغييرات الملفات | ❌ عمياء – لا يحدث أي كتابة على القرص |