
Guide de mise à niveau du noyau Linux - Correction de CVE-2026-53359
Avertissement : Ce dépôt documente uniquement mon processus de correction personnel sur un environnement serveur spécifique. Il ne s’agit pas d’une analyse de sécurité professionnelle. Les corrections sont les bienvenues.
Note de vérification : La comparaison du code source confirme que le noyau Linux 7.1.3 inclut le commit de correction
81ccda30b4e8(« KVM: x86: Fix shadow paging use-after-free due to unexpected role »). Le correctif ajoute une condition de correspondancerole.worddans la fonctionkvm_mmu_get_child_sp()dansarch/x86/kvm/mmu/mmu.c, éliminant ainsi l’UAF du shadow paging causé par un désaccord de rôle. Par conséquent, la mise à niveau vers la version 7.1.3 remédie efficacement à cette vulnérabilité.
Ce guide propose deux méthodes pour mettre à niveau le noyau Linux vers la version 7.1.3 afin de corriger CVE-2026-53359 : l’installation via le RPM ELRepo (recommandée) et la compilation à partir des sources.
| Élément | Description |
|---|---|
| Identifiant CVE | CVE-2026-53359 |
| Composant affecté | KVM x86 Shadow MMU du noyau Linux |
| Type de vulnérabilité | Use After Free (UAF) |
| Méthode de correction | Mise à niveau du noyau Linux vers 7.1.3 (RPM ELRepo ou compilation source) |
La vulnérabilité concerne le shadow paging KVM x86. Dans des conditions spécifiques, des pages libérées peuvent encore être référencées par des entrées rmap, causant un problème potentiel de sécurité mémoire.
Références :
| Élément | Valeur |
|---|---|
| Système d’exploitation | CentOS Stream 8 |
| Ancien noyau | 6.18.8-1.el8.elrepo.x86_64 |
| Nouveau noyau | 7.1.3 |
| Architecture | x86_64 |
| Virtualisation | KVM Intel |
| Compilateur | GCC 8.5 |
Vérifier l’environnement actuel :
cat /etc/os-release
uname -r
Ce guide propose deux méthodes de mise à niveau. Choisissez en fonction de votre environnement :
Pour les environnements ayant un accès fiable au dépôt ELRepo. Aucune compilation nécessaire.
# Importer la clé GPG ELRepo
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# Installer le dépôt ELRepo
dnf install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
# Installer le dernier noyau principal
dnf --enablerepo=elrepo-kernel install kernel-ml
# Définir le nouveau noyau comme entrée de démarrage par défaut
grubby --set-default /boot/vmlinuz-7.1.3-1.el8.elrepo.x86_64
# Redémarrer pour appliquer
reboot
Remarque : Les numéros de version du noyau peuvent changer avec les mises à jour ELRepo. Vérifiez la version installée réelle avec
ls /boot/vmlinuz-*.
Pour les environnements sans accès à ELRepo, ou lorsque la version stable officielle de kernel.org est requise. Voir les étapes détaillées ci-dessous.
Dans mon environnement :
Par conséquent :
J’ai utilisé le code source stable officiel de kernel.org et compilé manuellement le noyau 7.1.3.
Remarque :
Il s’agit de ma propre solution environnementale, et non d’une méthode de mise à niveau obligatoire pour tous les systèmes.
Source officielle :
https://cdn.kernel.org/pub/linux/kernel/v7.x/linux-7.1.3.tar.xz
Téléchargement :
wget https://cdn.kernel.org/pub/linux/kernel/v7.x/linux-7.1.3.tar.xz
Emplacement de téléchargement (si hors ligne) :
/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
Vérifier le compilateur :
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 # Doit afficher : Makefile
# Copier la configuration actuelle du noyau
cp /boot/config-$(uname -r) .config
# Générer une nouvelle configuration
make olddefconfig
# Vérifier la configuration KVM
grep -E "CONFIG_KVM|CONFIG_KVM_INTEL" .config
Sortie attendue :
CONFIG_KVM=m
CONFIG_KVM_X86=m
CONFIG_KVM_INTEL=m
# Vérifier le nombre de threads CPU
nproc
# Compiler (utiliser tous les cœurs disponibles)
make -j$(nproc)
# Vérifier l’image du noyau
ls -lh arch/x86/boot/bzImage
Remarque : Le temps de compilation dépend des performances du CPU et du stockage.
# Installer les modules
make modules_install
# Vérifier l’installation
ls /lib/modules/
# Vérifier les modules KVM
find /lib/modules/7.1.3 -name "kvm*.ko*"
Sortie attendue :
kvm.ko
kvm-intel.ko
kvm-amd.ko
# Installer le noyau
make install
# Vérifier l’installation
ls -lh /boot | grep 7.1.3
Sortie attendue :
vmlinuz-7.1.3
initramfs-7.1.3.img
System.map-7.1.3
# Générer la configuration GRUB
grub2-mkconfig -o /boot/grub2/grub.cfg
# Définir le noyau par défaut
grubby --set-default /boot/vmlinuz-7.1.3
# Vérifier le noyau par défaut
grubby --default-kernel
Sortie attendue :
/boot/vmlinuz-7.1.3
reboot
Vérifier la version du noyau :
uname -r
# Attendu : 7.1.3
Vérifier les modules KVM :
lsmod | grep kvm
# Attendu : kvm_intel, kvm, irqbypass
Vérifier l’emplacement du module KVM :
modinfo kvm_intel | grep filename
# Attendu : /lib/modules/7.1.3/kernel/arch/x86/kvm/kvm-intel.ko
Important : Les anciens noyaux ne doivent pas être supprimés immédiatement.
Lister les noyaux disponibles :
grubby --info=ALL | grep kernel
Si le nouveau noyau pose problème, définir l’ancien noyau :
grubby --set-default /boot/vmlinuz-6.18.8-1.el8.elrepo.x86_64
reboot
| Élément | Avant | Après |
|---|---|---|
| Version du noyau | 6.18.8-1.el8.elrepo.x86_64 | 7.1.3 |
| Statut KVM | N/A | Activé |
| CVE-2026-53359 | Vulnérable | Corrigé |