
مستودع أبحاث دفاعي لـ CVE-2026-31431، وهو ثغرة تصعيد صلاحيات محلية في نواة لينكس عبر إفساد ذاكرة التخزين المؤقت للصفحات باستخدام AF_ALG و splice() و authencesn. يتضمن تحليلاً فنياً واستراتيجيات كشف وتدابير تخفيف.
Copy Fail (CVE-2026-31431) هي ثغرة من نوع تصعيد الصلاحيات المحلي (LPE) تؤثر على نواة لينكس من خلال تلف متحكم فيه في ذاكرة التخزين المؤقت للصفحات (page cache) عبر آليات AF_ALG و splice() و authencesn.
يهدف هذا المستودع إلى:
⚠️ هذا المشروع تعليمي بحت، دفاعي، ومخصص لأبحاث الأمن السيبراني.
جميع العروض التوضيحية المقدمة في هذا المستودع أُجريت في بيئات معملية معزولة ومحكومة.
لا يُسمح بأي استخدام على أنظمة طرف ثالث دون إذن صريح.
| الخاصية | التفصيل |
|---|---|
| لا توجد حالة سباق (Race condition) | استغلال حتمي |
| لا تعديل على القرص | صعوبة الكشف |
| استغلال بسيط |
قابلة للمقارنة مع:
مساحة المستخدم
↓
مقبس AF_ALG
↓
splice()
↓
مرجع ذاكرة التخزين المؤقت للصفحات
↓
كتابة في المكان (in-place) عبر authencesn
↓
استبدال 4 بايتات مسيطر عليه
↓
execve()
↓
تصعيد الصلاحيات
2011 → إضافة authencesn إلى النواة
2015 → AF_ALG يستقبل دعم AEAD + splice()
2017 → تحسين في المكان (in-place) في algif_aead.c
2026 → الاكتشاف والتصحيح الرسمي
AF_ALGواجهة مقبس تعرض الأوليات التشفيرية لنواة لينكس لمساحة المستخدم.
splice()آلية تسمح بنقل الصفحات دون نسخ بين واصفات الملفات (file descriptors).
authencesnقالب AEAD لـ IPsec ESN يستخدم المخزن المؤقت الوجهة كمساحة عمل مؤقتة.
التحسين المُقدم في algif_aead.c سمح بالتسلسل المباشر لصفحات ذاكرة التخزين المؤقت للصفحات (page cache) في قائمة الانتثار الوجهة (scatterlist destination) عبر sg_chain().
الإدخال SGL: AAD || النص المشفر || العلامة (ذاكرة التخزين المؤقت للصفحات)
↑
الإخراج SGL: AAD || النص المشفر ------+
ثم يكتب authencesn مباشرة في صفحات ذاكرة التخزين المؤقت للصفحات الخاصة بالملف الهدف.
| الأولية | التحكم |
|---|---|
| الملف الهدف | أي ملف قابل للقراءة |
| الإزاحة (Offset) |
⚠️ مخصص لبيئات الاختبار المعزولة فقط.
uname -r
lsmod | grep algif_aead
python3 --version
git clone https://github.com/theori-io/copy-fail-CVE-2026-31431.git
cd copy-fail-CVE-2026-31431
python3 copy_fail_exp.py
auditctl -a always,exit -F arch=b64 -S socket -F a0=38 -k af_alg_socket
auditctl -a always,exit -F arch=b64 -S splice -k splice_monitor
ps aux | awk '$1 == "root"'
ss -tlnp
algif_aeadecho "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif-aead.conf
sudo rmmod algif_aead
{
"defaultAction": "SCMP_ACT_ALLOW",
"syscalls": [
{
"names": ["socket"],
"action": "SCMP_ACT_ERRNO",
"args": [
{ "index": 0, "value": 38, "op": "SCMP_CMP_EQ" }
]
}
]
}
التصحيح a664bf3d603d يزيل العملية الضعيفة في المكان (in-place) في algif_aead.c.
sudo apt update && sudo apt upgrade
sudo reboot
| التاريخ | الحدث |
|---|---|
| 2017 | إدخال الثغرة |
| 2026-03-23 | الإبلاغ لفريق أمن النواة |
| 2026-04-01 | دمج التصحيح |
| 2026-04-29 | الإفصاح العام |
linux kernel security, CVE-2026-31431, copy fail, page cache, AF_ALG, authencesn, linux LPE, kernel exploit, linux hardening, security research, dirty pipe, kernel mitigation
هذا المستودع مخصص حصريًا:
أي استخدام غير مصرح به غير قانوني.
🛡️ وعي • تخفيف • بحث دفاعي
🔁 شارك المشروع مع مجتمع الأمن السيبراني
⭐ ادعم أبحاث أمن لينكس
| العنصر | القيمة |
|---|
| النوع | تصعيد الصلاحيات المحلي (LPE) |
| التأثير | صلاحيات جذر محلية (Root) |
| المكون | نواة لينكس |
| النظام الفرعي | AF_ALG / authencesn |
| الأولية | كتابة متحكم فيها في ذاكرة التخزين المؤقت للصفحات |
| الشرط | مستخدم غير مميز |
| الإخفاء | ملف القرص سليم |
| الخطورة | حرجة |
| بايثون قياسي فقط |
| تأثير على الحاويات | Kubernetes / VPS / الاستضافة المشتركة |
| نافذة واسعة | نوى ضعيفة منذ 2017 |
| مسيطر عليه عبر splice |
| القيمة المكتوبة | حقل seqno_lo |
| الاستمرارية | ذاكرة فقط |
| الكشف على القرص | مستحيل |
| التوزيعة |
|---|
| النواة |
|---|
| الحالة |
|---|
| Ubuntu 24.04 LTS | 6.17.0-1007-aws | ✅ ضعيف |
| Amazon Linux 2023 | 6.18.8-9.213 | ✅ ضعيف |
| RHEL 10.1 | 6.12.0 | ✅ ضعيف |
| SUSE 16 | 6.12.0 | ✅ ضعيف |
| المصدر | الوصف |
|---|
| Dirty Pipe | CVE-2022-0847 |
| وثائق نواة لينكس | التوثيق الرسمي |
| Openwall Security | القائمة البريدية للأمن |
| LWN.net | تحليل نواة لينكس |
| توثيق AF_ALG | واجهة برمجة التطبيقات التشفيرية |
| XFRM / IPsec | النظام الفرعي المعني |