
نص برمجي بلغة Python للتحقق مما إذا كان نظام Linux معرضًا لثغرة CVE-2026-31431 (Copy Fail)، وهي ثغرة رفع صلاحيات محلية في نواة Linux.
سكربت بايثون للتحقق مما إذا كان نظام Linux معرضًا لثغرة CVE-2026-31431 (Copy Fail)، وهي ثغرة رفع صلاحيات محلية في نواة Linux.
منذ عام 2017 (commit 72548b093ee3)، تدير الوحدة البرمجية المشفرة algif_aead في النواة العمليات في مكانها بشكل غير صحيح. عبر splice()، يمكن لمستخدم غير مميز إفساد page cache لملف ثنائي setuid والحصول على صلاحيات root دون لمس القرص.
| # | التحقق |
|---|---|
| 1 | إصدار النواة (النطاق المعرض للخطر) |
| 2 | وحدة algif_aead محمّلة أو قابلة للتحميل |
| 3 | مقبس AF_ALG SOCK_SEQPACKET متاح بدون صلاحيات |
| 4 | توفر os.splice() (استغلال بايثون مباشر) |
| 5 | ملفات ثنائية setuid قابلة للقراءة من الجميع (sudo، passwd...) |
| 6 | الحمايات النشطة (SELinux، AppArmor، قائمة حظر modprobe) |
python3 check_cve_2026_31431.py
لا توجد تبعيات خارجية. يعمل بدون صلاحيات root.
يقوم هذا السكربت بتحليل النظام فقط. لا يستغل الثغرة، ولا يحمّل أي وحدة، ولا يكتب أي شيء على القرص.
echo 'install algif_aead /bin/false' | sudo tee /etc/modprobe.d/algif_aead-block.conf
لا يعمل هذا الحل البديل على توزيعات RHEL (الوحدة مدمجة في النواة).