
دور Ansible يطبّق ويتحقق من التخفيف عبر modprobe.d لثغرة CVE-2026-31431 من خلال تعطيل وحدة النواة algif_aead، مع فحوصات أمان لأنظمة عائلة Debian.
دور Ansible لتطبيق (وإزالة لاحقًا) التخفيف عبر modprobe.d لثغرة
CVE-2026-31431 ("Copy Fail") في نظام AF_ALG / algif_aead الفرعي في نواة Linux.
تم اختباره على Debian. طلبات السحب للتوزيعات الأخرى، أو الحالات الحدية، أو التحسينات مرحب بها جدًا.
يقوم الدور بإسقاط مقتطف إعداد في /etc/modprobe.d/ يمنع تحميل وحدة النواة
algif_aead:
install algif_aead /bin/false
ثم يتحقق من أن التخفيف فعال فعليًا من خلال:
/boot/config-$(uname -r) ورفض التشغيل إذا كان AEAD مدمجًا
في النواة (CONFIG_CRYPTO_USER_API_AEAD=y) — لا يمكن لـ modprobe.d حظر
الكود المدمج.algif_aead غير موجود حاليًا في lsmod.AF_ALG ويحاول
bind() إلى aead/gcm(aes). بعد التخفيف، يجب أن يفشل bind مع
FileNotFoundError.لا حاجة لإعادة التشغيل.
للتراجع (مثلًا بمجرد تثبيت نواة مصححة)، قم بتعيين
cve_2026_31431_state=absent.
التخفيف المتداول على oss-security — إسقاط
install algif_aead /bin/false في /etc/modprobe.d/ وتنفيذ rmmod للوحدة —
لا يعمل على CloudLinux أو AlmaLinux أو RHEL أو أي توزيعة أخرى من عائلة
RHEL، ولا يعمل على النوى المخصصة المبنية مع AEAD مدمجًا.
على تلك الأنظمة، algif_aead مدمج في النواة
(CONFIG_CRYPTO_USER_API_AEAD=y)، لذلك:
modprobe.d حظر التحميل (لا يوجد شيء لتحميله — الكود
موجود بالفعل في صورة النواة).rmmod algif_aead إزالة الكود المدمج.تبدو الأوامر ناجحة لكنها تترك النظام دون تغيير، مما يعطي إحساسًا زائفًا بالحماية. يمكنك التأكد مما إذا كانت نواتك متأثرة:
zgrep '^CONFIG_CRYPTO_USER_API_AEAD=' /boot/config-$(uname -r)
=m → وحدة، يمكن لهذا الدور التخفيف.=y → مدمج، تحتاج إلى تحديث النواة + إعادة تشغيل أو اشتراك livepatch.
سيكتشف هذا الدور ذلك ويرفض التشغيل.| الاسم | الافتراضي | ملاحظات |
|---|---|---|
cve_2026_31431_state | present | اضبطه على absent لإزالة التخفيف |
cve_2026_31431_conf | /etc/modprobe.d/disable-algif_aead.conf |
ansible-galaxy install joltcan.cve_2026_31431
ansible-playbook -i <your-inventory> ~/.ansible/roles/joltcan.cve_2026_31431/playbook.yml
التنظيف بمجرد تشغيل النواة المصححة:
ansible-playbook -i <your-inventory> ~/.ansible/roles/joltcan.cve_2026_31431/playbook.yml -e cve_2026_31431_state=absent
- hosts: all
become: true
roles:
- role: joltcan.cve_2026_31431
المشكلات وطلبات السحب مرحب بها — خاصة:
algif_aead قابلًا للتحميل
(Arch و Gentoo و Alpine وغيرها).algif_aead المُحمّل بالفعل بأمان عندما لا يوجد مستخدمون
نشطون لـ AF_ALG.MIT — انظر LICENSE.
| مسار ملف القائمة السوداء |