Présentation du bug

Le défaut Vghost (CVE‑2026‑74580) possède un score CVSS de 8.8. Il touche les noyaux Linux de la version 4.11 à 7.2. Toute session capable d’ouvrir les périphériques /dev/vhost‑net ou /dev/vhost‑vsock peut lire et écrire directement dans la mémoire du noyau, ouvrant ainsi la voie à une élévation de privilèges jusqu’à l’utilisateur root. Tencent Zhuque Lab a reproduit l’exploitation sur cinq distributions majeures, confirmant la possibilité pour une machine virtuelle malveillante d’utiliser le même vecteur pour prendre le contrôle du processus QEMU de l’hôte.

Mécanisme d'exploitation

Le noyau expose les nœuds vhost‑net et vhost‑vsock en mode « world‑read/write » sur plusieurs distributions (RHEL, Amazon Linux, Azure Linux, Oracle Linux). En ouvrant l’un de ces fichiers, le processus obtient un descripteur qui mappe une zone de mémoire contrôlée par le pilote vhost. L’exploit injecte une séquence d’instructions qui écrase la table des appels système, redirigeant l’exécution vers du code injecté en espace utilisateur. Cette technique contourne les protections classiques de séparation des privilèges, car le noyau ne valide pas l’origine du descripteur.

Impact sur les environnements virtuels

Dans un scénario de cloud ou de serveur dédié, un locataire disposant d’un accès à une VM peut déclencher le bug depuis l’intérieur du guest. Le code malveillant lit la structure struct vm du processus QEMU, modifie les pointeurs de mémoire et exécute du code arbitraire sur l’hôte. Cela compromet non seulement le système d’exploitation hôte, mais aussi toutes les VM co‑locataires, brisant l’isolation attendue entre les clients. Le problème est aggravé par la présence de vhost‑net dans les stacks de conteneurs qui utilisent le même pilote pour le réseau virtuel.

Mesures d'atténuation

Le correctif officiel se trouve dans le commit de845981da67, intégré aux versions de noyau post‑7.2. En attendant le déploiement du noyau corrigé, il est recommandé de restreindre les permissions des nœuds :

chmod 660 /dev/vhost-net /dev/vhost-vsock
chown root:kvm /dev/vhost-net /dev/vhost-vsock

Cette modification supprime l’accès en écriture pour les utilisateurs non privilégiés, limitant la surface d’attaque. Les administrateurs doivent également auditer les politiques SELinux/AppArmor afin de bloquer les tentatives d’ouverture de ces périphériques depuis des processus non approuvés. Enfin, la surveillance des logs dmesg pour les messages « vhost: unauthorized access » peut aider à détecter une exploitation en cours.