Vigil@nce : Solaris, déni de service via UCODE_GET_VERSION
février 2010 par Vigil@nce
SYNTHÈSE DE LA VULNÉRABILITÉ
Sur un processeur Intel, un attaquant local peut appeler l’ioctl
UCODE_GET_VERSION, afin de stopper 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 : 01/02/2010
PRODUITS CONCERNÉS
– OpenSolaris
– Sun Solaris
DESCRIPTION DE LA VULNÉRABILITÉ
Les processeurs Intel comportent un microcode qui convertit les
instructions assembleur en logique électronique.
Deux ioctls sont disponibles sous Solaris pour Intel :
– UCODE_GET_VERSION : obtient la version du microcode courant
– UCODE_UPDATE : met à jour le microcode
L’ioctl UCODE_GET_VERSION appelle la fonction ucode_ioctl() du
fichier intel/io/ucode_drv.c, puis la fonction ucode_get_rev() du
fichier i86pc/os/microcode.c. Si le paramètre mode de l’ioctl vaut
zéro, la fonction ucode_ioctl() appelle ucode_get_rev() avec un
pointeur NULL, qui est déréférencé. Cette erreur stoppe le noyau.
Sur un processeur Intel, un attaquant local peut donc appeler
l’ioctl UCODE_GET_VERSION, afin de stopper le système.
CARACTÉRISTIQUES
Références : 143913-01, 6905530, BID-38016, CVE-2010-0453,
TKADV2010-001, VIGILANCE-VUL-9397
http://vigilance.fr/vulnerabilite/Solaris-deni-de-service-via-UCODE-GET-VERSION-9397