Prohibir cargar otro kernel mientras el sistema funciona

Riesgo medio No marcado por defecto Catálogo revisado: 2026-11-05

Cierra una vía para que un atacante con derechos de administrador cambie a un kernel que haya preparado.

Por qué importa

kexec permite al kernel en ejecución cargar y saltar a otro kernel sin pasar por el firmware. Un atacante que ya consiguió derechos de administrador podría usarlo para iniciar un kernel preparado, que ignora tus ajustes de seguridad o esconde sus herramientas. Apagarlo elimina ese paso.

Cómo funciona

Fija kernel.kexec_load_disabled en 1, lo que desactiva las llamadas de sistema kexec_load y kexec_file_load. La documentación del kernel indica que, una vez puesto en 1, no vuelve a 0 hasta el siguiente arranque.

Quién debería usarlo

Adecuado para escritorios y servidores que no usan kexec. Déjalo apagado si dependes de la captura de caídas con kdump, reinicios rápidos por kexec o herramientas de actualización del kernel en vivo.

Qué puedes notar

Comandos como kexec -l fallan con un error de permisos, y un servicio de kernel de caída que arranque después del cambio puede fallar al cargar. Solo reiniciar lo revierte.

Compruébalo en tu equipo

Lee el valor actual:

sysctl kernel.kexec_load_disabled

Aplícalo a mano

Establécelo ahora (hasta el próximo reinicio):

sudo sysctl -w kernel.kexec_load_disabled=1

Consérvalo tras los reinicios, en un archivo tuyo:

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

Deshazlo

Elimina el archivo y reinicia, o vuelve a poner el valor anterior con sysctl -w.

Ajustes relacionados

Fuentes

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