Vigil@nce : Noyau Linux, déréférence NULL via update_cr8_intercept
octobre 2009 par Vigil@nce
Un attaquant local peut employer un ioctl sur /dev/kvm, afin de
stopper le noyau ou d’exécuter du code privilégié.
– 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 : 23/10/2009
PRODUITS CONCERNÉS
– Linux noyau
DESCRIPTION DE LA VULNÉRABILITÉ
Les processeurs Intel x86 possèdent plusieurs registres de
contrôle. Le registre CR8 (TPR, Task Priority Register) est
utilisé en mode 64 bits, lorsqu’un APIC (Advanced Programmable
Interrupt Controller) est disponible.
La fonction update_cr8_intercept() du fichier arch/x86/kvm/x86.c
est utilisée en environnement virtualisé KVM, pour mettre à jour
ce registre. Cependant, s’il n’y a pas d’APIC, la fonction
kvm_vcpu_ioctl() déréférence un pointeur NULL.
Un attaquant local peut donc employer un ioctl sur /dev/kvm, afin
de stopper le noyau.
Un attaquant peut aussi employer cette vulnérabilité avec
VIGILANCE-VUL-8953 (https://vigilance.fr/arbre/1/8953)/VIGILANCE-VUL-8861
(https://vigilance.fr/arbre/1/8861) afin d’élever ses privilèges.
CARACTÉRISTIQUES
– Références : BID-36805, CVE-2009-3640, VIGILANCE-VUL-9115
– Url : http://vigilance.fr/vulnerabilite/Noyau-Linux-dereference-NULL-via-update-cr8-intercept-9115