Vigil@nce : Solaris, déni de service via Auditing et openat
juillet 2009 par
Lorsque Solaris Auditing est activé, un attaquant local peut
employer la fonction openat() afin de paniquer le système.
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 : 28/07/2009
PRODUITS CONCERNÉS
– OpenSolaris
– Sun Solaris
DESCRIPTION DE LA VULNÉRABILITÉ
Les actions du système sont auditées lorsque Solaris Auditing
(c2audit) est activé.
La fonction openat() modifie ouvre un fichier (argument path), qui
peut être relatif à un chemin indiqué par fd (si fd ne vaut pas
AT_FDCWD) :
openat(fd, path, flag) ;
La fonction openat() est définie dans usr/src/uts/common/syscall/open.c.
Lorsque l’audit est actif, elle appelle la fonction
audit_setfsat_path() définie dans usr/src/uts/common/c2/audit.c.
Cependant, si le descripteur de fichier fd de openat() est
invalide, la fonction audit_setfsat_path() n’initialise pas le
drapeau PAD_NOPATH dans le champ de bits tad_ctrl. Une attaque de
type race provoque alors une erreur dans audit_savepath().
Lorsque Solaris Auditing est activé, un attaquant local peut donc
employer la fonction openat() afin de paniquer le système.
CARACTÉRISTIQUES
Références : 264429, 6795688, 6816071, VIGILANCE-VUL-8892
http://vigilance.fr/vulnerabilite/Solaris-deni-de-service-via-Auditing-et-openat-8892