
Guida all'aggiornamento del kernel Linux - Fix per CVE-2026-53359
Dichiarazione: Questo documento registra esclusivamente la procedura di correzione eseguita sul mio ambiente server e non è un'analisi professionale di sicurezza. Se vi sono imprecisioni, le correzioni sono benvenute.
Nota di verifica: Il confronto del codice sorgente conferma che il kernel Linux 7.1.3 include il commit di correzione
81ccda30b4e8("KVM: x86: Fix shadow paging use-after-free due to unexpected role"). La patch aggiunge la condizione di corrispondenzarole.wordnella funzionekvm_mmu_get_child_sp()inarch/x86/kvm/mmu/mmu.c, eliminando alla radice la UAF dello shadow paging causata dalla mancata corrispondenza del role. Pertanto, l'aggiornamento alla 7.1.3 può correggere efficacemente questa vulnerabilità.
Questo documento fornisce due metodi per aggiornare il kernel Linux alla versione 7.1.3, al fine di correggere CVE-2026-53359: installazione RPM tramite ELRepo (consigliata) e compilazione dal codice sorgente.
| Voce | Descrizione |
|---|---|
| ID CVE | CVE-2026-53359 |
| Componente vulnerabile | Linux Kernel KVM x86 Shadow MMU |
| Tipo di vulnerabilità | Use After Free (UAF) |
| Metodo di correzione | Aggiornare il kernel Linux alla 7.1.3 (RPM ELRepo o compilazione dal sorgente) |
Impatto della vulnerabilità:
Nello scenario KVM x86 Shadow Paging, in condizioni anomale una pagina rilasciata può risultare ancora referenziata da voci rmap, causando un problema di sicurezza della memoria.
Riferimenti della vulnerabilità:
| Voce | Informazione |
|---|---|
| Sistema | CentOS Stream 8 |
| Kernel precedente | 6.18.8-1.el8.elrepo.x86_64 |
| Kernel successivo | 7.1.3 |
| Architettura | x86_64 |
| Virtualizzazione | KVM Intel |
Controllo dell'ambiente corrente:
cat /etc/os-release
uname -r
Questa guida fornisce due metodi di aggiornamento; puoi scegliere in base all'ambiente:
Adatto ad ambienti che possono accedere normalmente al repository ELRepo: non richiede compilazione ed è semplice da eseguire.
# 导入 ELRepo GPG 密钥
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# 安装 ELRepo 仓库
dnf install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
# 安装最新主线内核
dnf --enablerepo=elrepo-kernel install kernel-ml
# 设置新内核为默认启动项
grubby --set-default /boot/vmlinuz-7.1.3-1.el8.elrepo.x86_64
# 重启生效
reboot
Nota: Il numero di versione del kernel può variare in seguito agli aggiornamenti di ELRepo; fare riferimento alla versione effettivamente installata. Dopo l'installazione è possibile verificare con
ls /boot/vmlinuz-*.
Adatto ad ambienti senza accesso al repository ELRepo o in cui è necessario utilizzare la versione stable ufficiale di kernel.org. I passaggi dettagliati sono riportati di seguito.
Nel mio ambiente server:
Pertanto ho adottato:
la compilazione dal codice sorgente stable ufficiale di kernel.org per aggiornare il kernel.
Nota:
Questa soluzione rappresenta solo il metodo adottato per il mio ambiente server e non implica che tutti gli ambienti debbano compilare dal codice sorgente.
Download ufficiale:
https://cdn.kernel.org/pub/linux/kernel/v7.x/linux-7.1.3.tar.xz
Comando di download:
wget https://cdn.kernel.org/pub/linux/kernel/v7.x/linux-7.1.3.tar.xz
Posizione di 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 # 应显示: Makefile
# 复制当前配置
cp /boot/config-$(uname -r) .config
# 生成新配置
make olddefconfig
# 检查 KVM 配置
grep -E "CONFIG_KVM|CONFIG_KVM_INTEL" .config
Output previsto:
CONFIG_KVM=m
CONFIG_KVM_X86=m
CONFIG_KVM_INTEL=m
# 查看 CPU 线程数
nproc
# 编译(使用所有核心)
make -j$(nproc)
# 验证内核镜像
ls -lh arch/x86/boot/bzImage
Nota: Il tempo di compilazione dipende dalla CPU e dalle prestazioni dello storage.
# 安装模块
make modules_install
# 验证安装
ls /lib/modules/
# 检查 KVM 模块
find /lib/modules/7.1.3 -name "kvm*.ko*"
Output previsto:
kvm.ko
kvm-intel.ko
kvm-amd.ko
# 安装内核
make install
# 验证安装
ls -lh /boot | grep 7.1.3
Output previsto:
vmlinuz-7.1.3
initramfs-7.1.3.img
System.map-7.1.3
# 生成 GRUB 配置
grub2-mkconfig -o /boot/grub2/grub.cfg
# 设置默认内核
grubby --set-default /boot/vmlinuz-7.1.3
# 验证默认内核
grubby --default-kernel
Output previsto:
/boot/vmlinuz-7.1.3
reboot
Controllo della versione del kernel:
uname -r
# 预期: 7.1.3
Controllo dei moduli KVM:
lsmod | grep kvm
# 预期: kvm_intel, kvm, irqbypass
Verifica della posizione del modulo KVM:
modinfo kvm_intel | grep filename
# 预期: /lib/modules/7.1.3/kernel/arch/x86/kvm/kvm-intel.ko
Importante: Il kernel precedente non deve essere rimosso immediatamente.
Elenca i kernel disponibili:
grubby --info=ALL | grep kernel
Se il nuovo kernel presenta problemi, imposta il kernel precedente:
grubby --set-default /boot/vmlinuz-6.18.8-1.el8.elrepo.x86_64
reboot
| Voce | Prima | Dopo |
|---|---|---|
| Versione del kernel | 6.18.8-1.el8.elrepo.x86_64 | 7.1.3 |
| Stato KVM | N/A | Abilitato |
| CVE-2026-53359 | Vulnerabile | Corretta |
Disclaimer: Questo repository documenta esclusivamente la mia procedura di correzione personale su uno specifico ambiente server. Non è un'analisi di sicurezza professionale. Le correzioni sono benvenute.
Nota di verifica: Il confronto del codice sorgente conferma che il kernel Linux 7.1.3 include il commit di correzione
81ccda30b4e8("KVM: x86: Fix shadow paging use-after-free due to unexpected role"). La patch aggiunge una condizione di corrispondenzarole.wordnella funzionekvm_mmu_get_child_sp()inarch/x86/kvm/mmu/mmu.c, eliminando la UAF dello shadow paging causata dalla mancata corrispondenza del role. Pertanto, l'aggiornamento alla 7.1.3 corregge efficacemente questa vulnerabilità.
Questa guida fornisce due metodi per aggiornare il kernel Linux alla 7.1.3 al fine di correggere CVE-2026-53359: installazione RPM tramite ELRepo (consigliata) e compilazione dal codice sorgente.