Rechercher
Contactez-nous Suivez-nous sur Twitter En francais English Language
 











Abonnez-vous gratuitement à notre NEWSLETTER

Newsletter FR

Newsletter EN

Vulnérabilités

Se désabonner

Vigil@nce : Noyau Linux, élévation de privilèges en 64 bits

janvier 2009 par Vigil@nce

SYNTHÈSE DE LA VULNÉRABILITÉ

Sur un processeur 64 bits, un attaquant local peut utiliser un
appel système 64 bits ayant un paramètre 32 bits afin de mener un
déni de service ou d’élever ses privilèges.

Gravité : 2/4

Conséquences : accès/droits administrateur, déni de service du
service

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 : 14/01/2009

PRODUITS CONCERNÉS

 Linux noyau

DESCRIPTION DE LA VULNÉRABILITÉ

L’ABI (Application Binary Interface) de processeurs 64 bits (s390,
powerpc, sparc64, mips) demande à ce que les paramètres des appels
système soient étendus sur 64 bits. Par exemple, -3 (0xFFFFFFFD)
doit être converti en 0xFFFFFFFFFFFFFFFD.

Le noyau Linux utilise la macro "asmlinkage" dans chaque
définition d’appel système. Par exemple :

asmlinkage long sys_example(int para) ;

Cela modifie le code généré par le compilateur :
 en mode utilisateur, cet appel système récupère son paramètre
depuis la pile
 en mode noyau, cet appel système récupère son paramètre depuis
un registre CPU

Le compilateur peut supposer que le paramètre est sur 64 bits pour
faire des optimisations lors de comparaisons avec un nombre sur 32
bits. Cependant, lorsque le paramètre vient de la pile (mode
utilisateur), l’attaquant peut passer 0xFFFFFFFF00000005 qui sera
alors comparé à 5 sur 32 bits uniquement.

Cette vulnérabilité concerne potentiellement tous les appels
systèmes 64 bits ayant un ou plusieurs paramètres sur 32 bits.
L’impact de la vulnérabilité dépend du code optimisé par le
compilateur.

Sur un processeur 64 bits, un attaquant local peut donc utiliser
un appel système 64 bits ayant un paramètre 32 bits afin de mener
un déni de service ou d’élever ses privilèges.

CARACTÉRISTIQUES

Références : 479969, BID-33275, CVE-2009-0029, VIGILANCE-VUL-8390

http://vigilance.fr/vulnerabilite/Noyau-Linux-elevation-de-privileges-en-64-bits-8390


Voir les articles précédents

    

Voir les articles suivants