Vigil@nce : FreeBSD, élévation de privilèges via kevent
août 2009 par Vigil@nce
Sur une machine multi-processeurs, un attaquant local peut
employer kevent(), afin d’obtenir les privilèges du noyau.
Gravité : 2/4
Conséquences : accès/droits administrateur
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 : 24/08/2009
PRODUITS CONCERNÉS
– FreeBSD
DESCRIPTION DE LA VULNÉRABILITÉ
L’appel système kqueue() demande au noyau d’informer le processus
lors de certains évènements. La fonction kevent() permet de
modifier la liste des évènements à surveiller.
Sur une machine multi-processeurs, lorsqu’un thread ouvre un
fichier, et que l’autre thread demande à surveiller le descripteur
de fichier, il y a une fenêtre de temps où le noyau peut employer
un descripteur invalide. Dans ce cas, il utilise une fonction
située à l’adresse zéro, que l’attaquant peut avoir mmappée. La
fonction illicite de l’attaquant est alors exécutée avec les
privilèges du noyau.
Sur une machine multi-processeurs, un attaquant local peut donc
employer kevent(), afin d’obtenir les privilèges du noyau.
CARACTÉRISTIQUES
Références : BID-36101, VIGILANCE-VUL-8970
http://vigilance.fr/vulnerabilite/FreeBSD-elevation-de-privileges-via-kevent-8970