Vigil@nce : Noyau Linux, corruption mémoire de kvm_vcpu_ioctl_x86_setup_mce
novembre 2009 par Vigil@nce
Sur un processeur 32 bits, un attaquant local peut provoquer un
débordement dans la fonction kvm_vcpu_ioctl_x86_setup_mce(), afin
de mener un déni de service, ou éventuellement de faire exécuter
du code.
– Gravité : 2/4
– Conséquences : accès/droits administrateur, 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 : 17/11/2009
PRODUITS CONCERNÉS
– Linux noyau
DESCRIPTION DE LA VULNÉRABILITÉ
La fonction kvm_arch_vcpu_init() du fichier arch/x86/kvm/x86.c
alloue 32 bancs MCE. L’ioctl KVM_X86_SETUP_MCE permet à un système
KVM invité d’initialiser ces bancs.
Cet ioctl appelle la fonction kvm_vcpu_ioctl_x86_setup_mce() du
fichier arch/x86/kvm/x86.c. Cependant, lorsque l’utilisateur
demande l’initialisation de plus de 32 bancs, la zone mémoire
allouée est trop courte. La fonction kvm_vcpu_ioctl_x86_setup_mce()
corrompt alors la mémoire.
Un attaquant local peut donc provoquer un débordement dans la
fonction kvm_vcpu_ioctl_x86_setup_mce(), afin de mener un déni de
service, ou éventuellement de faire exécuter du code.
CARACTÉRISTIQUES
– Références : BID-37035, CVE-2009-4004, VIGILANCE-VUL-9202
– Url : http://vigilance.fr/vulnerabilite/Noyau-Linux-corruption-memoire-de-kvm-vcpu-ioctl-x86-setup-mce-9202