
إثبات مفهوم لاستغلال CVE-2026-31431، وهي ثغرة تلف في الذاكرة في نواة لينكس AF_ALG. يستخدم splice لتصحيح /usr/bin/su في ذاكرة التخزين المؤقت للصفحات، مما يتيح تصعيد الصلاحيات إلى الجذر بدون كلمة مرور.
CopyFail هو استغلال إثبات مفهوم لثغرة CVE-2026-31431، يستهدف ثغرة تلف في الذاكرة في واجهة برمجة تطبيقات التشفير في نواة لينكس (AF_ALG). يستغل الاستغلال استدعاء النظام splice لتنفيذ تعديل غير مصرح به لذاكرة التخزين المؤقت للصفحات (page-cache) لملف /usr/bin/su، مما يتيح تصعيد الصلاحيات إلى الجذر بدون كلمة مرور.
تكمن الثغرة في معالجة نواة لينكس لعمليات نقل البيانات بنسخ صفري (zero-copy) بين مآخذ AF_ALG وملفات واصفات أخرى عبر splice. بسبب عدم كفاية المزامنة أو فحص الحدود في تنفيذ aead، يمكن كتابة البيانات المعالجة بواسطة محرك التشفير مرة أخرى إلى ذاكرة التخزين المؤقت للصفحات الخاصة بالملف المصدر.
AF_ALG ويستخدم sendmsg لوضع حمولة خبيثة في المخازن المؤقتة الداخلية للمقبس.splice لنقل البيانات من ملف /usr/bin/su إلى مقبس AF_ALG، تتسبب الثغرة في قيام محتويات مخزن المقبس المؤقت بالكتابة فوق ذاكرة التخزين المؤقت للصفحات الخاصة بالملف في الذاكرة.su بحمولة ELF صغيرة تفتح قشرة جذر. نظرًا لأن ذاكرة التخزين المؤقت للصفحات تم تعديلها، فإن عمليات تنفيذ su اللاحقة تشغّل كود المهاجم بدلاً من الملف الأصلي.RawSyscall لجميع التفاعلات مع النواة.AF_ALG/splice.fmt أو os).قم بتجميع الاستغلال للبنية الحالية:
go build -ldflags="-s -w" -o CopyFail CVE-2026-31431.go
قم بتشغيل الملف الثنائي المُجمَّع:
./CopyFail
عند التنفيذ الناجح، سيتم تعديل ملف su في الذاكرة وتنفيذه، مما يمنح قشرة جذر.
يوضح العرض التالي التالي تجميع الاستغلال وتنفيذه على تثبيت Kali Linux قياسي.
# 1. تحقق من المستخدم الحالي غير المميز
kali@kali:~$ whoami
kali
# 2. قم بتجميع الاستغلال
kali@kali:~$ go build -ldflags="-s -w" -o CopyFail CVE-2026-31431.go
# 3. قم بتنفيذ استغلال CopyFail
kali@kali:~$ ./CopyFail
[+] Triggering AF_ALG memory corruption...
[+] Patching /usr/bin/su in page-cache...
[+] Executing patched binary...
# 4. النجاح: التصعيد إلى قشرة جذر
root@kali:/home/kali# id
uid=0(root) gid=0(root) groups=0(root)
root@kali:/home/kali# whoami
root
للتخفيف من هذه الثغرة، يُنصح بالخطوات التالية:
af_alg والوحدات ذات الصلة:
modprobe -r af_alg
auditd) لمراقبة استدعاءات splice المشبوهة التي تستهدف ملفات النظام الحساسة.⚠️ تحذير: هذه الأداة مخصصة للبحث الأمني المصرح به والأغراض التعليمية فقط. تعديل ذاكرة التخزين المؤقت للصفحات هو عملية غير مستقرة وقد تسبب عدم استقرار في النظام. لا يتحمل المؤلف أي مسؤولية عن سوء الاستخدام.
تم اكتشاف ثغرة CVE-2026-31431 ("Copy Fail") والإفصاح عنها بواسطة فريق البحث في Theori.
هذا المشروع مرخص بموجب رخصة MIT LICENSE.