Vigil@nce : Noyau Linux, corruption de mémoire via clone
août 2009 par Vigil@nce
Un attaquant local peut employer clone() et execve() afin de
modifier 4 octets dans la mémoire du noyau.
Gravité : 2/4
Conséquences : accès/droits privilégié, 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/08/2009
PRODUITS CONCERNÉS
– Linux noyau
DESCRIPTION DE LA VULNÉRABILITÉ
Les options CLONE_CHILD_SETTID et CLONE_CHILD_CLEARTID de l’appel
système clone() sont employées lorsque l’identifiant du thread
(sur 4 octets) doit être écrit en mémoire. L’appel système
set_tid_address() permet de modifier cette adresse mémoire
(child_tidptr).
Lorsque l’appel système execve() est utilisé, l’espace mémoire
utilisateur est copié. Cependant l’adresse child_tidptr n’est pas
mise à jour, et peut alors pointer à une adresse invalide.
Un attaquant local peut donc modifier 4 octets en mémoire noyau,
afin de mener un déni de service ou de faire exécuter du code.
CARACTÉRISTIQUES
Références : BID-35930, VIGILANCE-VUL-8915
http://vigilance.fr/vulnerabilite/Noyau-Linux-corruption-de-memoire-via-clone-8915