Vulnerabilidad crítica en VMware Cloud Director
Según un comunicado emitido por VMware el 14 de abril de 2022 se detectó una vulnerabilidad identificada como CVE-2022-22966
VMware clasificó a esta incidencia como severidad crítica y procedió a generar actualizaciones y workarounds para remediar la vulnerabilidad en los productos afectados:
⦁ VMware Cloud Director
¿Cómo me afecta?
Existe una vulnerabilidad en la ejecución de un código remoto que puede ser afectada por un actor malicioso, que posea autenticidad y privilegios elevados, con acceso a la red del proveedor o tenant de VMware Coud Director para obtener acceso al servidor.
¿A quiénes afecta?
Los productos afectados (con sus respectivas versiones) son los siguientes:
VMware Cloud Director
⦁ 10.3.x
⦁ 10.2.x
⦁ 10.1.x
¿Qué puedo hacer para protegerme?
Existen actualizaciones para los productos mencionados, las cuales solucionan la vulnerabilidad. De no poder realizar la actualización existe un workaround, detallado más adelante, para mitigar dicha vulnerabilidad.
Producto | Versión | Severidad | Parche | Workaround |
VMware Cloud Director | 10.3.x | Crítica | 10.3.3 | KB88176 |
VMware Cloud Director | 10.2.x | Crítica | 10.2.2.3 | KB88176 |
VMware Cloud Director | 10.1.x | Crítica | 10.1.4.1 | KB88176 |
Procedimiento de resolución
Pasos previos
Notas
El script descargado reinicia automáticamente el servicio de Cloud Director al ejecutarse.
En el caso de que dicho servicio no se ejecute, se deberá reiniciar manualmente ejecutando el comando service vmware-vcd restart
El script contiene una actualización de JRE para los casos donde se esté utilizando una versión desactualizada de este.
Luego de aplicado el workaround, cualquier actualización subsiguiente de las celdas a un build que no cuente con la solución a la vulnerabilidad, revertirá dicho workaround.
Asimismo, desplegar celdas desde un build que no cuente con la solución a la vulnerabilidad, también resultará en la falla del workaround.
La aplicación del workaround no tendrá impacto alguno en la funcionalidad de VMware Cloud Director.
En caso que no sea posible aplicar una actualización del producto, se deberá aplicar el siguiente workaround para mitigar la vulnerabilidad:
1. Conectarse mediante SSH a cualquier celda perteneciente al servidor del grupo. ⦁ Descargar el script WA_CVE-2022-22966.sh al directorio /tmp ⦁ Modificar los permisos del archivo para que sea ejecutable
chown root:vcloud /tmp/WA_CVE-2022-22966.sh
chmod 740 /tmp/WA_CVE-2022-22966.sh
2. Posicionarse en el directorio /tmp
cd /tmp
3. Ejecutar el script
./WA_CVE-2022-22966.sh
4. Asegurarse de que los servicios en la celda hayan reiniciado antes de proceder con la ejecución del script en las celdas restantes.
tail -f /opt/vmware/vcloud-director/logs/cell.log
Un mensaje similar a la captura deberá aparecer una vez que la celda haya finalizado su inicialización.
5. Ingresar a las demás celdas mediante SSH, de a una a la vez, y repetir los pasos 3-5 hasta que el workaround haya sido aplicado en todas las celdas en el servidor del grupo.
Verificación del workaround
Para corroborar de que el workaround para el CVE-2022-22966 fue aplicado correctamente en VMware Cloud Director, se debe verificar la configuración de la celda de Cloud Director. Las configuraciones son config y runtime settings.
Para verificar Config, se deberá ejecutar el comando
grep trustSerialData /opt/vmware/vcloud-director/bin/vmware-vcd-cell-common
Se pueden verificar los runtime settings desde cualquier sistema que permita conectarse al puerto JMX (8999) de la celda usando jConsole o jmxterm.
Utilizando jConsole, se deberá abrir el cliente del mismo y conectarlo a la celda y seleccionar el apartado MBeans en la barra superior del navegador.
1. Seguir el siguiente diagrama de árbol:
SystemProperties
2. Hacer doble click en
javax.management.openmbean.TabularDataSupport
3. Desplazarse hacia abajo hasta encontrar
com.sun.jndi.ldap.object.trustSerialData
4. Dicha clave debe estar presente, y su valor debe ser false
Si se desea realizar la verificación usando jmxterm, deberá ser descargado desde aquí
1. En la línea de comando de jmxterm, se deberá ejecutar el siguiente comando, completando los campos correspondientes:
echo "get --domain java.lang -b type=Runtime SystemProperties" | java -jar <path a jmxterm-1.0.2-uber.jar> -n -l <FQDN de la celda>:8999 -u <administrador> -p '<contraseña del administrador>' | /bin/grep -A2 com.sun.jndi.ldap.object.trustSerialData
2. Al igual que el procedimiento utilizando jConsole, se obtendrá un par clave-valor donde dicho valor debe ser false.
3. Por último, se deberá ejecutar el script descargado nuevamente y corroborar de que la celda aparezca “Protected”.
Método de rollback
Como fue mencionado anteriormente, habrán instancias donde la versión de JRE deba ser actualizada como parte de la aplicación del workaround.
De presentarse algún error al realizar la actualización de JRE, se deberán seguir los siguientes pasos:
1. Posicionarse en el directorio Cloud Director
cd /opt/vmware/vcloud-director/
2. Eliminar el directorio JRE existente y sus archivos
rm -rf jre
3. Extraer el directorio JRE, y sus archivos, existente previo a la aplicación del workaround.
tar xvfz /tmp/jre_backup.tar.gz
4. Iniciar el servicio de Cloud Director
service vmware-vcd restart
5. Asegurarse de que los servicios en la celda hayan sido reiniciados antes de proceder con la ejecución del script en las celdas restantes.
tail -f /opt/vmware/vcloud-director/logs/cell.log