Mise à jour noyau sur une dedibox

Plusieurs bugs de sécurté importants ont été découverts dans le noyau Linux, en particulier le bug CVE-2008-0600 permet à un utilisateur local d'obtenir un shell avec les droits root assez simplement. Même sans utilisateurs locaux, la faille peut devenir exploitable via une autre faille d'une application web par exemple, même si ça devient beaucoup plus compliqué.

La seule solution est de mettre à jour son noyau. J'ai réalisé cette opération tout à l'heure sauf que je ne connaissais pas encore le petit détail mentionné dans un topic du forum Ubuntu-fr ce qui m'a donné un bon gros coup de stress :-) et une bonne heure de pwet.fr HS :/

Bref, sur les dedibox utilisant le noyau fournit par Dedibox la manipulation est simple. Une fois le kernel spécifique installé, il faut indiquer l'emplacement de la racine du système avec l'ancienne syntaxe (type /dev/sdXY) au lieu des UUID . Sinon la machine ne reboote pas. Heureusement, les dedibox ont un système de rescue bien pratique qui permet de se sortir de ce genre de situation. Concrètement, avant pour chaque choix dans le fichier /boot/grub/menu.lst, j'avais quelque chose comme :

title       Ubuntu, kernel 2.6.24.2
root        (hd0,0)
kernel     /vmlinuz-2.6.24.2 root=UUID=238ddcbc-cb7e-4023-a48e-932d874b5ef0 ro quiet splash
quiet
savedefault

que j'ai remplacé par

title       Ubuntu, kernel 2.6.24.2
root        (hd0,0)
kernel      /vmlinuz-2.6.24.2 root=/dev/sda3 ro quiet splash
quiet
savedefault

Évidemment, /dev/sdaY est spécifique à l'organisation de la machine, il s'agit du numéro de la partition root du système. Il semble qu'avec le partitionnement par défault, il s'agisse de /dev/sda2. Avec le système de rescue de Dedibox, pour déterminer qu'elle est le bon numéro, il faut monter toutes les partitions du système et trouver le numéro de celle qui contient toute l'arborescence ( /bin, /usr, /lib, ...).