Vigil@nce - Noyau Linux : contournement d’ASLR via sa_restorer
mars 2013 par Vigil@nce
Ce bulletin a été rédigé par Vigil@nce : http://vigilance.fr/offre
SYNTHÈSE DE LA VULNÉRABILITÉ
Une commande lancée par un exec() peut obtenir la structure
mémoire de son processus père, pour contourner ASLR, afin de
faciliter le développement d’un outil d’attaque.
Produits concernés : Linux
Gravité : 1/4
Date création : 12/03/2013
DESCRIPTION DE LA VULNÉRABILITÉ
La fonctionnalité ASLR (Address Space Layout Randomization) charge
les programmes à des adresses mémoire aléatoires, afin de rendre
plus difficile l’exploitation de corruptions de mémoire.
La structure sigaction est utilisée par la fonction sigaction(),
qui définit les actions associées à un signal Unix. Le champ
sa_restorer de cette structure contient l’adresse d’une fonction
(il est considéré comme obsolète).
La fonction flush_signal_handlers() du fichier kernel/signal.c met
à zéro les informations sur les gestionnaires de signaux, afin que
le processus créé par une fonction de la famille exec() démarre
normalement. Cependant, cette fonction ne réinitialise pas le
pointeur sa_restorer.
Une commande lancée par un exec() peut donc obtenir la structure
mémoire de son processus père, pour contourner ASLR, afin de
faciliter le développement d’un outil d’attaque.
ACCÈS AU BULLETIN VIGIL@NCE COMPLET
http://vigilance.fr/vulnerabilite/Noyau-Linux-contournement-d-ASLR-via-sa-restorer-12500