Preuve de concept de CVE-2021-28476 par Axel Souchet
Preuve de concept de CVE-2021-28476 par Axel Souchet

Une vulnérabilité corrigée de l’hyperviseur Hyper-V de Microsoft aurait pu planter des pans entiers d’Azure

Le chercheur en sécurité Axel Souchet a publié une preuve de concept pour la vulnérabilité de sécurité référencée CVE-2021-28476, découverte par Leo Adrien, Daniel Fernandez Kuehr de Blue Frost Security GmbH, Peleg Hadar de SafeBreach Labvs et Ophir Harpaz de Guardicore Labs.

Ces derniers présenteront une session lors de la prochaine Black Hat USA 2021 sur la façon dont ils ont trouvé la vulnérabilité.

Elle permet à une machine virtuelle de forcer le noyau de l’hôte Hyper-V, l’hyperviseur de Microsoft, à lire d’une adresse arbitraire, potentiellement invalide. Ce qui la plupart du temps résulterait en un déni de service de l’hôte Hyper-V, à cause de la lecture d’une adresse non cartographiée : l’hôte passe en mode bugcheck, plus connu comme écran bleu « de la mort ».

Dans d’autres cas, il est possible de lire une adresse liée à l’un des registres matériels d’un appareil attaché à l’hôte Hyper-V, ce qui pourrait occasionner des effets indésirables sur cet appareil, et compromettre la sécurité de l’hôte Hyper-V.

La vulnérabilité affecte la plupart des versions de Windows depuis la version 7, et de Windows Server depuis la version 2008.

Dans le service d’informatique en nuage Microsoft Azure, toute personne malveillante avec une machine virtuelle aurait pu planter un des serveurs de Microsoft. En théorie, cela pourrait même mener à une attaque par exécution de code arbitraire à distance sur le serveur, ce qui est en pratique presque impossible, dans la mesure où l’on doit connaître l’adresse d’un appareil qui a été assigné à un segment de la mémoire virtuelle.

Fort heureusement, la vulnérabilité fut dévoilée de façon éthique à Microsoft, qui a publié un correctif le 11 mai 2021.

Axel Souchet, l’un des auteurs du blog « Diary of a reverse-engineer  », précise qu’il s’agit pour une machine virtuelle d’envoyer un paquet RDNIS malicieux par VMBus, un mécanisme de communication par canaux pour des communications interpartitions.

La preuve d’existence exploite la vulnérabilité en envoyant une requête de lecture arbitraire à vmswitch.sys, le fournisseur de service de virtualisation de réseau. Le bogue arrive dans la fonction VmsIfrInfoParams_OID_SWITCH_NIC_REQUEST, qui peut être appelée avec des données contrôlées par l’attaquant, ce qui ne devrait pas arriver, pour un double déréférencement d’un pointeur qu’une machine virtuelle malicieuse peut fournir.