Interdire le chargement d'un autre noyau en cours d'exécution

Risque moyen Non coché par défaut Catalogue révisé le: 2026-11-05

Ferme un moyen pour un attaquant disposant de droits d'administrateur de basculer vers un noyau qu'il a préparé.

Pourquoi il compte

kexec permet au noyau en cours d’exécution d’en charger un autre et d’y sauter sans passer par le micrologiciel. Une attaquante ayant déjà gagné les droits d’administration pourrait s’en servir pour démarrer un noyau préparé, qui ignore vos réglages de sécurité ou cache ses outils. Le couper supprime cette étape.

Comment il fonctionne

Met kernel.kexec_load_disabled à 1, ce qui désactive les appels système kexec_load et kexec_file_load. La documentation du noyau indique qu’une fois mis à 1, il ne revient pas à 0 avant le prochain démarrage.

À qui il s'adresse

Convient aux ordinateurs de bureau et serveurs qui n’utilisent pas kexec. Laissez désactivé si vous comptez sur la capture de plantage par kdump, les redémarrages rapides par kexec ou les outils de mise à jour du noyau à chaud.

Ce que vous pouvez remarquer

Des commandes comme kexec -l échouent avec une erreur de permission, et un service de noyau de plantage démarré après le changement peut ne pas se charger. Seul un redémarrage l’annule.

Le vérifier sur votre ordinateur

Lire la valeur actuelle :

sysctl kernel.kexec_load_disabled

L'appliquer à la main

La définir maintenant (jusqu'au prochain redémarrage) :

sudo sysctl -w kernel.kexec_load_disabled=1

La conserver après les redémarrages, dans un fichier qui vous appartient :

sudo tee /etc/sysctl.d/90-kernel-kexec.conf <<'EOF'
kernel.kexec_load_disabled = 1
EOF
sudo sysctl --system

L'annuler

Supprimez le fichier et redémarrez, ou remettez l'ancienne valeur avec sysctl -w.

Réglages liés

Sources

Linux Hardening Guide (madaidans)
2.2.1
Linux kernel documentation
kernel.kexec_load_disabled