Vigil@nce : GNU Libtool, exécution de code
décembre 2009 par Vigil@nce
Dans certains cas, GNU Libtool charge une bibliothèque statique
située dans le répertoire courant.
Gravité : 2/4
Conséquences : accès/droits utilisateur
Provenance : shell utilisateur
Moyen d’attaque : 1 attaque
Compétence de l’attaquant : technicien (2/4)
Confiance : confirmé par l’éditeur (5/5)
Diffusion de la configuration vulnérable : élevée (3/3)
Date création : 22/12/2009
PRODUITS CONCERNÉS
– Fedora
– Mandriva Corporate
– Mandriva Enterprise Server
– Mandriva Linux
– Mandriva Multi Network Firewall
– Red Hat Enterprise Linux
– Unix - plateforme
DESCRIPTION DE LA VULNÉRABILITÉ
Les bibliothèques dynamiques sont chargées par dlopen().
Le ltdl (Libtool Dynamic Module Loader) est fourni par GNU Libtool
pour charger les bibliothèques de manière transparente. Il est
appelé par les fonctions lt_dlopen() et lt_dlopenext().
Le ltdl utilise les fichiers portant l’extension ".la" pour
indiquer des informations sur une bibliothèque. Par exemple :
dlname=’ma-bib.so.1’
library_names=’ma-bib.so.1.0 ma-bib.so.1’
old_library=’ma-bib.a’
La valeur de "old_library" indique le nom de la bibliothèque
statique.
Lorsqu’un programme appelle :
– lt_dlopen/lt_dlopenext("/chemin/absolu/ma-bib.so") : il n’y a
pas de vulnérabilité
– lt_dlopen/lt_dlopenext("ma-bib.so") : il n’y a pas de
vulnérabilité
– lt_dlopen/lt_dlopenext("/chemin/absolu/ma-bib.la"), et si le
fichier /chemin/absolu/ma-bib.la contient
old_library=’ma-bib.a’ : il y a une vulnérabilité
– lt_dlopen/lt_dlopenext("ma-bib.la"), et si l’attaquant peut
créer le fichier ma-bib.la dans le répertoire courant,
contenant old_library=’ma-bib.a’ : il y a une vulnérabilité
– lt_dlopenext("/chemin/absolu/ma-bib"), et si le fichier
/chemin/absolu/ma-bib.la contient old_library=’ma-bib.a’ : il y
a une vulnérabilité
– lt_dlopenext("ma-bib"), et si l’attaquant peut créer le fichier
ma-bib.la dans le répertoire courant, contenant
old_library=’ma-bib.a’ : il y a une vulnérabilité
Dans les 4 cas indiqués, ltdl cherche à ouvrir le fichier ma-bib.a
dans le répertoire courant.
Un attaquant local peut donc, si nécessaire créer ma-bib.la, et
créer ma-bib.a, dans le répertoire courant d’un utilisateur.
L’attaquant peut ensuite inviter la victime à exécuter le
programme, afin que le code illicite de ma-bib.a s’exécute avec
ses privilèges.
CARACTÉRISTIQUES
Références : 537941, BID-37128, CVE-2009-3736, FEDORA-2009-12725,
MDVA-2009:253, MDVSA-2009:307, MDVSA-2009:307-1, MDVSA-2009:318,
RHSA-2009:1646-01, VIGILANCE-VUL-9308
http://vigilance.fr/vulnerabilite/GNU-Libtool-execution-de-code-9308