El uso de VMware DirectPath I/O para establecer el acceso directo de un dispositivo PCI o PCIe a una máquina virtual representa una vulnerabilidad potencial de la seguridad. Esta vulnerabilidad se puede activar debido un código malintencionado o defectuoso, como un controlador de dispositivo, que se ejecute en modo privilegiado en el sistema operativo invitado. Actualmente, el hardware y el firmware estándar del sector no incluyen soporte de contención de errores suficiente como para que ESXi pueda anular por completo esta vulnerabilidad.

VMware recomienda utilizar el acceso directo de PCI o PCIe a una máquina virtual únicamente si una entidad de confianza es la propietaria y la administradora de la máquina virtual. Es necesario tener la certeza de que esta entidad no intentará bloquear o aprovechar el host de la máquina virtual.

Es posible que el host quede comprometido de una de las siguientes maneras.

  • El sistema operativo invitado puede generar un error de PCI o PCIe irrecuperable. Un error de ese tipo no daña los datos, pero puede bloquear el host ESXi. Esos errores pueden ser el resultado de fallas o incompatibilidades en los dispositivos de hardware en los que se establece el acceso directo, o bien problemas con los controladores en el sistema operativo invitado.

  • El sistema operativo invitado puede generar una operación de acceso directo a memoria (DMA) por la cual se puede producir un error en la página de IOMMU en el host ESXi, por ejemplo, cuando la operación de DMA se dirige a una dirección fuera de la memoria de la máquina virtual. En algunas máquinas, el firmware del host configura los errores de IOMMU de modo que se notifique un error irrecuperable a través de una interrupción no enmascarable (NMI), por la cual el host ESXi se bloquea. La causa de esto pueden ser problemas con los controladores en el sistema operativo invitado.

  • Si el sistema operativo en el host ESXi no utiliza la reasignación de interrupciones, es posible que el sistema operativo invitado inyecte una interrupción falsa en el host ESXi en cualquier vector. Actualmente, ESXi utiliza la reasignación de interrupciones en las plataformas Intel donde se encuentra disponible; la asignación de interrupciones forma parte del conjunto de características de Intel VT-d. ESXi no utiliza la asignación de interrupciones en las plataformas AMD. Lo más probable es que una interrupción falsa bloquee el host ESXi; no obstante, en teoría, es posible que existan otras maneras de aprovechar estas interrupciones.