Vigil@nce : Noyau Linux, déréférence NULL via put_tty_queue_nolock
décembre 2009 par Vigil@nce
Un attaquant peut utiliser un terminal afin 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 : 03/12/2009
PRODUITS CONCERNÉS
– Linux noyau
DESCRIPTION DE LA VULNÉRABILITÉ
La structure tty contient les informations du terminal. Le tampon
tty->read_buf stocke les caractères saisis sur le terminal.
La fonction n_tty_close() du fichier drivers/char/n_tty.c libère
les ressources associé au terminal (entre autres tty->read_buf).
La fonction put_tty_queue_nolock() du fichier drivers/char/n_tty.c
est appelée lorsqu’un caractère a été saisi. Elle le stocke dans
tty->read_buf. Cependant, si un caractère est reçu pendant la
fermeture du terminal, tty->read_buf peut être NULL. La fonction
put_tty_queue_nolock() déréférence alors un pointeur NULL.
Un attaquant peut donc utiliser un terminal afin 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 : 14605, BID-37147, VIGILANCE-VUL-9239
http://vigilance.fr/vulnerabilite/Noyau-Linux-dereference-NULL-via-put-tty-queue-nolock-9239