
نصوص التخفيف الدائمة لثغرة CVE-2026-31431 (فشل النسخ) على Ubuntu 24.04، مع إدراج وحدة kernel المعرضة للخطر algif_aead في القائمة السوداء وتحديث initramfs ليبقى التخفيف ساريًا بعد إعادة التشغيل.
يحتوي هذا المستودع على سكربتات مصممة لتحييد الثغرة الأمنية الحرجة CVE-2026-31431، الملقبة بـ "Copy Fail"، على أنظمة Ubuntu.
[!IMPORTANT] التوافق: هذه السكربتات مصممة ومختبرة على Ubuntu Server 24.04 LTS. على الرغم من أن المنطق مشابه للتوزيعات الأخرى، إلا أنها لم تُختبر على Debian أو غيرها من إصدارات لينكس.
قبل تطبيق التصحيح، قم بتنزيل السكربت الرسمي للكشف (الذي طوره rootsecdev) للتحقق من الحالة الحالية لنظامك:
# تنزيل سكربت الكشف
wget https://raw.githubusercontent.com/rootsecdev/cve_2026_31431/main/test_cve_2026_31431.py
# تأكد من تثبيت python3
python3 --version
تؤثر ثغرة CVE-2026-31431 ($CVSS\ 7.8$) على النظام الفرعي للتشفير في نواة لينكس (وحدة algif_aead).
يمكن لمستخدم محلي إتلاف Page Cache الخاص بالنظام من خلال استغلال خلل في تحسين "in-place" لدالة splice(). وهذا يسمح للمهاجم بإجبار النواة على كتابة بيانات عشوائية (أرقام تسلسلية) في صفحات ذاكرة ملفات يجب أن تكون للقراءة فقط (مثل ثنائيات SUID أو ملفات النظام الحساسة).
modprobe -r ببساطةتستخدم نواة لينكس آلية تسمى التحميل التلقائي. إذا طلب عملية أو سكربت (مثل أداة الكشف) مقبسًا من نوع AF_ALG، فإن النواة تعيد تحميل الوحدة تلقائيًا حتى لو تمت إزالتها يدويًا. الطريقة المستخدمة في هذا التصحيح ("الحظر الصارم") تمنع فعليًا تحميل ملف الوحدة الثنائي بواسطة النواة.
قم بتشغيل أداة الاختبار للتأكد مما إذا كانت نواتك الحالية معرضة للخطر:
python3 test_cve_2026_31431.py
إذا عرض السكربت [!] VULNERABLE، فانتقل إلى الخطوة التالية.
يقوم سكربت patch-CVE-2026-31431.sh بتحييد ناقل الهجوم بشكل دائم. يقوم بإنشاء ملف تكوين في /etc/modprobe.d/ وتحديث initramfs لضمان استمرار الحظر بعد إعادة التشغيل.
chmod +x patch-CVE-2026-31431.sh
sudo ./patch-CVE-2026-31431.sh
قم بتشغيل سكربت الكشف مرة أخرى. يجب أن ترى الآن رسالة تشير إلى عدم استيفاء المتطلبات الأساسية:
[+] Precondition not met ('authencesn(...) cannot be instantiated).
هذا يؤكد أن الوحدة تم تحييدها بنجاح.
بمجرد أن يصدر Ubuntu إصلاحًا رسميًا عبر تحديث النواة (تحقق من ملاحظات apt upgrade الخاصة بـ CVE-2026-31431)، يجب عليك استعادة القدرات التشفيرية الأصلية:
chmod +x unpatch-CVE-2026-31431.sh
sudo ./unpatch-CVE-2026-31431.sh
تعتمد الحماية على التوجيه التالي داخل /etc/modprobe.d/cve-2026-31431-mitigation.conf:
blacklist algif_aead
install algif_aead /bin/true
يقوم أمر install بإعادة توجيه محاولة النواة لتحميل الوحدة إلى /bin/true، والذي يُرجع رمز خروج "نجاح" دون تنفيذ أي كود ضعيف.