Vigil@nce : Noyau Linux, déni de service via SG_IO
décembre 2008 par Vigil@nce
SYNTHÈSE
Un attaquant local peut provoquer un déni de service temporaire
dans libATA.
Gravité : 1/4
Conséquences : déni de service de la machine
Provenance : accès physique
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 : 24/12/2008
PRODUITS CONCERNÉS
– Linux noyau
DESCRIPTION
La bibliothèque libATA gère les transferts via IDE, SATA ou SCSI.
L’ioctl SG_IO envoie des commande au périphérique. Par exemple
(simplifié) :
sg_io.cmd_len = sizeof(cmd) ;
sg_io.cmdp = (void *)&cmd;
sg_io.timeout = 5000 ; /*ms*/
ioctl(fd, SG_IO, &sg_io) ;
Pour employer cet ioctl, l’utilisateur doit posséder les droits
sur /dev/sg*.
Le champ timeout indique la durée d’attente avant de réinitialiser
le périphérique. Ensuite, la réinitialisation du périphérique peut
durer plusieurs secondes.
Un attaquant avec un accès sur /dev/sg* peut donc employer un
timeout très court, afin de provoquer un déni de service durant
quelques secondes. Un attaquant avec un accès physique peut par
aussi perturber le lecteur de cdrom pour causer l’expiration du
timeout, ce qui produit le même effet.
CARACTÉRISTIQUES
Références : 474495, CVE-2008-5700, VIGILANCE-VUL-8356