Vigili@nce : Noyau Linux, déréférence NULL via sg_build_indirect
septembre 2009 par Vigil@nce
Un attaquant local peut provoquer une erreur dans un périphérique
SCSI, afin de stopper le noyau ou d’exécuter du code privilégié.
Gravité : 2/4
Conséquences : accès/droits administrateur, 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 : 04/09/2009
PRODUITS CONCERNÉS
– Linux noyau
DESCRIPTION DE LA VULNÉRABILITÉ
Le fichier drivers/scsi/sg.c implémente la gestion des
périphériques SCSI génériques.
La fonction sg_build_indirect(), qui est appelée par sg_open(),
libère les pages mémoire lorsqu’une erreur survient (comme une
erreur de gravure de cdrom). Cependant, l’indice des pages mémoire
n’est pas incrémenté, et __free_pages() est appelée avec un
pointeur NULL.
Un attaquant local peut donc provoquer une erreur dans un
périphérique SCSI, afin de stopper le noyau.
Un attaquant peut aussi employer cette vulnérabilité avec
VIGILANCE-VUL-8953 (https://vigilance.fr/arbre/1/8953)/VIGILANCE-VUL-8861
(https://vigilance.fr/arbre/1/8861) afin d’élever ses privilèges.
CARACTÉRISTIQUES
Références : BID-36238, VIGILANCE-VUL-9001
http://vigilance.fr/vulnerabilite/Noyau-Linux-dereference-NULL-via-sg-build-indirect-9001