آموزش کامل رفع CVE-2026-31431 (Copy Fail) روی CloudLinux
خلاصه خطر
این آسیبپذیری یک اسکریپت 732 بایتی پایتون اجازه میدهد هر کاربر محلی (local user) روی سرور به root دسترسی پیدا کند. این فقط کاربران پایتون نیستند؛ هر کسی که بتواند کد اجرا کند (PHP، Perl، SSH) میتواند از آن استفاده کند. exploit روی page cache کار میکند و روی دیسک اثری باقی نمیگذارد، بنابراین ابزارهای integrity monitoring آن را تشخیص نمیدهند.
اگر کلودلینوکس روی سرور نصب هست :
بررسی نسخه CloudLinux
cat /etc/os-release | grep -E "PRETTY_NAME|VERSION_ID"
uname -r
خروجی نمایش داده شده باید مساوی یا بزرگتر از بیلد های زیر باشد
- CL7h: kernel-4.18.0-553.121.1.lve.el7h.x86_64 یا بالاتر
- CL8: kernel-4.18.0-553.121.1.lve.el8.x86_64 یا بالاتر
- CL9: kernel-5.14.0-611.49.2.el9_7 یا بالاتر
- CL10: kernel-6.12.0-124.52.2.el10_1 یا بالاتر
راهکار : آپدیت کرنل
برای کلودلینوکس 7 :
yum --enablerepo=cl7h_beta update 'kernel*'
reboot
uname -r
برای کلودلینوکس 8
# فعالسازی کانال بتا و آپدیت کرنل
yum --enablerepo=cloudlinux-updates-testing update 'kernel*'
reboot
uname -r
باید kernel-4.18.0-553.121.1.lve.el8.x86_64 یا بالاتر باشد
برای کلودلینوکس 9
# نصب ریپازیتوری تست
dnf install -y https://repo.almalinux.org/almalinux/9/extras/x86_64/os/Packages/almalinux-release-testing-9-1.el9.noarch.rpm
dnf update 'kernel*'
reboot
# بررسی نسخه
uname -r
# باید kernel-5.14.0-611.49.2.el9_7 یا بالاتر باشد
# غیرفعال کردن ریپازیتوری تست
dnf config-manager --disable almalinux-testing
برای کلودلینوکس 10
# نصب ریپازیتوری تست AlmaLinux
dnf install -y https://repo.almalinux.org/almalinux/10/extras/x86_64/os/Packages/almalinux-release-testing-10-1.el10.x86_64.rpm
dnf update 'kernel*'
reboot
# بررسی نسخه
uname -r
# باید kernel-6.12.0-124.52.2.el10_1 یا بالاتر باشد
# غیرفعال کردن ریپازیتوری تست
dnf config-manager --disable almalinux-testing
بررسی نهایی
# بررسی نسخه کرنل
uname -r
# بررسی اینکه algif_aead غیرفعال شده
modinfo algif_aead | grep filename
# اگر (builtin) نشان داد و mitigation فعال باشد، OK است
اگر کلودلینوکس روی سرور نصب نیست (آلمالینوکس) :
۱. نصب مخزن تست (Install the testing repo)
sudo dnf install -y almalinux-release-testing
۲. آپدیت کردن هسته سیستم (Update the kernel)
sudo dnf update 'kernel*' --enablerepo=almalinux-testing
۳. ریستارت کردن سیستم برای بارگذاری هسته جدید (Reboot to load the new kernel)
sudo reboot
تأیید اجرا شدن هسته اصلاحشده (Confirm you are running the patched kernel)
برای اطمینان از اینکه هسته آپدیت شده در حال اجراست، پس از ریستارت یکی از دستورات زیر را وارد کنید:
بررسی شماره نسخه:
uname -r
هشدار بسیار مهم برای محیطهای تولید (Production)
پیشنهاد نمیکنیم پس از آپدیت، مخزن almalinux-testing را فعال نگه دارید مگر اینکه سیستم شما در یک محیط کاملاً غیرتولیدی (غیرعاملی) باشد.
اگر این سرور محیط تولید (Production) است، میتوانید با دستور زیر مخزن تست را غیرفعال کنید:
sudo dnf config-manager --disable almalinux-testing
در صورت بروز مشکل
چت AlmaLinux (AlmaLinux chat)
وبسایت باگها (bugs.almalinux.org)
نکته ویژه برای کاربران AlmaLinux Kitten 10
نسخه Kitten 10 خودش یک نسخه توسعهای است و مخزن جداگانه تستی ندارد. هسته اصلاحشده مستقیماً در مخزن اصلی قرار میگیرد، بنابراین نیازی به فعال کردن چیزی نیست؛ فقط آپدیت کنید:
sudo dnf update 'kernel*'
sudo reboot
سپس با دستور uname -r نسخه را چک کنید تا مطابقت داشته باشد.
لیست نسخههای هسته اصلاحشده (Patched kernel versions)
برای اطمینان، خروجی uname -r شما باید یکی از نسخههای زیر یا بالاتر باشد:
توزیع حداقل نسخه هسته مورد نیاز برای آپدیت امنیتی
AlmaLinux 8 kernel-4.18.0-553.121.1.el8_10 و بالاتر
AlmaLinux 9 kernel-5.14.0-611.49.2.el9_7 و بالاتر
AlmaLinux 10 kernel-6.12.0-124.52.2.el10_1 و بالاتر
AlmaLinux Kitten 10 kernel-6.12.0-225.el10 و بالاتر
نکته فنی: اگر از سیستم عامل Rocky Linux استفاده میکنید، ممکن است بسته almalinux-release-testing را نداشته باشید (مخزن Rocky متفاوت است). در آن صورت نام مخزن باید به rocky-release-testing تغییر کند.
اگر به هر دلیل موفق به اپدیت کرنل نشدید این دستورات کافی هست و نیاز به ریبوت هم ندارد :
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf
rmmod algif_aead 2>/dev/null