Vigil@nce : Noyau Linux, buffer overflow de LDT
juillet 2008 par Vigil@nce
SYNTHÈSE
Un attaquant local peut provoquer un débordement via la LDT sur
une architecture x86_64, afin de mener un déni de service ou de
faire exécuter du code.
Gravité : 1/4
Conséquences : accès/droits utilisateur, 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 : 22/07/2008
Référence : VIGILANCE-VUL-7962
PRODUITS CONCERNÉS
– Linux noyau [versions confidentielles]
– OpenSUSE [versions confidentielles]
DESCRIPTION
Sur un processeur x86, chaque processus dispose d’une table LDT
(Local Descriptor Table).
Sur un processeur x86_64, la taille du buffer utilisé par la LDT
est incorrectement calculée, ce qui conduit à un buffer overflow.
Cette vulnérabilité pourrait provenir d’une erreur dans une
multiplication située dans la fonction native_set_ldt() du fichier
include/asm-x86/desc.h. Le facteur de la multiplication est
sizeof(ldt) (16 sur un processeur 64bits) au lieu de
LDT_ENTRY_SIZE (8). Cette erreur est corrigée dans la version
2.6.25.11.
Un attaquant local peut donc provoquer un débordement via la LDT
sur une architecture x86_64, afin de mener un déni de service ou
de faire exécuter du code.
CARACTÉRISTIQUES
Références : CVE-2008-3247, SUSE-SA:2008:037, VIGILANCE-VUL-7962