
🔐 دراسة حالة كاملة لـ CVE-2026-31431 (CopyFail) — ثغرة حرجة لتصعيد الامتيازات في نواة لينكس. تتضمن تحليلًا تقنيًا، ونصوص التحقق، والتقوية، ودليل الاستجابة للحوادث. لأغراض تعليمية.
دراسة حالة كاملة — كيف تم اكتشافها، وكيف تعمل، وكيف تختبرها، وكيف تعيد إنتاجها (في بيئة آمنة)، وكيف تصلح الثغرة الحرجة التي تؤثر على جميع توزيعات لينكس تقريبًا منذ 2017.
هذا المستودع لأغراض تعليمية حصرًا. المعلومات الواردة هنا موجهة لمحترفي الأمن والباحثين وطلاب الأمن السيبراني. لا تستخدم أبدًا أي تقنية موصوفة هنا على أنظمة دون إذن صريح. قد يشكل الاستخدام غير المشروع لهذه المعلومات جريمة وفقًا للقانون رقم 12.737/2012 (قانون كارولينا ديكمان) والإطار المدني للإنترنت (القانون رقم 12.965/2014).
| الحقل | التفاصيل |
|---|---|
| معرف CVE | CVE-2026-31431 |
| الاسم المستعار | CopyFail |
| النوع | تصعيد صلاحيات محلي (LPE) — Escalada de Privilégio |
| درجة CVSS | 8.8 (عالية) / قد تكون حرجة عند الربط مع ثغرات أخرى |
| المكوّن | نواة لينكس — آلية نسخ البيانات |
| الإصدارات | نواة لينكس ≤ 7.0 (التوزيعات منذ 2017) |
| اكتشفها | Theori (شركة أمنية) |
| أُعلن عنها في | مارس 2026 |
| التصحيح الرسمي | متاح بعد ~أسبوع واحد من الإفصاح المسؤول |
| حالة CISA | مُدرجة كمستغلة بنشاط — كتالوج KEV |
| مهلة CISA | يجب على الوكالات الفيدرالية الإصلاح بحلول 15/05/2026 |
اكتشفت شركة الأمن Theori ثغرة CopyFail أثناء تحليل كود نواة لينكس، وتحديدًا في النظام الفرعي المسؤول عن نسخ البيانات بين مساحات الذاكرة.
مارس/2026 → باحثو Theori يحددون سلوكًا شاذًا في النواة
مارس/2026 → إفصاح مسؤول (Responsible Disclosure) لفريق أمن النواة
~بعد أسبوع واحد → التصحيح الرسمي متاح على kernel.org
مايو/2026 → نشر كود الاستغلال (PoC) علنًا
01/05/2026 → مايكروسوفت تنشر تحليلًا تقنيًا
04/05/2026 → CISA تضيفها إلى كتالوج KEV (Known Exploited Vulnerabilities)
15/05/2026 → الموعد النهائي للإصلاح في الوكالات الفيدرالية الأمريكية
تمتلك نواة لينكس إجراءات داخلية مسؤولة عن نسخ البيانات بين مناطق مختلفة من الذاكرة (userspace ↔ kernelspace). سُميت الثغرة CopyFail لأن المكوّن المتأثر يتوقف عن نسخ بيانات معينة عندما يجب عليه ذلك. يؤدي هذا إلى إتلاف هياكل بيانات حساسة داخل النواة، مما يفتح نافذة استغلال لتصعيد الصلاحيات.
تدير نواة لينكس الذاكرة في مساحتين منفصلتين:
┌─────────────────────────────────────┐
│ USERSPACE │
│ عملية المهاجم (uid=1000) │
│ → استدعاء syscall خبيث │
└────────────────┬────────────────────┘
│ syscall
▼
┌─────────────────────────────────────┐
│ KERNELSPACE │
│ إجراء نسخ البيانات │
│ → خطأ: فشل في نسخ البيانات الوصفية │
│ → إتلاف هيكل التحكم │
│ → المهاجم يتلاعب بالمؤشر │
│ → تنفيذ كود بصلاحيات root │
└─────────────────────────────────────┘
uid=0 (root)، مما يمنحه سيطرة كاملة على النظام// الإصدار الضعيف (مبسط، لأغراض تعليمية)
int kernel_copy_data(struct user_request *req) {
struct kernel_buffer kbuf;
// خطأ: ينسخ جزءًا فقط من البيانات، متجاهلًا الحقول الحرجة
// حقول الأمان (security_context) لا يتم نسخها!
memcpy(&kbuf.data, req->data, req->size);
// → kbuf.security_context يبقى غير مهيأ (قمامة ذاكرة)
process_buffer(&kbuf); // يستخدم بيانات تالفة
return 0;
}
// الإصدار المُصحح
int kernel_copy_data(struct user_request *req) {
struct kernel_buffer kbuf;
// الإصلاح: ينسخ الهيكل بأكمله، بما في ذلك حقول الأمان
if (copy_from_user(&kbuf, req, sizeof(struct kernel_buffer)))
return -EFAULT;
process_buffer(&kbuf);
return 0;
}
| التوزيعة | الإصدار | الحالة |
|---|---|---|
| Red Hat Enterprise Linux | 10.1 | ✅ ضعيفة |
| Ubuntu LTS | 24.04 | ✅ ضعيفة |
| Amazon Linux | 2023 | ✅ ضعيفة |
| SUSE Linux | 16 | ✅ ضعيفة |
| Debian | أحدث مستقر | ✅ ضعيفة |
| Fedora | الأحدث | ✅ ضعيفة |
| Kubernetes (العقد) | جميعها على نواة ≤7.0 | ✅ ضعيفة |
⚠️ أي توزيعة لينكس تعمل بنواة ≤ 7.0 صدرت منذ 2017 يحتمل أن تكون ضعيفة.
مستخدم بدون صلاحيات على خادم مشترك (مثل: بيئة استضافة، VPS) ينفذ الاستغلال ويحصل على root.
الإنترنت → [RCE عبر ثغرة ويب] → قشرة محدودة → [CopyFail] → root
وفقًا لتحليل مايكروسوفت: يمكن ربط الثغرة باستغلال يُسلَّم عبر الإنترنت (مثل: RCE في تطبيق ويب)، مما يؤدي إلى اختراق كامل للخادم.
يتم خداع مستخدم لينكس لفتح رابط أو مرفق خبيث يُفعّل الاستغلال محليًا.
يخترق جهة خبيثة حساب مطور برمجيات مفتوحة المصدر ويحقن الاستغلال في كود موزع على نطاق واسع.
خادم سحابي مخترق قد يعرض جميع الأجهزة الافتراضية والحاويات والتطبيقات وقواعد بيانات العملاء على نفس البنية التحتية للخطر.
⚠️ فقط في بيئة متحكم فيها ومعزولة — جهاز افتراضي بدون وصول إلى الشبكة الخارجية!
# الأدوات اللازمة
sudo apt install -y git build-essential libssl-dev bc flex bison
# التحقق من إصدار النواة الحالي
uname -r
# التحقق مما إذا كان ضمن النطاق الضعيف (≤ 7.0)
# مثال على إخراج ضعيف: 6.8.0-51-generic
# 1. إنشاء جهاز افتراضي معزول (موصى به: VirtualBox أو QEMU)
# استخدم ISO من Ubuntu 24.04 أو Debian Bookworm
# 2. تأكد أن الجهاز الافتراضي لا يملك وصولًا إلى الإنترنت الإنتاجي
# (استخدم شبكة host-only أو NAT معزول)
# 3. إنشاء مستخدم بدون صلاحيات لمحاكاة المهاجم
sudo adduser testuser
su - testuser
# 4. تأكد أن testuser لا يملك صلاحيات sudo
sudo whoami # يجب أن يُرجع: "testuser is not in the sudoers file"
# سكربت التحقق (لا يستغل، يتحقق فقط)
#!/bin/bash
KERNEL_VERSION=$(uname -r | cut -d. -f1,2)
MAJOR=$(echo $KERNEL_VERSION | cut -d. -f1)
MINOR=$(echo $KERNEL_VERSION | cut -d. -f2)
echo "[*] النواة المكتشفة: $(uname -r)"
if [ "$MAJOR" -lt 7 ] || ([ "$MAJOR" -eq 7 ] && [ "$MINOR" -eq 0 ]); then
echo "[!] ضعيفة على الأرجح تجاه CVE-2026-31431 (CopyFail)"
echo "[!] تحقق مما إذا تم تطبيق التصحيح من قبل مزود التوزيعة"
else
echo "[+] إصدار النواة خارج النطاق المتأثر"
fi