Vigil@nce : Noyau Linux, élévation de privilèges via ptrace_attach
mai 2009 par Vigil@nce
SYNTHÈSE DE LA VULNÉRABILITÉ
Un attaquant local peut obtenir les privilèges d’une application
via ptrace_attach().
Gravité : 2/4
Conséquences : accès/droits administrateur, accès/droits privilégié
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/05/2009
PRODUITS CONCERNÉS
– Linux noyau
DESCRIPTION DE LA VULNÉRABILITÉ
La fonctionnalité PTRACE_ATTACH de ptrace() permet de s’attacher à
un processus pour le déboguer. Normalement, ptrace() refuse de
s’attacher à un processus privilégié.
La fonction ptrace_attach() du fichier kernel/ptrace.c implémente
PTRACE_ATTACH. Cette fonction utilise un verrou
(current->cred_exec_mutex) pour gérer les privilèges. Cependant,
il faut employer un autre verrou (task->cred_exec_mutex). Les
privilèges ne sont alors pas gérés de manière atomique.
Lors de l’appel à une fonction exec() pour un processus suid/sgid,
un attaquant local peut appeler PTRACE_ATTACH pour obtenir les
privilèges du processus. Cette attaque peut nécessiter plusieurs
essais (attaque de type "race/course").
Un attaquant local peut ainsi obtenir les privilèges d’une
application via ptrace_attach().
CARACTÉRISTIQUES
Références : BID-34799, CVE-2009-1527, VIGILANCE-VUL-8688
http://vigilance.fr/vulnerabilite/Noyau-Linux-elevation-de-privileges-via-ptrace-attach-8688