
# Руководство по обновлению ядра Linux — исправление CVE-2026-64561
Дисклеймер: В этом материале описан лишь процесс устранения проблемы в моём серверном окружении; это не профессиональный анализ безопасности. Буду рад исправлениям, если найдёте неточности.
В этом документе описаны два способа обновления ядра Linux для устранения CVE-2026-64561: установка RPM из ELRepo (рекомендуется) и сборка из исходников.
| Пункт | Описание |
|---|
| Идентификатор CVE | CVE-2026-64561 |
| Компонент с уязвимостью | Linux Kernel KVM/x86 |
| Способ устранения | Обновление ядра Linux (RPM из ELRepo или сборка из исходников) |
В этом руководстве представлены два способа обновления; выбирайте в зависимости от окружения:
Подходит для сред с доступом к репозиторию ELRepo; компиляция не требуется, всё просто.
Ссылка на оригинал Метода 1: 魔方云商家可将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 |
Аппаратное окружение (окружение автора, только для справки):
| Пункт | Информация |
|---|---|
| CPU | 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. Подробные шаги приведены ниже.
| Пункт | Информация |
|---|---|
| Система | CentOS Stream 8 |
| Архитектура | x86_64 |
| Виртуализация | KVM Intel |
| Исходное ядро | 6.18.8-1.el8.elrepo.x86_64 |
| Текущее ядро | 7.1.3 |
| Итоговое ядро | 7.1.7 |
Проверка текущего окружения:
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
| Пункт | До исправления | После исправления |
|---|---|---|
| Linux Kernel | 7.1.3 | 7.1.7 |
| Модуль KVM Intel | 7.1.3 | 7.1.7 |
| CVE-2026-64561 | Есть риск | Устранено обновлением ядра |
| Функциональность KVM | Нормальная | Нормальная |
Итоговое состояние:
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 для устранения CVE-2026-64561: установка RPM из ELRepo (рекомендуется) и сборка из исходников.
| Пункт | Описание |
|---|---|
| Идентификатор CVE | CVE-2026-64561 |
| Компонент с уязвимостью | Linux Kernel KVM/x86 |
| Способ устранения | Обновление ядра Linux (RPM из ELRepo или сборка из исходников) |
В руководстве описаны два способа обновления. Выбирайте в зависимости от окружения:
Для сред со стабильным доступом к репозиторию ELRepo. Компиляция не требуется.
Ссылка на оригинал Метода A: 魔方云商家可将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 |
Аппаратное окружение (конфигурация автора, только для справки):
| Пункт | Информация |
|---|---|
| CPU | 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. Подробные шаги приведены ниже.
| Пункт | Информация |
|---|---|
| ОС | CentOS Stream 8 |
| Архитектура | x86_64 |
| Виртуализация | KVM Intel |
| Исходное ядро | 6.18.8-1.el8.elrepo.x86_64 |
| Текущее ядро | 7.1.3 |
| Итоговое ядро | 7.1.7 |
Проверка текущего окружения:
cat /etc/os-release
uname -r
В моём окружении:
Поэтому:
Я использовал официальные стабильные исходники kernel.org и вручную собрал ядро 7.1.7.
Примечание:
Это решение для моего собственного окружения, а не обязательный способ обновления для всех систем.
# 进入源码目录
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
| Пункт | До исправления | После исправления |
|---|---|---|
| Linux Kernel | 7.1.3 | 7.1.7 |
| Модуль KVM Intel | 7.1.3 | 7.1.7 |
| CVE-2026-64561 | Риск существует | Устранено обновлением ядра |
| Функциональность KVM | Нормальная | Нормальная |
Итоговое состояние:
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 /new-kernel-source-directory/.config
Это позволит и дальше переиспользовать конфигурацию.