Vigil@nce : Solaris, déni de service via pollwakeup
août 2009 par Vigil@nce
Un attaquant local peut exécuter un programme utilisant poll(),
afin de stopper le système.
Gravité : 1/4
Conséquences : déni de service de la machine
Provenance : shell utilisateur
Moyen d’attaque : aucun démonstrateur, aucune attaque
Compétence de l’attaquant : expert (4/4)
Confiance : confirmé par l’éditeur (5/5)
Diffusion de la configuration vulnérable : élevée (3/3)
Date création : 24/08/2009
PRODUITS CONCERNÉS
– OpenSolaris
– Sun Solaris
DESCRIPTION DE LA VULNÉRABILITÉ
La fonction poll() permet d’attendre des évènements sur des
descripteurs de fichiers (données disponibles à lire, prêt à
écrire, etc.).
La fonction pollwakeup() du fichier usr/src/uts/common/syscall/poll.c
réveille les threads en attente sur un évènement. Cette fonction
emploie la fonction mutex_enter() pour verrouiller la gestion des
évènements. Cependant si un nouveau thread utilise poll() sur la
même ressource, pollwakeup() utilise de nouveau le verrou, sans
vérifier qu’il est en cours d’utilisation, ce qui panique le noyau.
Un attaquant local peut donc exécuter un programme multi-threadé
utilisant poll(), afin de stopper le système.
CARACTÉRISTIQUES
Références : 265248, 6468901, VIGILANCE-VUL-8968
http://vigilance.fr/vulnerabilite/Solaris-deni-de-service-via-pollwakeup-8968