Vigil@nce : Noyau Linux, déni de service via une socket Unix
octobre 2009 par Vigil@nce
Un attaquant local peut employer une socket Unix partiellement
fermée, afin de bloquer 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 : 19/10/2009
PRODUITS CONCERNÉS
– Linux noyau
DESCRIPTION DE LA VULNÉRABILITÉ
Les sockets Unix permettent par exemple à deux processus
d’échanger des données, en se connectant sur un fichier spécial.
Si le nom de ce fichier commence par un octet nul (’\0’), le
fichier n’est pas stocké sur le système de fichiers, mais il
utilise un espace abstrait dans le noyau.
La fonction shutdown() est utilisée pour fermer un type d’action
(read/write) sur la socket.
Lorsqu’une socket Unix emploie l’espace abstrait, et est fermée
avec shutdown(), mais que close() n’a pas encore été appelé, un
attaquant local peut se connecter sur cette socket. Cependant,
comme elle est partiellement fermée, une boucle infinie se produit
dans le noyau.
Un attaquant local peut donc employer une socket Unix
partiellement fermée, afin de bloquer le système.
CARACTÉRISTIQUES
– Références : BID-36723, CVE-2009-3621, VIGILANCE-VUL-9102
– Url : http://vigilance.fr/vulnerabilite/Noyau-Linux-deni-de-service-via-une-socket-Unix-9102