
Linux 内核升级指南 - 修复 CVE-2026-64561
إخلاء المسؤولية: يوثّق هذا المستند عملية الإصلاح على بيئة الخادم الخاصة بي فقط، وليس تحليلًا أمنيًا متخصصًا. أي ملاحظات أو تصحيحات مرحّب بها.
يوفر هذا المستند طريقتين لترقية Linux Kernel لإصلاح CVE-2026-64561: التثبيت عبر ELRepo RPM (موصى به) والتجميع من المصدر.
| البند | الوصف |
|---|---|
| معرف CVE | CVE-2026-64561 |
| المكوّن المُتأثر | Linux Kernel KVM/x86 |
| طريقة الإصلاح | ترقية Linux Kernel (ELRepo RPM أو التجميع من المصدر) |
يوفر هذا البرنامج التعليمي طريقتين للترقية، ويمكنك الاختيار بناءً على بيئتك:
مناسبة للبيئات التي يمكنها الوصول إلى مستودع ELRepo بشكل طبيعي، دون الحاجة إلى التجميع، وخطواتها بسيطة.
مرجع المقال الأصلي للطريقة الأولى: يمكن لمزودي سحابة Magic Cube ترقية نواة مضيفات CentOS إلى 7.1.6 لتجنب ثغرة CVE-2026-64561 (المؤلف: 欢-Huan)
بيئة النظام:
| البند | المعلومات |
|---|---|
| نظام التشغيل | CentOS Stream 8 |
| النواة الأصلية | 4.18.0-552.el8.x86_64 |
| النواة المستهدفة | 7.1.6-1.el8.elrepo.x86_64 |
| مصدر النواة | ELRepo kernel-ml |
بيئة العتاد (بيئة مؤلف هذا المقال، للرجوع إليها فقط):
| البند | المعلومات |
|---|---|
| وحدة المعالجة المركزية | AMD Ryzen 9 9950X |
| الاستخدام | مضيف KVM / LXD |
| بطاقة الشبكة | Realtek r8126 (برنامج تشغيل تابع لجهة خارجية) |
ملاحظة: هذا برنامج تشغيل بطاقة شبكة خاص باللوحة الأم MSI. الأجهزة التي تتصل بالشبكة بشكل طبيعي دون الحاجة إلى برامج تشغيل خاصة لا تحتاج إلى هذه الخطوة. ابحث عن برنامج التشغيل المناسب لبطاقة الشبكة لديك، فبرامج التشغيل ليست نفسها لدى الجميع.
التحقق من البيئة الحالية:
cat /etc/os-release
uname -r
مسار الترقية:
4.18.0-552.el8
↓
7.1.6-1.el8.elrepo
إذا كان ELRepo مثبّتًا بالفعل على النظام، فيمكن تخطّي هذه الخطوة.
# 导入 ELRepo GPG 密钥
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# 安装 ELRepo 仓库
dnf install -y https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
التحقق:
# 检查 ELRepo 仓库是否已添加
dnf repolist | grep elrepo
# 查看可用的 kernel-ml 版本列表
dnf --enablerepo=elrepo-kernel list kernel-ml --showduplicates
تأكيد وجود:
kernel-ml.x86_64 7.1.6-1.el8.elrepo
# 安装内核本体、核心和模块
dnf --enablerepo=elrepo-kernel install -y \
kernel-ml-7.1.6-1.el8.elrepo.x86_64 \
kernel-ml-core-7.1.6-1.el8.elrepo.x86_64 \
kernel-ml-modules-7.1.6-1.el8.elrepo.x86_64
تجميع برامج تشغيل الطرف الثالث (إذا لزم الأمر):
# 安装内核开发包用于编译第三方驱动
dnf --enablerepo=elrepo-kernel install -y \
kernel-ml-devel-7.1.6-1.el8.elrepo.x86_64
# 查看已安装的 kernel-ml 包
rpm -qa | grep kernel-ml
عرض GRUB:
# 查看 grub 中的内核列表
grubby --info=ALL | grep title
# 查看所有可用内核
grubby --info=ALL | grep kernel
التعيين:
# 设置默认启动内核
grubby --set-default /boot/vmlinuz-7.1.6-1.el8.elrepo.x86_64
التأكيد:
# 验证默认内核
grubby --default-kernel
# 检查 grub 环境保存状态
grub2-editenv list
# 重启服务器
reboot
التحقق:
# 查看当前内核版本
uname -r
المخرجات المتوقعة:
7.1.6-1.el8.elrepo.x86_64
ملاحظة: هذا برنامج تشغيل بطاقة شبكة خاص باللوحة الأم MSI. الأجهزة التي تتصل بالشبكة بشكل طبيعي دون الحاجة إلى برامج تشغيل خاصة لا تحتاج إلى هذه الخطوة. ابحث عن برنامج التشغيل المناسب لبطاقة الشبكة لديك، فبرامج التشغيل ليست نفسها لدى الجميع.
# 查看 r8126 驱动版本信息
modinfo r8126 | grep vermagic
إذا لم يكن كذلك:
7.1.6-1.el8.elrepo.x86_64
يلزم إعادة التجميع.
ملاحظة: هذا برنامج تشغيل بطاقة شبكة خاص باللوحة الأم MSI. الأجهزة التي تتصل بالشبكة بشكل طبيعي دون الحاجة إلى برامج تشغيل خاصة لا تحتاج إلى هذه الخطوة. ابحث عن برنامج التشغيل المناسب لبطاقة الشبكة لديك، فبرامج التشغيل ليست نفسها لدى الجميع.
# 进入驱动源码目录
cd /root/qudong_backup/r8126-10.016.00
# 清理旧编译产物
make clean
# 编译驱动
make
# 安装驱动
make install
# 重新生成模块依赖
depmod -a
# 加载驱动
modprobe r8126
التحقق:
# 确认驱动已加载
lsmod | grep r8126
تتضمن النواة 7.1.x نظام KVM/MMU الجديد:
CONFIG_KVM_GUEST_MEMFD=y
CONFIG_KVM_GENERIC_MMU_NOTIFIER=y
CONFIG_KVM_MM_U_LOCKLESS_AGING=y
CONFIG_KVM_EXTERNAL_WRITE_TRACKING=y
CONFIG_KVM_MAX_NR_VCPUS=4096
# 查看所有可用内核
grubby --info=ALL | grep kernel
استعادة النواة القديمة:
# 设置旧内核为默认启动项
grubby --set-default /boot/vmlinuz-4.18.0-552.el8.x86_64
مسار الترقية:
CentOS Stream 8
↓
Linux 4.18
↓
ELRepo kernel-ml 7.1.6
النتيجة:
✅ 升级到 Linux 7.1.6
✅ KVM/MMU 子系统更新
✅ 支持更多新硬件
✅ 保留旧内核回滚能力
ملاحظات:
مناسبة للبيئات التي لا يمكنها الوصول إلى مستودع ELRepo، أو التي تحتاج إلى استخدام الإصدار المستقر الرسمي من kernel.org. الخطوات التفصيلية موضحة أدناه.
التحقق من البيئة الحالية:
cat /etc/os-release
uname -r
نظرًا لبيئة الخادم الخاصة بي:
ولذلك تم اعتماد:
ترقية النواة عبر تجميع الكود المصدري المستقر الرسمي من kernel.org.
ملاحظة:
هذا الحل خاص ببيئة الخادم الخاصة بي فقط، ولا يعني أن جميع البيئات يجب أن تستخدم التجميع من المصدر.
# 进入源码目录
cd /usr/src
# 下载 Linux 7.1.7 源码
wget https://cdn.kernel.org/pub/linux/kernel/v7.x/linux-7.1.7.tar.xz
# 解压源码
tar -xf linux-7.1.7.tar.xz
# 进入源码目录
cd /usr/src/linux-7.1.7
# 确认源码完整
ls Makefile
المخرجات المتوقعة:
Makefile
نظرًا لأن النواة 7.1.3 المثبّتة عن طريق التجميع من المصدر لم تُنشئ:
/boot/config-7.1.3
لذلك تم استخدام الإعدادات المحفوظة أثناء التجميع السابق:
# 检查旧配置是否存在
ls -lh /usr/src/linux-7.1.3/.config
تأكيد وجود:
/usr/src/linux-7.1.3/.config
# 复制旧配置到新内核目录
cp /usr/src/linux-7.1.3/.config /usr/src/linux-7.1.7/.config
# 进入新内核源码目录
cd /usr/src/linux-7.1.7
# 基于旧配置生成新配置
make olddefconfig
المخرجات المتوقعة:
#
# configuration written to .config
#
# 检查 KVM 相关配置项
grep -E "CONFIG_KVM|CONFIG_KVM_INTEL" .config
المخرجات المتوقعة:
CONFIG_KVM_X86=m
CONFIG_KVM=m
CONFIG_KVM_INTEL=m
شرح:
يلبي متطلبات بيئة KVM Intel الحالية.
# 查看 CPU 核心数
nproc
# 使用全部 CPU 编译(根据实际核心数调整)
make -j$(nproc)
# 编译完成后验证内核镜像
ls -lh arch/x86/boot/bzImage
المخرجات المتوقعة:
-rw-r--r-- 1 root root xxM arch/x86/boot/bzImage
يعني ذلك أن صورة النواة تم توليدها بنجاح.
# 安装内核模块
make modules_install
# 验证模块安装
ls /lib/modules/
المخرجات المتوقعة:
7.1.7
# 检查 KVM 模块
find /lib/modules/7.1.7 -name "kvm*"
المخرجات المتوقعة:
/lib/modules/7.1.7/kernel/arch/x86/kvm/kvm.ko
/lib/modules/7.1.7/kernel/arch/x86/kvm/kvm-intel.ko
/lib/modules/7.1.7/kernel/arch/x86/kvm/kvm-amd.ko
التأكيد:
# 安装内核
make install
# 检查安装结果
ls -lh /boot | grep 7.1.7
المخرجات المتوقعة:
initramfs-7.1.7.img
System.map-7.1.7
vmlinuz-7.1.7
# 生成 GRUB 配置
grub2-mkconfig -o /boot/grub2/grub.cfg
# 设置默认启动内核
grubby --set-default /boot/vmlinuz-7.1.7
# 验证默认内核
grubby --default-kernel
المخرجات المتوقعة:
/boot/vmlinuz-7.1.7
# 重启服务器
reboot
# 查看当前内核版本
uname -r
المخرجات المتوقعة:
7.1.7
✅ تم تشغيل Linux 7.1.7
# 查看 KVM 模块
lsmod | grep kvm
المخرجات المتوقعة:
kvm_intel
kvm
irqbypass
✅ تم تحميل KVM Intel بشكل طبيعي
# 查看 KVM 模块来源
modinfo kvm_intel | grep filename
المخرجات المتوقعة:
filename: /lib/modules/7.1.7/kernel/arch/x86/kvm/kvm-intel.ko
✅ يتم حاليًا استخدام وحدة KVM Intel المولّدة من تجميع 7.1.7
مهم: لا ينبغي حذف النواة القديمة فورًا.
# 列出可用内核
grubby --info=ALL | grep kernel
إذا كانت النواة الجديدة بها مشكلات، فاضبط النواة القديمة:
# 设置旧内核为默认启动项
grubby --set-default /boot/vmlinuz-7.1.3
# 重启生效
reboot
حالة التشغيل النهائية:
CentOS Stream 8
x86_64
Kernel:
7.1.7
KVM:
kvm_intel
kvm
irqbypass
اكتمل الإصلاح.
الاحتفاظ مؤقتًا بـ:
7.1.3
6.18.8-1.el8.elrepo.x86_64
4.18.x
للتراجع في الحالات غير الطبيعية.
# 查看可用内核
grubby --info=ALL | grep kernel
يُنصح بحفظها عند مواصلة الترقية لاحقًا:
# 保存当前内核配置
cp /usr/src/linux-7.1.7/.config /boot/config-7.1.7
للترقيات اللاحقة:
# 复制配置到新内核目录
cp /boot/config-7.1.7 新内核源码目录/.config
وبذلك يمكن الاستمرار في إعادة استخدام الإعدادات.
إخلاء المسؤولية: يوثّق هذا المستودع عملية الإصلاح الشخصية على بيئة خادم محددة فقط. وهو ليس تحليلًا أمنيًا متخصصًا. التصحيحات مرحّب بها.
يوفر هذا الدليل طريقتين لترقية Linux Kernel لإصلاح CVE-2026-64561: التثبيت عبر ELRepo RPM (موصى به) والتجميع من المصدر.
| البند | الوصف |
|---|---|
| معرف CVE | CVE-2026-64561 |
| المكوّن المتأثر | Linux Kernel KVM/x86 |
| طريقة الإصلاح | ترقية Linux Kernel (ELRepo RPM أو التجميع من المصدر) |
يوفر هذا الدليل طريقتين للترقية. اختر بناءً على بيئتك:
للبِيئات التي تتمتع بوصول موثوق إلى مستودع ELRepo. لا حاجة إلى أي تجميع.
مرجع الطريقة أ: [يمكن لمزودي سحابة Magic Cube ترقية نواة مضيفات CentOS إلى 7
| البند | المعلومات |
|---|
| النظام | CentOS Stream 8 |
| البنية | x86_64 |
| المحاكاة الافتراضية | KVM Intel |
| النواة الأصلية | 6.18.8-1.el8.elrepo.x86_64 |
| النواة قيد التشغيل | 7.1.3 |
| النواة النهائية | 7.1.7 |
| البند |
|---|
| قبل الإصلاح |
|---|
| بعد الإصلاح |
|---|
| Linux Kernel | 7.1.3 | 7.1.7 |
| وحدة KVM Intel | 7.1.3 | 7.1.7 |
| CVE-2026-64561 | توجد مخاطرة | تم الإصلاح عبر ترقية النواة |
| وظيفة KVM | طبيعية | طبيعية |