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. La vulnerabilidad se puede activar debido a que un código malintencionado o defectuoso (como un controlador de dispositivo) se ejecuta en modo privilegiado en el sistema operativo invitado. Actualmente, el hardware y el firmware estándar del sector no admiten la contención de errores para proteger los hosts ESXi de esta vulnerabilidad.
Use el acceso directo PCI o PCIe a una máquina virtual solo si una entidad de confianza posee y administra 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 resultado de errores o incompatibilidades en los dispositivos de hardware para los que se establecen accesos directos. Otros motivos para los errores incluyen problemas con los controladores en el sistema operativo invitado.
- El sistema operativo invitado puede generar una operación de acceso directo a memoria (DMA) que provoque un error de página IOMMU en el host ESXi. Esta operación podría ser el resultado de una operación de DMA cuyo objetivo fuera 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 para que notifiquen un error irrecuperable a través de una interrupción no enmascarable (NMI). Este error irrecuperable hace que el host ESXi se bloquee. 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. Una interrupción falsa puede bloquear el host ESXi. En teoría, es posible que existan otras formas de aprovechar estas interrupciones falsas.