Vigil@nce : FreeBSD, déni de service via SCHED_ULE
mars 2010 par Vigil@nce
Lorsque le scheduler SCHED_ULE est utilisé, un attaquant local sur
un système multiprocesseurs peut bloquer FreeBSD.
– 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 : 01/03/2010
PRODUITS CONCERNÉS
– FreeBSD
DESCRIPTION DE LA VULNÉRABILITÉ
Le système FreeBSD utilise deux implémentations du scheduler de
thread/processus :
– SCHED_4BSD (par défaut sur FreeBSD <=>
= 7.1)
Avec SCHED_ULE, chaque CPU possède une queue verrouillée.
Lorsqu’un thread est transféré d’un CPU à l’autre, SCHED_ULE
verrouille les queues des CPUs source et destination durant le
transfert. Cependant, si deux autres threads sont transférés
durant cet intervalle, ils attendent indéfiniment tous les trois
la libération d’un verrou. Les CPUs associés ne fonctionnent alors
plus.
Lorsque le scheduler SCHED_ULE est utilisé, un attaquant local sur
un système multiprocesseurs peut donc bloquer FreeBSD.
CARACTÉRISTIQUES
– Références : FreeBSD-EN-10:02.sched_ule, VIGILANCE-VUL-9479
– Url : http://vigilance.fr/vulnerabilite/FreeBSD-deni-de-service-via-SCHED-ULE-9479