
Guía de actualización del kernel de Linux - Reparar CVE-2026-53359
Declaración: Este artículo solo documenta el proceso de corrección en mi propio entorno de servidor. No es un análisis de seguridad profesional. Si hay errores, agradezco las correcciones.
Nota de verificación: Tras comparar el código fuente, se confirma que el kernel de Linux 7.1.3 incluye el commit de corrección
81ccda30b4e8("KVM: x86: Fix shadow paging use-after-free due to unexpected role"). Este parche añade una condición de coincidenciarole.worden la funciónkvm_mmu_get_child_sp()enarch/x86/kvm/mmu/mmu.c, eliminando el UAF de shadow paging causado por la falta de coincidencia de role. Por lo tanto, actualizar a 7.1.3 corrige eficazmente esta vulnerabilidad.
Este documento proporciona dos métodos para actualizar el kernel de Linux a 7.1.3, con el fin de corregir CVE-2026-53359: instalación mediante RPM de ELRepo (recomendado) y compilación desde el código fuente.
| Elemento | Descripción |
|---|---|
| ID de CVE | CVE-2026-53359 |
| Componente afectado |
Impacto de la vulnerabilidad:
En el escenario de Shadow Paging de KVM x86, bajo condiciones anómalas, las páginas liberadas pueden seguir siendo referenciadas por entradas rmap, lo que causa un problema de seguridad de memoria.
Referencias de la vulnerabilidad:
| Elemento | Información |
|---|---|
| Sistema | CentOS Stream 8 |
| Kernel anterior | 6.18.8-1.el8.elrepo.x86_64 |
| Kernel posterior | 7.1.3 |
Verificar el entorno actual:
cat /etc/os-release
uname -r
Este tutorial ofrece dos métodos de actualización, elija según su entorno:
Adecuado para entornos con acceso normal al repositorio ELRepo. No requiere compilación, operación simple.
# Importar la clave GPG de ELRepo
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# Instalar el repositorio ELRepo
dnf install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
# Instalar el kernel principal más reciente
dnf --enablerepo=elrepo-kernel install kernel-ml
# Establecer el nuevo kernel como opción de arranque predeterminada
grubby --set-default /boot/vmlinuz-7.1.3-1.el8.elrepo.x86_64
# Reiniciar para aplicar los cambios
reboot
Nota: El número de versión del kernel puede cambiar debido a actualizaciones de ELRepo. Consulte la versión realmente instalada. Después de la instalación, puede verificar con
ls /boot/vmlinuz-*.
Adecuado para entornos sin acceso al repositorio ELRepo, o cuando se necesita la versión estable oficial de kernel.org. Los pasos detallados se muestran a continuación.
Dado que en el entorno de mi servidor:
Por lo tanto, se adopta:
La compilación desde el código fuente estable oficial de kernel.org para actualizar el kernel.
Nota:
Esta solución es solo un método para el entorno de mi servidor. No significa que todos los entornos deban usar la compilación desde el código fuente.
Descarga oficial:
https://cdn.kernel.org/pub/linux/kernel/v7.x/linux-7.1.3.tar.xz
Comando de descarga:
wget https://cdn.kernel.org/pub/linux/kernel/v7.x/linux-7.1.3.tar.xz
Ubicación de subida (entorno sin conexión):
/root/linux-7.1.3.tar.xz
dnf groupinstall "Development Tools" -y
dnf install -y \
ncurses-devel \
elfutils-libelf-devel \
openssl-devel \
bc \
bison \
flex \
perl \
dwarves
mkdir -p /usr/src
cd /usr/src
tar -xf /root/linux-7.1.3.tar.xz
cd linux-7.1.3
ls Makefile # Debería mostrar: Makefile
# Copiar la configuración actual
cp /boot/config-$(uname -r) .config
# Generar nueva configuración
make olddefconfig
# Verificar la configuración de KVM
grep -E "CONFIG_KVM|CONFIG_KVM_INTEL" .config
Salida esperada:
CONFIG_KVM=m
CONFIG_KVM_X86=m
CONFIG_KVM_INTEL=m
# Ver el número de hilos de CPU
nproc
# Compilar (usando todos los núcleos)
make -j$(nproc)
# Verificar la imagen del kernel
ls -lh arch/x86/boot/bzImage
Nota: El tiempo de compilación depende del rendimiento de la CPU y el almacenamiento.
# Instalar módulos
make modules_install
# Verificar la instalación
ls /lib/modules/
# Verificar los módulos de KVM
find /lib/modules/7.1.3 -name "kvm*.ko*"
Salida esperada:
kvm.ko
kvm-intel.ko
kvm-amd.ko
# Instalar el kernel
make install
# Verificar la instalación
ls -lh /boot | grep 7.1.3
Salida esperada:
vmlinuz-7.1.3
initramfs-7.1.3.img
System.map-7.1.3
# Generar la configuración de GRUB
grub2-mkconfig -o /boot/grub2/grub.cfg
# Establecer el kernel predeterminado
grubby --set-default /boot/vmlinuz-7.1.3
# Verificar el kernel predeterminado
grubby --default-kernel
Salida esperada:
/boot/vmlinuz-7.1.3
reboot
Verificar la versión del kernel:
uname -r
# Esperado: 7.1.3
Verificar los módulos de KVM:
lsmod | grep kvm
# Esperado: kvm_intel, kvm, irqbypass
Verificar la ubicación del módulo de KVM:
modinfo kvm_intel | grep filename
# Esperado: /lib/modules/7.1.3/kernel/arch/x86/kvm/kvm-intel.ko
Importante: El kernel antiguo no debe eliminarse inmediatamente.
Listar los kernels disponibles:
grubby --info=ALL | grep kernel
Si el nuevo kernel tiene problemas, establecer el kernel antiguo:
grubby --set-default /boot/vmlinuz-6.18.8-1.el8.elrepo.x86_64
reboot
| Elemento | Antes | Después |
|---|---|---|
| Versión del kernel | 6.18.8-1.el8.elrepo.x86_64 | 7.1.3 |
| Estado de KVM | N/A | Habilitado |
| CVE-2026-53359 | Afectado | Corregido |
Aviso: Este repositorio solo documenta mi proceso de corrección personal en un entorno de servidor específico. No es un análisis de seguridad profesional. Las correcciones son bienvenidas.
Nota de verificación: La comparación del código fuente confirma que el kernel de Linux 7.1.3 incluye el commit de corrección
81ccda30b4e8("KVM: x86: Fix shadow paging use-after-free due to unexpected role"). El parche añade una condición de coincidenciarole.worden la funciónkvm_mmu_get_child_sp()enarch/x86/kvm/mmu/mmu.c, eliminando el UAF de shadow paging causado por la falta de coincidencia de role. Por lo tanto, actualizar a 7.1.3 corrige eficazmente esta vulnerabilidad.
Esta guía proporciona dos métodos para actualizar el kernel de Linux a 7.1.3, con el fin de corregir CVE-2026-53359: instalación mediante RPM de ELRepo (recomendado) y compilación desde el código fuente.
| Elemento | Descripción |
|---|---|
| ID de CVE | CVE-2026-53359 |
| Componente afectado |
La vulnerabilidad está relacionada con shadow paging de KVM x86. Bajo condiciones específicas, las páginas liberadas pueden seguir siendo referenciadas por entradas rmap, lo que causa un posible problema de seguridad de memoria.
Referencias:
Verificar el entorno actual:
cat /etc/os-release
uname -r
Esta guía proporciona dos métodos de actualización. Elija según su entorno:
Para entornos con acceso confiable al repositorio ELRepo. No requiere compilación.
# Importar la clave GPG de ELRepo
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# Instalar el repositorio ELRepo
dnf install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
# Instalar el kernel principal más reciente
dnf --enablerepo=elrepo-kernel install kernel-ml
# Establecer el nuevo kernel como opción de arranque predeterminada
grubby --set-default /boot/vmlinuz-7.1.3-1.el8.elrepo.x86_64
# Reiniciar para aplicar los cambios
reboot
Nota: Los números de versión del kernel pueden cambiar con las actualizaciones de ELRepo. Verifique la versión realmente instalada con
ls /boot/vmlinuz-*.
Para entornos sin acceso a ELRepo, o cuando se requiere la versión estable oficial de kernel.org. Consulte los pasos detallados a continuación.
En mi entorno:
Por lo tanto:
Utilicé el código fuente estable oficial de kernel.org y compilé el Kernel 7.1.3 manualmente.
Nota:
Esta es mi propia solución de entorno, no un método de actualización obligatorio para todos los sistemas.
Fuente oficial:
https://cdn.kernel.org/pub/linux/kernel/v7.x/linux-7.1.3.tar.xz
Descargar:
wget https://cdn.kernel.org/pub/linux/kernel/v7.x/linux-7.1.3.tar.xz
Ubicación de subida (si está sin conexión):
/root/linux-7.1.3.tar.xz
dnf groupinstall "Development Tools" -y
dnf install -y \
ncurses-devel \
elfutils-libelf-devel \
openssl-devel \
bc \
bison \
flex \
perl \
dwarves \
tar \
xz
Verificar el compilador:
gcc --version
mkdir -p /usr/src
cd /usr/src
tar -xf /root/linux-7.1.3.tar.xz
cd linux-7.1.3
ls Makefile # Debería mostrar: Makefile
# Copiar la configuración actual del kernel
cp /boot/config-$(uname -r) .config
# Generar nueva configuración
make olddefconfig
# Verificar la configuración de KVM
grep -E "CONFIG_KVM|CONFIG_KVM_INTEL" .config
Salida esperada:
CONFIG_KVM=m
CONFIG_KVM_X86=m
CONFIG_KVM_INTEL=m
# Verificar los hilos de CPU
nproc
# Compilar (usar todos los núcleos disponibles)
make -j$(nproc)
# Verificar la imagen del kernel
ls -lh arch/x86/boot/bzImage
Nota: El tiempo de compilación depende del rendimiento de la CPU y el almacenamiento.
# Instalar módulos
make modules_install
# Verificar la instalación
ls /lib/modules/
# Verificar los módulos de KVM
find /lib/modules/7.1.3 -name "kvm*.ko*"
Salida esperada:
kvm.ko
kvm-intel.ko
kvm-amd.ko
# Instalar el kernel
make install
# Verificar la instalación
ls -lh /boot | grep 7.1.3
Salida esperada:
vmlinuz-7.1.3
initramfs-7.1.3.img
System.map-7.1.3
# Generar la configuración de GRUB
grub2-mkconfig -o /boot/grub2/grub.cfg
# Establecer el kernel predeterminado
grubby --set-default /boot/vmlinuz-7.1.3
# Verificar el kernel predeterminado
grubby --default-kernel
Salida esperada:
/boot/vmlinuz-7.1.3
reboot
Verificar la versión del kernel:
uname -r
# Esperado: 7.1.3
Verificar los módulos de KVM:
lsmod | grep kvm
# Esperado: kvm_intel, kvm, irqbypass
Verificar la ubicación del módulo de KVM:
modinfo kvm_intel | grep filename
# Esperado: /lib/modules/7.1.3/kernel/arch/x86/kvm/kvm-intel.ko
Importante: Los kernels antiguos no deben eliminarse inmediatamente.
Listar los kernels disponibles:
grubby --info=ALL | grep kernel
Si el nuevo kernel tiene problemas, establecer el kernel antiguo:
grubby --set-default /boot/vmlinuz-6.18.8-1.el8.elrepo.x86_64
reboot
| Elemento | Antes | Después |
|---|---|---|
| Versión del kernel | 6.18.8-1.el8.elrepo.x86_64 | 7.1.3 |
| Estado de KVM | N/A | Habilitado |
| CVE-2026-53359 | Vulnerable | Corregido |
| Linux Kernel KVM x86 Shadow MMU |
| Tipo de vulnerabilidad | Use After Free (UAF) |
| Método de corrección | Actualizar el kernel de Linux a 7.1.3 (RPM de ELRepo o compilación desde el código fuente) |
| Arquitectura |
| x86_64 |
| Virtualización | KVM Intel |
| Linux Kernel KVM x86 Shadow MMU |
| Tipo de vulnerabilidad | Use After Free (UAF) |
| Método de corrección | Actualizar el kernel de Linux a 7.1.3 (RPM de ELRepo o compilación desde el código fuente) |
| Elemento | Valor |
|---|
| SO | CentOS Stream 8 |
| Kernel antiguo | 6.18.8-1.el8.elrepo.x86_64 |
| Kernel nuevo | 7.1.3 |
| Arquitectura | x86_64 |
| Virtualización | KVM Intel |
| Compilador | GCC 8.5 |