• # Magnifique !

    Posté par (site web personnel) . En réponse au journal La faille grosse comme une maison. Évalué à 10.

    Pour ceux qui n'auraient pas tout compris, la faille est là :

    Xorg -fp "root::16431:0:99999:7:::" -logfile shadow :1

    Sur de nombreuses machines, Xorg est setuid root. Lancé par un utilisateur normal il s'exécute donc automatiquement en tant que root.

    La ligne de commande utilisée ci-dessus dit à Xorg d'écrire son log dans le fichier shadow, qui contient les mots de passe des utilisateurs sur les installations standard. Bien sûr normalement on n'écrit jamais dans shadow, sauf pour changer un utilisateur ou un mot de passe. Mais root peut écrire où bon lui semble.

    L'argument à fp est incorrect pour Xorg, mais est une ligne correcte pour le fichier shadow ; au final Xorg en tant que root écrit cette ligne dans le fichier shadow. Puis il s'arrête car la ligne de commande est incorrecte.

    Et cette ligne dans shadow dit tout simplement que l'utilisateur root n'a pas de mot de passe. Il suffit de faire su ou sudo pour passer en root sans mot de passe ! C'est pas discret car on a dégommé tout le reste du fichier, mais on s'en fout, on est root (et on peut restaurer la copie shadow- qui est souvent présente à côté du fichier shadow).

    Bon, par contre il faut avoir un accès shell à la machine (ce qui est déjà une grosse porte ouverte), et il faut que le serveur Xorg soit setuid root, ce qui est de moins en moins le cas. Par exemple sous Ubuntu, il faut installer le paquet xserver-xorg-legacy pour avoir un Xorg setuid root, il n'est pas là par défaut.