
نسخ الفشل (CVE-2026-31431) هو خلل منطقي في وحدة algif_aead في نواة لينكس — وهي جزء من واجهة برمجة التشفير AF_ALG لمساحة المستخدم. تم الكشف عنه في 29 أبريل 2026 بواسطة Theori / Xint Code.
سكربت كشف للقراءة فقط لثغرة رفع الصلاحيات المحلية Copy Fail في نواة لينكس.
لا يحتوي على كود استغلال. لا يفتح أي مقبس AF_ALG. لا يكتب أي ملفات خارج/etc/modprobe.d(فقط عند تطبيق التخفيف يدويًا).
Copy Fail (CVE-2026-31431) هو خلل منطقي في وحدة algif_aead في نواة لينكس — وهي جزء من واجهة برمجة التشفير AF_ALG لمساحة المستخدم. تم الكشف عنها في 29 أبريل 2026 بواسطة Theori / Xint Code.
يمكن لسكربت بايثون بحجم 732 بايت أن يمنح مستخدمًا محليًا غير مميز صلاحيات الجذر الكاملة على تقريبًا كل توزيعات لينكس الرئيسية المبنية منذ 2017 — دون حالات سباق (race conditions)، أو إزاحات نواة، أو حمولات مُجمّعة.
| الخاصية | التفاصيل |
|---|---|
| CVE | CVE-2026-31431 |
| CVSS | 7.8 عالية |
| النوع | رفع صلاحيات محلي (LPE) |
| النوى المتأثرة | 4.14 – 6.18.21, 6.19.0 – 6.19.11 |
| السبب الجذري | تحسين في المكان لوحدة algif_aead (الالتزام 72548b093ee3, 2017) |
| الإصلاح الرسمي | التراجع عبر الالتزام a664bf3d603d |
| موثوقية الاستغلال | حتمية — لا تتطلب حالة سباق |
modprobe.d، معامل initcall_blacklist في سطر أوامر النواةkmod وفقًا لـ USN-8226-1ملاحظة حول Ubuntu / Debian: لا تقوم Ubuntu بترقية إصدار النواة العلوي عند إعادة تطبيق التصحيحات الأمنية. لذلك يتحقق السكربت من إصدار حزمة
kmod(>= 31+20240202-2ubuntu7.2وفقًا لـ USN-8226-1) بدلاً من الاعتماد على سلسلة إصدار النواة وحدها.
# التحميل
curl -O https://raw.githubusercontent.com/kw-soft/copyfail/main/copyfail.sh
# جعله قابلًا للتنفيذ
chmod +x copyfail.sh
# التشغيل (يُوصى بالجذر لرؤية كاملة للوحدات)
sudo ./copyfail.sh
============================================
CVE-2026-31431 'Copy Fail' — الكشف الآمن
============================================
[*] النواة: 6.8.0-71-generic
[!] النواة 6.8.0-71-generic ضمن النطاق العلوي المتأثر (4.14 – 6.19.11)
[~] يتبع فحص إعادة التطبيق الخاص بالتوزيعة — رقم الإصدار وحده غير حاسم
[*] حالة وحدة algif_aead:
[!] algif_aead محمّلة — سطح الهجوم نشط
[*] حالة تصحيح التوزيعة:
التوزيعة : Ubuntu 24.04
kmod المثبت : 31+20240202-2ubuntu6
kmod المطلوب : >= 31+20240202-2ubuntu7.2
[!] kmod 31+20240202-2ubuntu6 < 31+20240202-2ubuntu7.2 — التخفيف غير مطبق
============================================
النتيجة
============================================
[!] متأثر — النواة متأثرة وalgif_aead نشطة
============================================
CVE-2026-31431 'Copy Fail' — الكشف الآمن
============================================
[*] النواة: 6.8.0-71-generic
[!] النواة 6.8.0-71-generic ضمن النطاق العلوي المتأثر (4.14 – 6.19.11)
[~] يتبع فحص إعادة التطبيق الخاص بالتوزيعة — رقم الإصدار وحده غير حاسم
[*] حالة وحدة algif_aead:
[✓] algif_aead غير محمّلة
[✓] قائمة حظر modprobe نشطة: /etc/modprobe.d/disable-algif_aead.conf
[*] حالة تصحيح التوزيعة:
التوزيعة : Ubuntu 24.04
kmod المثبت : 31+20240202-2ubuntu7.2
kmod المطلوب : >= 31+20240202-2ubuntu7.2
[✓] kmod >= 31+20240202-2ubuntu7.2 — تخفيف USN-8226-1 موجود
============================================
النتيجة
============================================
[✓] مخفف — algif_aead محظورة
[~] طبّق نواة مصححة عند توفرها لحل المشكلة بالكامل
sudo apt update && sudo apt upgrade && sudo reboot
يقوم هذا بتثبيت حزمة kmod المصححة (USN-8226-1) التي تضيف قاعدة modprobe.d تحظر algif_aead.
إذا لم يكن إعادة التشغيل الفورية ممكنة:
echo 'install algif_aead /bin/false' | sudo tee /etc/modprobe.d/disable-algif.conf
sudo update-initramfs -u
sudo rmmod algif_aead 2>/dev/null || echo "الوحدة قيد الاستخدام — يلزم إعادة تشغيل"
⚠️ على نوى عائلة RHEL، تكون
algif_aeadمدمجة في النواة (CONFIG_CRYPTO_USER_API_AEAD=y).
قواعدmodprobe.dليس لها أي تأثير. استخدم معامل grub بدلاً من ذلك:
sudo grubby --update-kernel=ALL --args='initcall_blacklist=algif_aead_init'
sudo reboot
sudo pacman -Syu linux && sudo reboot
لا يؤثر التخفيف على أي مما يلي:
dm-crypt / LUKSفقط التطبيقات المكوّنة صراحةً لاستخدام محرك afalg أو التي تربط مقابس AF_ALG AEAD مباشرة قد تتأثر — وهذا نادر في النشرات القياسية.
لا تطبق Hetzner تحديثات نظام التشغيل تلقائيًا. تأتي Ubuntu مع unattended-upgrades مثبتة مسبقًا، ولكن يجب تفعيلها وتكوينها.
# تحقق مما إذا كانت التحديثات الأمنية التلقائية نشطة
cat /etc/apt/apt.conf.d/20auto-upgrades
# عرض سجل الترقيات
grep "^Start-Date\|^Commandline" /var/log/apt/history.log | tail -30
# تحقق مما إذا تم تطبيق تخفيف kmod تلقائيًا
grep "kmod\|algif" /var/log/apt/history.log
# تحقق من آخر تشغيل لـ unattended-upgrades
tail -30 /var/log/unattended-upgrades/unattended-upgrades.log
ملاحظة: حتى مع تفعيل
unattended-upgrades، تكون إعادة التشغيل التلقائية معطلة افتراضيًا.
لا تصبح النواة الجديدة نشطة إلا بعدrebootيدوي.
هذا السكربت مخصص للاستخدام على الأنظمة التي تملكها أو مخوّل باختبارها.
يقوم بفحوصات للقراءة فقط ولا يستغل الثغرة بأي شكل من الأشكال.
| التوزيعة | طريقة التحقق |
|---|
| Ubuntu / Linux Mint | إصدار حزمة kmod (USN-8226-1) |
| Debian | إصدار حزمة kmod + متتبع الأمان |
| Parrot OS | إصدار حزمة kmod (Debian rolling) |
| RHEL / CentOS / AlmaLinux / Rocky | dnf updateinfo + معامل initcall_blacklist |
| Fedora | dnf updateinfo |
| Amazon Linux | dnf check-update --security |
| SUSE / openSUSE | zypper lp |
| Arch Linux | pacman -Syu linux |
| المورد | الرابط |
|---|