Vigil@nce : Noyau Linux, déni de service via hypercalls
septembre 2009 par Vigil@nce
Sur un processeur x86, un attaquant situé dans un système invité
KVM peut utiliser un hypercall MMU, afin de stopper le système.
Gravité : 1/4
Conséquences : 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 : 18/09/2009
PRODUITS CONCERNÉS
– Linux noyau
DESCRIPTION DE LA VULNÉRABILITÉ
Un "hypercall" est employé par un système invité pour accéder aux
ressources du système hôte (c’est équivalent à un appel système
fait par une application vers le noyau). Un système invité KVM
(Kernel Virtual Machine) peut donc employer un hypercall pour
accéder au gestionnaire de mémoire MMU (Memory Management Unit).
Cependant, la fonction kvm_emulate_hypercall() du fichier
arch/x86/kvm/x86.c ne vérifie pas si le code s’exécute en ring 0
(privilégié), avant d’appeler kvm_pv_mmu_op(). Une application
utilisateur peut ainsi paniquer le noyau hôte.
Sur un processeur x86, un attaquant situé dans un système invité
KVM peut donc utiliser un hypercall MMU, afin de stopper le
système.
CARACTÉRISTIQUES
Références : VIGILANCE-VUL-9033
http://vigilance.fr/vulnerabilite/Noyau-Linux-deni-de-service-via-hypercalls-9033