Synthèse de la vulnérabilité
Un attaquant local peut employer les personnalités et un programme suid root afin d´élever ses privilèges.
Gravité : 2/4.
Conséquences : accès/droits administrateur.
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 : 15/07/2009.
Date révision : 17/07/2009.
Produits concernés- Linux noyau
Description de la vulnérabilitéLes appels système (select(), poll(), etc.) et l´espace mémoire sont différents d´un système à l´autre. Par exemple, un programme conçu pour utiliser select() de Solaris peut ne pas fonctionner avec le select() de Linux à cause de différences mineures de comportement.
Les personnalités (ou domaines d´exécution) indiquent comment le noyau doit se comporter :
- PER_LINUX : mode normal pour Linux
- PER_SOLARIS : émuler le fonctionnement du noyau Solaris
- PER_IRIX32 : émuler le fonctionnement du noyau IRIX
- etc.
La macro PER_CLEAR_ON_SETID définit des types de personnalités liés aux appels setuid() et setgid().
Un processus possédant la capacité CAP_SYS_RAWIO est autorisé à contourner la limite basse définie par le sysctl vm.mmap_min_addr. Un processus suid root peut donc mmapper des pages mémoire avec une adresse faible. De plus, comme la macro PER_CLEAR_ON_SETID ne contient pas MMAP_PAGE_ZERO, il peut même mmapper la page zéro.
Un attaquant local peut donc employer un programme suid root (comme pulseaudio) afin de mmapper la page à l´adresse zéro, et donc exploiter un déréférencement de pointeur NULL.
CaractéristiquesRéférences : BID-35647, CVE-2009-1895, VIGILANCE-VUL-8861.
Pointé dans : VIGILANCE-VUL-8861,
VIGILANCE-VUL-8873.
Url :
http://vigilance.fr/vulnerabilite/Noyau-Linux-elevation-de-privileges-via-PER-CLEAR-ON-SETID-8861