Vigil@nce : sudo, contournement de secure path
juin 2010 par Vigil@nce
Ce bulletin a été rédigé par Vigil@nce : http://vigilance.fr/
SYNTHÈSE DE LA VULNÉRABILITÉ
Lorsque sudo appelle certains programmes, un attaquant local peut
contourner la fonctionnalité "secure path", afin d’élever ses
privilèges.
– Gravité : 2/4
– Date création : 03/06/2010
DESCRIPTION DE LA VULNÉRABILITÉ
Le programme sudo permet d’exécuter un autre programme avec des
privilèges spécifiques.
La fonctionnalité "secure path" de sudo indique de modifier la
variable PATH avant d’appeler l’autre programme. Cette
fonctionnalité est activée :
– soit à la compilation de sudo : —with-secure-path=/bin :/usr/bin :/usr/local/bin
– soit dans le fichier /etc/sudoers : Defaults
secure_path="/bin :/usr/bin :/usr/local/bin"
Un processus peut définir un environnement contenant plusieurs
fois la même variable :
– PATH=valeur1
– PATH=valeur2
Dans ce cas :
– la fonction glibc getenv() obtient la première valeur
– un shell bash obtient la dernière valeur
– les autres implémentations obtiennent la première ou la
deuxième valeur
Cependant, la fonctionnalité "secure path" de sudo ne
modifie/sécurise que la première valeur. Un attaquant peut donc
définir une deuxième valeur illicite, puis appeler sudo pour
lancer un script shell. Ce script shell utilisera alors des
programmes portant le même nom, mais situés dans le répertoire
indiqué dans le deuxième PATH de l’attaquant.
Lorsque sudo appelle certains programmes, un attaquant local peut
donc contourner la fonctionnalité "secure path", afin d’élever ses
privilèges.
ACCÈS AU BULLETIN VIGIL@NCE COMPLET
http://vigilance.fr/vulnerabilite/sudo-contournement-de-secure-path-9682