Vigil@nce : FreeBSD, élévation de privilèges via netgraph/bluetooth
décembre 2008 par Vigil@nce
SYNTHÈSE
Un attaquant local peut utiliser des sockets netgraph ou bluetooth
afin d’exécuter du code avec les privilèges du noyau.
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 : 23/12/2008
Date révision : 30/12/2008
PRODUITS CONCERNÉS
– FreeBSD
DESCRIPTION
Le noyau FreeBSD supporte différents types de sockets :
– IP
– netgraph (module noyau ng_socket, qui est générique)
– bluetooth (module noyau ng_bluetooth, qui est basé sur netgraph)
– etc.
Certaines opérations ne sont pas supportées sur les sockets
netgraph/bluetooth : bind(), disconnect(), peeraddr(), shutdown()
et sockaddr(). Cependant, le pointeur sur ces fonctions n’est pas
initialisé.
Un attaquant local peut donc préparer la mémoire, puis créer une
socket netgraph/bluetooth, et appeler l’une de ces fonctions, afin
que son pointeur en mémoire soit utilisé. La fonction
correspondant à ce pointeur est alors appelée par le noyau.
Un attaquant local peut ainsi utiliser des sockets netgraph ou
bluetooth afin d’exécuter du code avec les privilèges du noyau.
CARACTÉRISTIQUES
Références : BID-32976, FreeBSD-SA-08:13.protosw,
VIGILANCE-VUL-8352