
وحدة نواة تستخدم ftrace لحظر طلبات AF_ALG/AEAD، مما يخفف من CVE-2026-31431 دون الحاجة إلى LSM BPF. توفر تسجيلًا وسهولة في الترجمة لـ Oracle Linux UEK.
حلول ebpf المتاحة لتخفيف cve-2026-31431 تتطلب lsm=bpf عند الإقلاع،
وهو عادةً غير مفعّل افتراضيًا. بالنسبة لـ OracleLinux كان هذا مفعّلاً افتراضيًا في
UEKr7u3 وفي UEKr8u1 بعد ديسمبر 2025.
للتحقق مما إذا كان بإمكانك استخدام ebpf-lsm لتخفيف copyfail، تحقق
من /sys/kernel/security/lsm بحثًا عن bpf.
نظرًا لأن بعض أجهزتنا تعمل بنواة أقدم قليلاً (بسبب $reasons)
بحثت عن طرق أخرى لتخفيف هذه المشكلة الأمنية، إما عن طريق حظر AF_ALG/AEAD
أو AF_ALG دفعة واحدة.
فكرت في وحدة نواة تعترض __sock_create وتحظر AF_ALG أو
تعترض aead_bind وتحظر جميع الطلبات.
كانت الفكرة هي القيام بذلك باستخدام ftrace.
لتجميع الوحدات، جرّب ما يلي:
git clone this_repository
cd this_repository
make
بالنسبة لـ Oracle Linux مع UEK تأكد من تثبيت واستخدام الحزم الصحيحة قبل تشغيل make:
. /etc/os-release
releasever=${VERSION/.*}
uek=7 # أو 8، أيهما تستخدم
dnf -y --enablerepo=ol${releasever}_UEKR${uek} install kernel-uek-devel make gcc kernel-headers
# قد تحتاج إلى أحد ما يلي:
# لـ oel9/uekr8
. /opt/rh/gcc-toolset-14/enable
# لـ oel8/uekr7
. /opt/rh/gcc-toolset-11/enable
ثم قم بتحميل الوحدة:
# حظر AF_ALG دفعة واحدة
insmod /path/to/af_alg_block.ko
# أو حظر AF_ALG/AEAD فقط
insmod /path/to/af_alg_aead_block.ko
الآن يجب حظر جميع طلبات AF_ALG أو جميع روابط AEAD (اعتمادًا على الوحدة التي حمّلتها)، ويجب تسجيل جميع المحاولات.
أنا لست مطوّر نواة. درست توثيق ftrace وقمت ببناء هذه الوحدة بالتجربة والخطأ
حتى تم حظر جميع طلبات AF_ALG، دون التأثير على عائلات العناوين الأخرى.
اختبرت ذلك على بعض الأجهزة ويبدو مستقرًا بالنسبة لي. لا أضمن أنه يعمل لديك، قد تتجاوز نواقل هجوم أخرى هذه الوحدة، أو قد تجعل الوحدة جهازك غير مستقر.
ومع ذلك، فهو إصلاح سريع لسد الفجوة حتى يمكن إعادة تشغيل الأجهزة أخيرًا.