Vigil@nce : OpenSolaris, élévation de privilèges via proc et contract
février 2009 par Vigil@nce
Un attaquant local peut utiliser le système de fichiers contract
afin de corrompre la mémoire pour mener un déni de service élever
ses privilèges.
– Gravité : 2/4
– Conséquences : accès/droits administrateur
– 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 : 06/02/2009
PRODUITS CONCERNÉS
– OpenSolaris
DESCRIPTION DE LA VULNÉRABILITÉ
Les contrats sur les processus ("process contract") permettent de
surveiller un processus et d’effectuer des actions lorsqu’une
erreur survient. Par exemple, pour redémarrer /bin/cmd lors d’un
core dump ou de la réception d’un signal fatal :
ctrun -r 0 -f core,signal /bin/cmd
Les contrats utilisent le système de fichier "contract" monté sous
/system/contract. Par exemple :
/system/contract/process/123/events
/system/contract/process/123/template
Le fichier template est aussi monté sous :
/proc/pid/lwp/lwpid/templates/123
La fonction prioctl(), qui gère les ioctl sur /proc, appelle
prctioctl() lors de l’accès au fichier template. Cependant, cette
fonction ne copie pas les données provenant de l’utilisateur avant
de les employer. Un attaquant local peut donc modifier un pointeur
afin d’effectuer une copie en mémoire noyau.
Un attaquant local peut donc utiliser le système de fichiers
contract afin de corrompre la mémoire pour mener un déni de
service élever ses privilèges.
CARACTÉRISTIQUES
– Références : 244026, 6753802, BID-33654, CVE-2009-0477,
VIGILANCE-VUL-8451
– Url : http://vigilance.fr/vulnerabilite/OpenSolaris-elevation-de-privileges-via-proc-et-contract-8451