Les évasions guest-to-host de bhyve se regroupent dans ses modèles de périphériques, dans les mêmes catégories que les autres hyperviseurs car le problème est identique, l'analyse de structures de périphériques contrôlées par l'invité dans le processus hôte :
- famille virtio : gestion des descripteurs de virtqueue et des en-têtes par périphérique à travers virtio-blk/net/9p/console, la surface primaire de bhyve étant donné son orientation virtio.
- AHCI : gestion de la liste de commandes et des PRD avec des adresses et compteurs DMA contrôlés par l'invité.
- e1000 : gestion des descripteurs d'émission et des champs d'offload.
- XHCI (USB) : gestion des rings et des contextes de périphériques.
Utiliser le schéma#
# fingerprint the FreeBSD/bhyve version (maps to the FreeBSD advisory)
uname -r 2>/dev/null; freebsd-version 2>/dev/null
# from the guest, confirm which device models are present
pciconf -lv 2>/dev/null | grep -iE 'virtio|ahci|e1000|xhci'
Identifiez la version de FreeBSD/bhyve, confirmez quels modèles de périphériques la VM utilise, et faites correspondre à l'avis de sécurité FreeBSD pour ce périphérique. Les mécanismes reflètent les modèles de périphériques de QEMU, donc cette analyse se transpose directement ; les évasions sont spécifiques à la version et atterrissent dans le processus bhyve en espace utilisateur.
Notes d'exploitation#
- Traitez les évasions par périphérique bhyve comme celles de QEMU : les classes de bugs et mécanismes des virtqueues, des PRD AHCI, des descripteurs e1000 et des rings XHCI se transposent depuis les pages évasion guest-to-host QEMU.
- L'ensemble de périphériques plus réduit de bhyve restreint la surface par rapport à QEMU ou VirtualBox, concentrant l'attention sur virtio et AHCI.
- Les avis FreeBSD sont la source faisant autorité pour les bugs bhyve ; les mécanismes figurent sur la page évasion guest-to-host.