Vigil@nce : Solaris, déni de service via aio_suspend
janvier 2009 par Vigil@nce
Un attaquant local peut utiliser la fonction aio_suspend() afin de
stopper le système.
– Gravité : 1/4
– Conséquences : déni de service de la machine
– 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 : 12/01/2009
PRODUITS CONCERNÉS
– OpenSolaris
– Sun Solaris
– Sun Trusted Solaris
DESCRIPTION DE LA VULNÉRABILITÉ
La fonction aio_suspend() suspend l’exécution du thread courant en
attendant un évènement :
aio_suspend(aiocb, nent, timeout) ;
Elle utilise l’appel système SYS_kaio() qui appelle à son tour
aiosuspend() de /uts/common/os/aio.c.
En mode 32 bits, la fonction aiosuspend() multiplie "nent" par 4
(sizeof caddr32_t) avant d’allouer une zone mémoire. Cependant, si
"nent" vaut 0x3FFFFFFF, la taille à allouer est nulle, ce qui
panique vmem_xalloc().
Un attaquant local peut donc utiliser la fonction aio_suspend()
afin de stopper le système.
CARACTÉRISTIQUES
– Références : 247986, 6748772, BID-33188, TKADV2009-001,
VIGILANCE-VUL-8380
– Url : http://vigilance.fr/vulnerabilite/Solaris-deni-de-service-via-aio-suspend-8380