
Guia de atualização do kernel Linux - Corrigir CVE-2026-53359
Aviso: Este artigo documenta apenas o processo de correção no meu ambiente de servidor pessoal. Não é uma análise profissional de segurança. Se houver algo inadequado, correções são bem-vindas.
Nota de Verificação: Após comparação do código-fonte, foi confirmado que o Linux Kernel 7.1.3 já inclui o commit de correção
81ccda30b4e8("KVM: x86: Fix shadow paging use-after-free due to unexpected role"). Este patch adiciona uma condição de correspondênciarole.wordna funçãokvm_mmu_get_child_sp()emarch/x86/kvm/mmu/mmu.c, eliminando fundamentalmente o UAF do shadow paging causado pela incompatibilidade de role. Portanto, atualizar para 7.1.3 pode corrigir efetivamente esta vulnerabilidade.
Este documento fornece duas formas de atualizar o Linux Kernel para 7.1.3, para corrigir CVE-2026-53359: instalação via RPM ELRepo (recomendada) e compilação a partir do código-fonte.
| Item | Descrição |
|---|---|
| ID do CVE | CVE-2026-53359 |
| Componente Afetado | Shadow MMU do KVM x86 do Linux Kernel |
| Tipo de Vulnerabilidade | Use After Free (UAF) |
| Forma de Correção | Atualizar o Linux Kernel para 7.1.3 (RPM ELRepo ou compilação do código-fonte) |
Impacto da Vulnerabilidade:
No cenário de Shadow Paging do KVM x86, em condições anormais, páginas liberadas podem ainda ser referenciadas por entradas rmap, causando um problema de segurança de memória.
Referências da Vulnerabilidade:
| Item | Informação |
|---|---|
| Sistema | CentOS Stream 8 |
| Kernel antes da atualização | 6.18.8-1.el8.elrepo.x86_64 |
| Kernel após a atualização | 7.1.3 |
| Arquitetura | x86_64 |
| Virtualização | KVM Intel |
Verificar o ambiente atual:
cat /etc/os-release
uname -r
Este tutorial oferece duas formas de atualização, escolha de acordo com o ambiente:
Adequado para ambientes com acesso normal ao repositório ELRepo, sem necessidade de compilação, operação simples.
# Importar a chave GPG do ELRepo
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# Instalar o repositório ELRepo
dnf install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
# Instalar o kernel mainline mais recente
dnf --enablerepo=elrepo-kernel install kernel-ml
# Definir o novo kernel como entrada de inicialização padrão
grubby --set-default /boot/vmlinuz-7.1.3-1.el8.elrepo.x86_64
# Reiniciar para aplicar
reboot
Nota: O número da versão do kernel pode mudar conforme as atualizações do ELRepo. Verifique a versão realmente instalada com
ls /boot/vmlinuz-*.
Adequado para ambientes que não podem acessar o repositório ELRepo ou que precisam usar a versão estável oficial do kernel.org. As etapas detalhadas estão abaixo.
No meu ambiente de servidor:
Portanto foi adotado:
Método de compilação a partir do código-fonte oficial estável do kernel.org para atualizar o kernel.
Explicação:
Esta solução é apenas uma solução para o ambiente do meu servidor, não significa que todos os ambientes precisam usar compilação a partir do código-fonte.
Download oficial:
https://cdn.kernel.org/pub/linux/kernel/v7.x/linux-7.1.3.tar.xz
Comando de download:
wget https://cdn.kernel.org/pub/linux/kernel/v7.x/linux-7.1.3.tar.xz
Local de upload (ambiente offline):
/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 # Deve mostrar: Makefile
# Copiar a configuração atual
cp /boot/config-$(uname -r) .config
# Gerar nova configuração
make olddefconfig
# Verificar a configuração do KVM
grep -E "CONFIG_KVM|CONFIG_KVM_INTEL" .config
Saída esperada:
CONFIG_KVM=m
CONFIG_KVM_X86=m
CONFIG_KVM_INTEL=m
# Verificar o número de threads da CPU
nproc
# Compilar (usando todos os núcleos)
make -j$(nproc)
# Verificar a imagem do kernel
ls -lh arch/x86/boot/bzImage
Nota: O tempo de compilação depende do desempenho da CPU e do armazenamento.
# Instalar módulos
make modules_install
# Verificar a instalação
ls /lib/modules/
# Verificar módulos KVM
find /lib/modules/7.1.3 -name "kvm*.ko*"
Saída esperada:
kvm.ko
kvm-intel.ko
kvm-amd.ko
# Instalar kernel
make install
# Verificar a instalação
ls -lh /boot | grep 7.1.3
Saída esperada:
vmlinuz-7.1.3
initramfs-7.1.3.img
System.map-7.1.3
# Gerar a configuração do GRUB
grub2-mkconfig -o /boot/grub2/grub.cfg
# Definir o kernel padrão
grubby --set-default /boot/vmlinuz-7.1.3
# Verificar o kernel padrão
grubby --default-kernel
Saída esperada:
/boot/vmlinuz-7.1.3
reboot
Verificar a versão do kernel:
uname -r
# Esperado: 7.1.3
Verificar os módulos KVM:
lsmod | grep kvm
# Esperado: kvm_intel, kvm, irqbypass
Verificar a localização do módulo KVM:
modinfo kvm_intel | grep filename
# Esperado: /lib/modules/7.1.3/kernel/arch/x86/kvm/kvm-intel.ko
Importante: O kernel antigo não deve ser removido imediatamente.
Listar kernels disponíveis:
grubby --info=ALL | grep kernel
Se o novo kernel tiver problemas, definir o kernel antigo:
grubby --set-default /boot/vmlinuz-6.18.8-1.el8.elrepo.x86_64
reboot
| Item | Antes da Atualização | Após a Atualização |
|---|---|---|
| Versão do Kernel | 6.18.8-1.el8.elrepo.x86_64 | 7.1.3 |
| Status do KVM | N/A | Ativado |
| CVE-2026-53359 | Afetado | Corrigido |
Aviso: Este repositório documenta apenas meu processo de correção pessoal em um ambiente de servidor específico. Não é uma análise profissional de segurança. Correções são bem-vindas.
Nota de Verificação: A comparação do código-fonte confirma que o Linux Kernel 7.1.3 inclui o commit de correção
81ccda30b4e8("KVM: x86: Fix shadow paging use-after-free due to unexpected role"). O patch adiciona uma condição de correspondênciarole.wordna funçãokvm_mmu_get_child_sp()emarch/x86/kvm/mmu/mmu.c, eliminando o UAF do shadow paging causado pela incompatibilidade de role. Portanto, atualizar para 7.1.3 corrige efetivamente esta vulnerabilidade.
Este guia fornece dois métodos para atualizar o Linux Kernel para 7.1.3 a fim de corrigir CVE-2026-53359: instalação via RPM ELRepo (recomendada) e compilação a partir do código-fonte.
| Item | Descrição |
|---|---|
| ID do CVE | CVE-2026-53359 |
| Componente Afetado | Shadow MMU do KVM x86 do Linux Kernel |
| Tipo de Vulnerabilidade | Use After Free (UAF) |
| Método de Correção | Atualizar o Linux Kernel para 7.1.3 (RPM ELRepo ou compilação do código-fonte) |
A vulnerabilidade está relacionada ao shadow paging do KVM x86. Sob condições específicas, páginas liberadas podem ainda ser referenciadas por entradas rmap, causando um potencial problema de segurança de memória.
Referências:
| Item | Valor |
|---|---|
| Sistema Operacional | CentOS Stream 8 |
| Kernel Antigo | 6.18.8-1.el8.elrepo.x86_64 |
| Novo Kernel | 7.1.3 |
| Arquitetura | x86_64 |
| Virtualização | KVM Intel |
| Compilador | GCC 8.5 |
Verificar o ambiente atual:
cat /etc/os-release
uname -r
Este guia fornece dois métodos de atualização. Escolha com base no seu ambiente:
Para ambientes com acesso confiável ao repositório ELRepo. Sem necessidade de compilação.
# Importar a chave GPG do ELRepo
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# Instalar o repositório ELRepo
dnf install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
# Instalar o kernel mainline mais recente
dnf --enablerepo=elrepo-kernel install kernel-ml
# Definir o novo kernel como entrada de inicialização padrão
grubby --set-default /boot/vmlinuz-7.1.3-1.el8.elrepo.x86_64
# Reiniciar para aplicar
reboot
Nota: Os números de versão do kernel podem mudar com as atualizações do ELRepo. Verifique a versão realmente instalada com
ls /boot/vmlinuz-*.
Para ambientes sem acesso ao ELRepo, ou quando a versão estável oficial do kernel.org é necessária. Veja as etapas detalhadas abaixo.
No meu ambiente:
Portanto:
Usei o código-fonte oficial estável do kernel.org e compilei o Kernel 7.1.3 manualmente.
Nota:
Esta é minha própria solução de ambiente, não um método de atualização obrigatório para todos os sistemas.
Fonte oficial:
https://cdn.kernel.org/pub/linux/kernel/v7.x/linux-7.1.3.tar.xz
Download:
wget https://cdn.kernel.org/pub/linux/kernel/v7.x/linux-7.1.3.tar.xz
Local de upload (se offline):
/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 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 # Deve mostrar: Makefile
# Copiar a configuração atual do kernel
cp /boot/config-$(uname -r) .config
# Gerar nova configuração
make olddefconfig
# Verificar a configuração do KVM
grep -E "CONFIG_KVM|CONFIG_KVM_INTEL" .config
Saída esperada:
CONFIG_KVM=m
CONFIG_KVM_X86=m
CONFIG_KVM_INTEL=m
# Verificar threads da CPU
nproc
# Compilar (usar todos os núcleos disponíveis)
make -j$(nproc)
# Verificar a imagem do kernel
ls -lh arch/x86/boot/bzImage
Nota: O tempo de compilação depende do desempenho da CPU e do armazenamento.
# Instalar módulos
make modules_install
# Verificar instalação
ls /lib/modules/
# Verificar módulos KVM
find /lib/modules/7.1.3 -name "kvm*.ko*"
Saída esperada:
kvm.ko
kvm-intel.ko
kvm-amd.ko
# Instalar kernel
make install
# Verificar instalação
ls -lh /boot | grep 7.1.3
Saída esperada:
vmlinuz-7.1.3
initramfs-7.1.3.img
System.map-7.1.3
# Gerar a configuração do GRUB
grub2-mkconfig -o /boot/grub2/grub.cfg
# Definir kernel padrão
grubby --set-default /boot/vmlinuz-7.1.3
# Verificar kernel padrão
grubby --default-kernel
Saída esperada:
/boot/vmlinuz-7.1.3
reboot
Verificar versão do kernel:
uname -r
# Esperado: 7.1.3
Verificar módulos KVM:
lsmod | grep kvm
# Esperado: kvm_intel, kvm, irqbypass
Verificar localização do módulo KVM:
modinfo kvm_intel | grep filename
# Esperado: /lib/modules/7.1.3/kernel/arch/x86/kvm/kvm-intel.ko
Importante: Os kernels antigos não devem ser removidos imediatamente.
Listar kernels disponíveis:
grubby --info=ALL | grep kernel
Se o novo kernel tiver problemas, definir o kernel antigo:
grubby --set-default /boot/vmlinuz-6.18.8-1.el8.elrepo.x86_64
reboot
| Item | Antes | Depois |
|---|---|---|
| Versão do Kernel | 6.18.8-1.el8.elrepo.x86_64 | 7.1.3 |
| Status do KVM | N/A | Ativado |
| CVE-2026-53359 | Vulnerável | Corrigido |