Vigil@nce : Noyau Linux, obtention d’information via sigaltstack
août 2009 par Vigil@nce
Sur une machine 64 bits, un attaquant local peut employer
sigaltstack() pour obtenir un fragment de la mémoire du noyau.
Gravité : 1/4
Conséquences : lecture de données
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 : 04/08/2009
PRODUITS CONCERNÉS
– Linux noyau
DESCRIPTION DE LA VULNÉRABILITÉ
La fonction sigaltstack() est utilisée pour manipuler des
gestionnaires de signaux alternatifs :
int sigaltstack(const stack_t * ss, stack_t * oss) ;
La fonction do_sigaltstack() du fichier kernel/signal.c copie la
structure stack_t vers l’espace utilisateur dans oss (old stack).
Cependant, sur une machine 64 bits, des octets de bourrage
(padding) sont placés dans cette structure. Ces octets ne sont pas
initialisés, donc leur valeur précédente est copiée vers l’espace
utilisateur.
Sur une machine 64 bits, un attaquant local peut donc employer
sigaltstack() pour obtenir 24 bits de la mémoire du noyau.
CARACTÉRISTIQUES
Références : VIGILANCE-VUL-8914
http://vigilance.fr/vulnerabilite/Noyau-Linux-obtention-d-information-via-sigaltstack-8914