Vigil@nce : Noyau Linux, contournement de protections via fcaps
avril 2012 par Vigil@nce
Ce bulletin a été rédigé par Vigil@nce : http://vigilance.fr/offre
SYNTHÈSE DE LA VULNÉRABILITÉ
Un attaquant local peut utiliser les personnalités, afin de
contourner les protections qui s’appliquent aux programmes qui ont
acquis leurs privilèges depuis le système de fichiers.
– Gravité : 1/4
– Date création : 20/04/2012
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.
Ces informations sont stockées dans les 16 bits de poids faible.
Les 16 bits de poids fort contiennent des informations pour
paramétrer Linux :
– ADDR_NO_RANDOMIZE : désactivation de ASLR
– MMAP_PAGE_ZERO : autorisation de mmapper l’adresse 0 (utilisé
pour exploiter les déréférencements de pointeur NULL)
– etc.
La macro PER_CLEAR_ON_SETID définit des types de personnalités
liés aux appels setuid() et setgid(). Elle utilise notamment
ADDR_NO_RANDOMIZE et MMAP_PAGE_ZERO, afin de rendre les attaques
plus difficiles contre les programmes suid/sgid.
Lorsque le système de fichiers supporte les capacités (fcaps), un
programme peut acquérir ses privilèges depuis le système de
fichiers. Cependant, dans ce cas, la macro PER_CLEAR_ON_SETID
n’est pas utilisée.
Un attaquant local peut donc utiliser les personnalités, afin de
contourner les protections qui s’appliquent aux programmes qui ont
acquis leurs privilèges depuis le système de fichiers. Cette
vulnérabilité facilite donc l’exploitation d’une autre
vulnérabilité dans le programme privilégié, en désactivant ASLR
par exemple.
ACCÈS AU BULLETIN VIGIL@NCE COMPLET
http://vigilance.fr/vulnerabilite/Noyau-Linux-contournement-de-protections-via-fcaps-11561