Vulnerabilidad CVE-2021-22040 (con script de yapa)

¿Cómo están estimados? ¡Espero que bien! En esta oportunidad hablaré sobre la última vulnerabilidad detectada sobre entornos VMware .

El día 15/02/22 se publicó una nueva vulnerabilidad detectada en entornos VMware vSphere, VMware Workstation y VMware Fusion, en el cual un atacante con privilegios de administrador local sobre una maquina virtual, podía utilizar la controladora xHCI USB para ejecutar un código malicioso.

Para soportar «USB passthrough» desde un host ESXi o desde un equipo cliente a una VM, se puede agregar una controladora USB. En vSphere Client, se puede agregar una controladora xHCI y/o una controladora EHCI+UHCI. Desde la versión de hardware 11, hasta la versión de hardware 16, la cantidad admitida de puertos soportados es de ocho (cuatro puertos lógicos USB 3.0 SuperSpeed ​​y cuatro puertos lógicos USB 2.0). Con la versión de hardware 17, la cantidad admitida de puertos también es de ocho pero admite USB 3.1 (cuatro puertos lógicos USB 3.1 SuperSpeedPlus y cuatro puertos lógicos USB 2.0). Las condiciones para agregar un controlador varían, según la versión del dispositivo, el tipo de transferencia (equipo host o cliente) y el sistema operativo invitado. Les dejo una tabla con el detalle:

Para los sistemas Mac OS X, el controlador EHCI+UHCI está habilitado de manera predeterminada y es necesario para acceder a un mouse y teclado USB. Para máquinas virtuales con sistemas operativos Windows o Linux, se puede agregar uno o dos controladores de diferentes tipos. No se podrán agregar dos controladores del mismo tipo.

Volviendo al tema principal de esta publicación, les dejo el link en donde podrán encontrar mas detalles sobre dicha vulnerabilidad, productos y versiones afectadas, como remediarla, etc.:

https://www.vmware.com/security/advisories/VMSA-2022-0004.html

En el articulo se detallan dos opciones para remediar el problema:

  • Parcheo: instalar los parches disponibles para la remediación definitiva.
  • Remover controladora XHCI USB: remover dicha controladora de todas las VMs.

Siempre la opción de parcheo es la mejor y de esa manera te aseguras de que el problema quede resuelto definitivamente. Pero a veces por cuestiones de tiempo, complejidad de un entorno, disponibilidad, afectación de servicio, etc., y sobre todo en un ambiente VMware vSphere productivo la opción de parcheo es complicada. Por eso a continuación te dejo un script que te va a ayudar a detectar las VMs o Templates que tengan la controladora xHCI USB dentro de su configuración de hardware virtual. El script pude armarlo gracias a la siguiente publicación: https://vm.knutsson.it/2020/11/powercli-script-check-if-you-have-vms-with-usb-contollers

# Descripción: script que ayuda a detectar las VMs y Templates que tengan configurado una controladora USB xHCI
# Proposito: evitar la vulnerabilidad CVE-2021-22040
# https://kb.vmware.com/s/article/87349

Connect-VIServer  

Function Get-xHCIEnabledVMs {
$vms = Get-View -ViewType VirtualMachine -Property Name,Config.Hardware.Device
    $deviceList = @()

    ForEach ($vm in $vms) {
        try {
            $devices = $VM.Config.Hardware.Device | Where-Object { $_.DeviceInfo.Where({$_.Label -match “USB xHCI controller”}) } | Select-Object -property @{N=”VM”;E={$VM.Name}},@{N=”Controller”;E={$_.DeviceInfo.Label}} -ErrorAction:Stop
            $devices
        }
        catch { continue }

        $deviceList += $devices

    }
    
    $deviceList | Where-Object {$_.Enable3DSupport}

}

Get-xHCIEnabledVMs | Export-Csv -Path C:\xhci-controller-vms.csv -NoTypeInformation

Disconnect-VIServer

El script lo ejecuté en un entorno VMware vSphere 6.7 y 7.0, y funciona de maravilla. Pero como siempre es bueno aclarar lo siguiente…úsalo bajo tu propia responsabilidad….

¡Bueno gente, hasta acá llegamos con el post del día de hoy! Cualquier consulta que tengas no dudes en contactarme a través de los comentarios o vía mail. Compartilo con colegas, compañeros o amigos. Si te gusta mi contenido, si la virtualización es tu hobby o si te dedicas de manera profesional, te invito a que te suscribas para recibir una notificación cada vez publique algo nuevo.

¡Hasta la próxima publicación!

Se autoriza la reproducción de los materiales de este blog citando la fuente e incluyendo un enlace al mismo.

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

A %d blogueros les gusta esto: