Vigil@nce : Noyau Linux, déni de service via futex_lock_pi
février 2010 par Vigil@nce
SYNTHÈSE DE LA VULNÉRABILITÉ
Un attaquant local peut créer un programme utilisant la Priority
Inheritance, afin de stopper le noyau.
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 : 12/02/2010
PRODUITS CONCERNÉS
– Linux noyau
DESCRIPTION DE LA VULNÉRABILITÉ
La fonction pthread_mutexattr_init(&mutattr) initialise les
attributs d’un mutex. La fonction pthread_mutexattr_setprotocol(&mutattr,
PTHREAD_PRIO_INHERIT) indique que le mutex hérite de la priorité
de son thread.
Les mutex Priority Inheritance sont implémentés avec des futex
(file), qui peuvent être stockés sur un système de fichiers ext3
temporaire (tmpfs).
La fonction futex_lock_pi() ne décrémente pas suffisamment le
nombre d’utilisateurs d’une ressource. Lorsque le système de
fichiers tmpfs est démonté, une erreur fatale se produit alors
dans ext3_put_super().
Un attaquant local peut ainsi créer un programme utilisant la
Priority Inheritance et tmpfs, afin de stopper le noyau.
CARACTÉRISTIQUES
Références : 14256, VIGILANCE-VUL-9448
http://vigilance.fr/vulnerabilite/Noyau-Linux-deni-de-service-via-futex-lock-pi-9448