
نصوص التخفيف لكل توزيعة لثغرة CVE-2026-31431 ("Copy Fail") في تصعيد الامتيازات المحلية بنواة لينكس.
نصوص تخفيف خاصة بكل توزيعة لثغرة CVE-2026-31431 ("Copy Fail") — وهي ثغرة تصعيد صلاحيات محلية في نواة لينكس algif_aead تؤثر على جميع التوزيعات تقريبًا منذ عام 2017.
يقوم كل نص إما بتثبيت نواة مصححة من مستودعات توزيعتك (عند توفرها) أو، إذا لم تتوفر، بحظر وحدة النواة الضعيفة algif_aead بحيث يُغلق مسار الاستغلال حتى تتمكن من إعادة التشغيل على نواة مصلحة.
اختر النص المناسب لتوزيعتك، راجعه، ثم شغّله بصلاحيات الجذر.
# Ubuntu
sudo bash scripts/ubuntu.sh
# Debian
sudo bash scripts/debian.sh
# RHEL / Rocky / AlmaLinux / CentOS Stream
sudo bash scripts/rhel.sh
# Fedora
sudo bash scripts/fedora.sh
# Arch
sudo bash scripts/arch.sh
# openSUSE Leap / Tumbleweed
sudo bash scripts/opensuse.sh
# Alpine
sudo bash scripts/alpine.sh
# أي توزيعة أخرى (Gentoo, NixOS, التوزيعات غير القابلة للتغيير، ...)
sudo bash scripts/universal.sh
استخدم --check أولاً إذا أردت معاينة دون إجراء أي تغييرات.
تنفذ النصوص الخاصة بالتوزيعات الخوارزمية التالية؛ بينما يتخطى universal.sh الخطوات 4–5.
sudo إذا لم يكن المستخدم جذرًا بالفعل.--force.uname -r.PATCHED_KERNEL_VERSION مسجلاً لتوزيعتك وكانت نواتك الحالية تساوي أو تزيد عن هذا الإصدار، يزيل النص أي ملف تخفيف متبقٍ وينتهي.--yes للتخطي) تثبيته. بعد التثبيت، تعيد التشغيل يدويًا./etc/modprobe.d/cve-2026-31431.conf مع blacklist algif_aead و install algif_aead /bin/true، ثم يتحقق عبر فحص ربط مقبس AF_ALG من أن مسار الاستغلال مغلق.PATCHED_KERNEL_VERSION = PENDING تعني أن المطوّرين لم يسجلوا بعد إصدار نواة مصلحًا لتلك التوزيعة. يتم تحديث كل صف عبر طلب سحب من سطر واحد.
| التوزيعة | حزمة النواة | الإصدار المصحح | آخر فحص |
|---|---|---|---|
| Ubuntu (24.04) | linux-image-generic | PENDING | 2026-05-01 |
| Debian | linux-image-amd64 | PENDING | 2026-05-01 |
| RHEL / Rocky / Alma | kernel | PENDING | 2026-05-01 |
| Fedora | kernel | PENDING | 2026-05-01 |
| Arch | linux | PENDING | 2026-05-01 |
| openSUSE | kernel-default | PENDING | 2026-05-01 |
| Alpine | linux-lts | PENDING | 2026-05-01 |
| الخيار | المعنى |
|---|---|
-y, --yes | غير تفاعلي؛ يتخطى طلب تثبيت النواة. |
--force | يتجاوز فحص عدم تطابق التوزيعة. |
--check | معاينة للقراءة فقط؛ يطبع ما سيحدث دون تغيير أي شيء. |
--undo | يزيل /etc/modprobe.d/cve-2026-31431.conf. يُستخدم بعد تثبيت نواة مصلحة. |
-h, --help | معلومات الاستخدام. |
تقوم النصوص بتشغيل هذا الفحص تلقائيًا. للتحقق بنفسك:
python3 - <<'PY'
import socket, errno
try:
s = socket.socket(socket.AF_ALG, socket.SOCK_SEQPACKET, 0)
s.bind(("aead", "authencesn(hmac(sha1),cbc(aes))"))
print("BAD: bind succeeded — host is NOT mitigated")
s.close()
except OSError as e:
print(f"OK: bind blocked, errno={e.errno} ({e.strerror})" if e.errno == errno.ENOENT
else f"INCONCLUSIVE: errno={e.errno}")
PY
النظام المخفف أو المصحح يطبع OK: bind blocked, errno=2 ....
بعد أن تنشر توزيعتك نواة مصلحة وتعيد التشغيل عليها، أزل حظر modprobe حتى تعمل التطبيقات التي تستخدم AF_ALG aead بشكل مشروع مرة أخرى:
sudo bash scripts/<your-distro>.sh --undo
عندما تنشر توزيعتك نواة مصلحة:
scripts/<distro>.sh — اضبط PATCHED_KERNEL_VERSION على إصدار الحزمة المصحح (بالصيغة التي يعيدها dpkg-query -W / rpm -q VERSION-RELEASE / pacman -Q).<distro>: fix shipped in <version>.أداة تخفيف أمنية. راجع أي نص تجده على الإنترنت قبل تمريره إلى sudo bash. لا يتحمل المطوّرون أي مسؤولية بموجب رخصة MIT.
MIT.