
إثبات مفهوم بلغة بايثون لثغرة CVE-2026-31431، تستغل نواة AF_ALG لتعديل ذاكرة التخزين المؤقت للصفحات الخاصة بالثنائي SUID وإطلاق قشرة صلاحيات الجذر على أنظمة لينكس.
Python PoC لـ CVE-2026-31431، مخصص للاختبارات المخبرية الخاضعة للتحكم على أنظمة Linux المصرح بها.
للاستخدام فقط في بيئاتك الخاصة، أو مختبراتك، أو الأنظمة التي لديك إذن صريح بها. لا تقم بتشغيل هذا الكود ضد أنظمة أطراف ثالثة.
copy-fail.py يتحقق مما إذا كانت algif_aead متاحة عبر واجهة AF_ALG في النواة، وإذا كان النظام متوافقًا مع التقنية التي يختبرها هذا الـ PoC، فإنه يحاول تعديل ذاكرة التخزين المؤقت للصفحات (page cache) لملف ثنائي SUID مستهدف لإطلاق قشرة PTY تفاعلية.
يتضمن السكربت حمولات (payloads) لـ:
x86_64i686aarch64
AF_ALG و algif_aead./usr/bin/su.لا توجد تبعيات خارجية لـ Python مطلوبة؛ يستخدم السكربت وحدات المكتبة القياسية فقط.
عرض المساعدة:
python3 copy-fail.py --help
التشغيل بالهدف الافتراضي (/usr/bin/su):
python3 copy-fail.py
استخدام ملف ثنائي SUID آخر كهدف:
python3 copy-fail.py --target /usr/bin/newgrp
تشغيل أمر محدد كجذر (root):
python3 copy-fail.py --exec /bin/bash
تعطيل الإعداد التلقائي للطرفية:
python3 copy-fail.py --no-setup
عرض إصدار المشروع:
python3 copy-fail.py --version
قبل تشغيل التدفق الرئيسي، يحاول السكربت إنشاء وربط مقبس AF_ALG مع:
authencesn(hmac(sha256),cbc(aes))
إذا لم تكن algif_aead متاحة، يخرج البرنامج دون متابعة.
تغطي مجموعة الاختبارات فقط مسارات CLI الخاملة مثل --help و --version. لا تنفذ تدفق الـ PoC.
python3 -m unittest discover -s tests
copy-fail.py: تنفيذ كامل للـ PoC وواجهة CLI.tests/test_cli.py: اختبارات دخان آمنة لـ CLI.SECURITY.md: سياسة الأمان ونطاق الإبلاغ.DISCLAIMER.md: إخلاء مسؤولية الاستخدام المصرح به.CHANGELOG.md: سجل الإصدارات.CONTRIBUTING.md: إرشادات المساهمة.LICENSE: رخصة MIT.رخصة MIT — حقوق النشر (c) 2026 Juguitos
PoC en Python para CVE-2026-31431, orientado a pruebas controladas de laboratorio en sistemas Linux autorizados.
Uso exclusivo en entornos propios, de laboratorio o con permiso explicito. No ejecutes este codigo contra sistemas de terceros.
copy-fail.py verifica la disponibilidad de algif_aead mediante la interfaz AF_ALG del kernel y, si el sistema es compatible con la tecnica probada por el PoC, intenta modificar la page cache de un binario SUID objetivo para lanzar una shell con PTY interactiva.
El script incluye payloads para:
x86_64i686aarch64
AF_ALG y algif_aead./usr/bin/su.No requiere dependencias externas de Python; usa modulos de la biblioteca estandar.
Mostrar ayuda:
python3 copy-fail.py --help
Ejecutar con el objetivo por defecto (/usr/bin/su):
python3 copy-fail.py
Usar otro binario SUID como objetivo:
python3 copy-fail.py --target /usr/bin/newgrp
Ejecutar un comando especifico como root:
python3 copy-fail.py --exec /bin/bash
Deshabilitar la configuracion automatica de terminal:
python3 copy-fail.py --no-setup
Mostrar la version del proyecto:
python3 copy-fail.py --version
Antes de ejecutar el flujo principal, el script intenta crear y enlazar un socket AF_ALG con:
authencesn(hmac(sha256),cbc(aes))
Si algif_aead no esta disponible, el programa termina sin continuar.
La suite de pruebas solo cubre rutas inertes de CLI como --help y --version. No ejecuta el flujo del PoC.
python3 -m unittest discover -s tests
copy-fail.py: implementacion completa del PoC y CLI.tests/test_cli.py: pruebas seguras de la CLI.SECURITY.md: politica de seguridad y alcance de reportes.DISCLAIMER.md: aviso de uso autorizado.CHANGELOG.md: historial de cambios.CONTRIBUTING.md: guia de contribucion.LICENSE: licencia MIT.Licencia MIT — Copyright (c) 2026 Juguitos
| الخيار | الوصف |
|---|
-t, --target PATH | الملف الثنائي SUID المستهدف. الافتراضي: /usr/bin/su. |
-e, --exec CMD | الأمر الذي سيتم تشغيله كجذر. يجب تقديمه بمسار كامل. |
--no-setup | يعطل الإعداد التلقائي لبيئة الطرفية. |
--version | يعرض إصدار المشروع. |
-h, --help | يعرض مساعدة البرنامج. |
| Opcion | Descripcion |
|---|
-t, --target PATH | Binario SUID objetivo. Default: /usr/bin/su. |
-e, --exec CMD | Comando a ejecutar como root. Debe indicarse con ruta completa. |
--no-setup | Deshabilita la configuracion automatica del entorno de terminal. |
--version | Muestra la version del proyecto. |
-h, --help | Muestra la ayuda del programa. |