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