L'utilizzo della funzionalità VMware DirectPath I/O per passare attraverso un dispositivo PCI o PCIe a una macchina virtuale comporta una potenziale vulnerabilità della sicurezza. La vulnerabilità può essere attivata quando il codice difettoso o dannoso, ad esempio un driver di dispositivo, viene eseguito in modalità privilegiata nel sistema operativo guest. L'hardware e il firmware standard di settore attualmente non dispongono di un supporto di contenimento degli errori sufficiente a proteggere gli host ESXi dalla vulnerabilità.
Utilizzare il passthrough PCI o PCIe in una macchina virtuale solo se un'entità attendibile possiede e amministra la macchina virtuale. È necessario assicurarsi che questa entità non tenti di arrestare in modo anomalo o di sfruttare l'host dalla macchina virtuale.
L'host potrebbe essere compromesso in uno dei seguenti modi.
- Il sistema operativo guest potrebbe generare un errore PCI o PCIe irreversibile. Tale errore non danneggia i dati, ma può causare l'arresto anomalo dell'host ESXi. Tali errori possono verificarsi a causa di bug o incompatibilità nei dispositivi hardware interessati. Tra gli altri motivi di errore troviamo i problemi con i driver nel sistema operativo guest.
- Il sistema operativo guest potrebbe generare un'operazione di accesso diretto alla memoria (DMA) che causa un errore della pagina IOMMU nell'host di ESXi. Questa operazione può essere il risultato di un'operazione DMA avente come destinazione un indirizzo esterno alla memoria della macchina virtuale. In alcune macchine, il firmware host configura gli errori IOMMU in modo da segnalare un errore irreversibile tramite un interrupt non mascherabile (NMI). Tale errore irreversibile causa l'arresto anomalo dell'host ESXi. Il problema può verificarsi a causa di problemi con i driver nel sistema operativo guest.
- Se il sistema operativo nell'host ESXi non utilizza la nuova mappatura di interrupt, il sistema operativo guest potrebbe iniettare un interrupt spurio nell'host ESXi su qualsiasi vettore. ESXi utilizza attualmente la nuova mappatura di interrupt sulle piattaforme Intel in cui è disponibile. La mappatura di interrupt fa parte del set di funzionalità Intel VT-d. ESXi non utilizza la mappatura interrupt sulle piattaforme AMD. Un falso interrupt può causare un arresto anomalo dell'host ESXi. Esistono nella teoria altri potenziali modi per sfruttare questi falsi interrupt.