
# Guía de actualización del kernel de Linux - Corrección de CVE-2026-64561
Aviso: Este repositorio solo documenta mi proceso personal de corrección en un entorno de servidor específico. No es un análisis de seguridad profesional. Se aceptan correcciones.
Esta guía ofrece dos métodos para actualizar el kernel de Linux y corregir CVE-2026-64561: instalación de RPM desde ELRepo (recomendada) y compilación desde el código fuente.
| Elemento | Descripción |
|---|---|
| ID de CVE | CVE-2026-64561 |
| Componente afectado | Linux Kernel KVM/x86 |
| Método de corrección | Actualizar el kernel de Linux (RPM de ELRepo o compilación desde el código fuente) |
Esta guía ofrece dos métodos de actualización. Elija según su entorno:
Para entornos con acceso fiable al repositorio ELRepo. No se requiere compilación.
Referencia del método A: 魔方云商家可将CentOS系宿主机内核升级至7.1.6以避免CVE-2026-64561漏洞(Autor: 欢-Huan)
Entorno del sistema:
| Elemento | Información |
|---|---|
| SO | CentOS Stream 8 |
| Kernel original | 4.18.0-552.el8.x86_64 |
| Kernel objetivo | 7.1.6-1.el8.elrepo.x86_64 |
| Fuente del kernel | ELRepo kernel-ml |
Entorno de hardware (configuración del autor, solo como referencia):
| Elemento | Información |
|---|---|
| CPU | AMD Ryzen 9 9950X |
| Propósito | Host KVM / LXD |
| NIC | Realtek r8126 (controlador de terceros) |
Nota: Este es un controlador de NIC para placas base MSI. Las máquinas que puedan conectarse a la red sin controladores especiales no necesitan este paso. Busque el controlador correspondiente para su NIC.
Ruta de actualización:
4.18.0-552.el8
↓
7.1.6-1.el8.elrepo
Si ELRepo ya está instalado, omita este paso.
# Importar la clave GPG de ELRepo
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# Instalar el repositorio ELRepo
dnf install -y https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
Comprobar:
# Comprobar si el repositorio ELRepo se ha añadido
dnf repolist | grep elrepo
# Listar las versiones disponibles de kernel-ml
dnf --enablerepo=elrepo-kernel list kernel-ml --showduplicates
Confirmar que existe:
kernel-ml.x86_64 7.1.6-1.el8.elrepo
# Instalar el cuerpo, el núcleo y los módulos del kernel
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
Compilar controladores de terceros (si es necesario):
# Instalar el paquete de desarrollo del kernel para controladores de terceros
dnf --enablerepo=elrepo-kernel install -y \
kernel-ml-devel-7.1.6-1.el8.elrepo.x86_64
# Ver los paquetes kernel-ml instalados
rpm -qa | grep kernel-ml
Comprobar grub:
# Ver la lista de kernels en grub
grubby --info=ALL | grep title
# Ver todos los kernels disponibles
grubby --info=ALL | grep kernel
Establecer:
# Establecer el kernel de arranque predeterminado
grubby --set-default /boot/vmlinuz-7.1.6-1.el8.elrepo.x86_64
Confirmar:
# Verificar el kernel predeterminado
grubby --default-kernel
# Comprobar el estado guardado del entorno de grub
grub2-editenv list
# Reiniciar el servidor
reboot
Comprobar:
# Ver la versión actual del kernel
uname -r
Salida esperada:
7.1.6-1.el8.elrepo.x86_64
Nota: Este es un controlador de NIC para placas base MSI. Las máquinas que puedan conectarse a la red sin controladores especiales no necesitan este paso. Busque el controlador correspondiente para su NIC.
# Ver la información de versión del controlador r8126
modinfo r8126 | grep vermagic
Si no es:
7.1.6-1.el8.elrepo.x86_64
Es necesario recompilar.
Nota: Este es un controlador de NIC para placas base MSI. Las máquinas que puedan conectarse a la red sin controladores especiales no necesitan este paso. Busque el controlador correspondiente para su NIC.
# Entrar en el directorio de código fuente del controlador
cd /root/qudong_backup/r8126-10.016.00
# Limpiar los artefactos de compilación antiguos
make clean
# Compilar el controlador
make
# Instalar el controlador
make install
# Regenerar las dependencias de módulos
depmod -a
# Cargar el controlador
modprobe r8126
Comprobar:
# Confirmar que el controlador está cargado
lsmod | grep r8126
El kernel 7.1.x incluye el nuevo 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
# Ver todos los kernels disponibles
grubby --info=ALL | grep kernel
Restaurar el kernel anterior:
# Establecer el kernel anterior como entrada de arranque predeterminada
grubby --set-default /boot/vmlinuz-4.18.0-552.el8.x86_64
Ruta de actualización:
CentOS Stream 8
↓
Linux 4.18
↓
ELRepo kernel-ml 7.1.6
Resultado:
✅ Actualizado a Linux 7.1.6
✅ Subsistema KVM/MMU actualizado
✅ Mejor soporte de hardware nuevo
✅ Se conserva la capacidad de reversión al kernel anterior
Notas:
Para entornos sin acceso a ELRepo, o cuando se requiera la versión estable oficial de kernel.org. Consulte los pasos detallados a continuación.
| Elemento | Información |
|---|---|
| SO | CentOS Stream 8 |
| Arquitectura | x86_64 |
| Virtualización | KVM Intel |
| Kernel original | 6.18.8-1.el8.elrepo.x86_64 |
| Kernel en ejecución | 7.1.3 |
| Kernel final | 7.1.7 |
Comprobar el entorno actual:
cat /etc/os-release
uname -r
En mi entorno:
Por lo tanto:
Utilicé el código fuente estable oficial de kernel.org y compilé el kernel 7.1.7 manualmente.
Nota:
Esta es una solución para mi propio entorno, no un método de actualización obligatorio para todos los sistemas.
# Entrar en el directorio de código fuente
cd /usr/src
# Descargar el código fuente de Linux 7.1.7
wget https://cdn.kernel.org/pub/linux/kernel/v7.x/linux-7.1.7.tar.xz
# Extraer el código fuente
tar -xf linux-7.1.7.tar.xz
# Entrar en el directorio de código fuente
cd /usr/src/linux-7.1.7
# Verificar la integridad del código fuente
ls Makefile
Salida esperada:
Makefile
Dado que el kernel 7.1.3 compilado desde el código fuente no generó: