Vulnerabilidad En La Plataforma Mendix (CVE-2023-49069)

El pasado 10 de septiembre de 2024 se dio a conocer una vulnerabilidad del tipo «timing attack» (CVE-2023-49069), descubierta por el equipo de Auditoría de Hispasec, la cual afecta a diferentes versiones de Mendix, una plataforma destinada al desarrollo de aplicaciones web y móvil.

Un ataque basado en tiempo consiste en obtener información sensible de la aplicación de manera indirecta utilizando como referencia el tiempo de respuesta del servidor para luego atender a posibles discrepancias ante el envío de diferentes conjuntos de datos.

En el caso del CVE-2023-49069, la vulnerabilidad tiene lugar en el mecanismo de inicio de sesión básico que la plataforma da la posibilidad de utilizar a sus usuarios. Idealmente, ante las solicitudes de inicio de sesión erróneas, el servidor debe responder con mensajes poco descriptivos que no permitan discernir si el dato erróneo es la cuenta de usuario o la contraseña, ya que esto daría lugar a una posible enumeración de usuarios válidos en la plataforma que, posteriormente, podrían ser utilizados para ataques como password spraying (que suelen ser la puerta de entrada más común junto con la ingeniería social en procesos de pentesting y/o ataques reales).

Sin embargo, incluso si el servidor sigue esta lógica segura puede darse el caso de que, por ejemplo, se produzca un proceso de validación de las credenciales en el que se verifique si la cuenta de usuario existe y, solo en caso afirmativo, se pase a comprobar si la contraseña es válida, lo que daría lugar a una diferencia en el tiempo de respuesta del servidor ya que si tanto el usuario como la contraseña son incorrectos, el servidor tardará menos en responder que cuando se detecta que la cuenta existe y, en consecuencia, tiene que validar su contraseña. Este tipo de comportamiento es el que se observa en el portal de inicio de sesión básico de Mendix.

Tras observar esta discrepancia, se procedió a crear un entorno de pruebas con una aplicación en la que se registraron los usuarios señalados en la siguiente imagen y se procedió a realizar un ataque de fuerza bruta incluyéndolos junto a otras cuentas que no existían en la aplicación:

Como se puede ver en la columna que indica el tiempo de respuesta del servidor, éste es diferente en los casos en los que los usuarios existen, siendo mayor que para aquellas cuentas no registradas en la aplicación del entorno de pruebas.

Con el objetivo de comprobar el punto exacto de la vulnerabilidad y si quienes hacen uso de Mendix podrían corregirla sin intervención del proveedor, se llevó a cabo un intento de modificación de la función VerifyPassword, pero este código está protegido con permisos de sólo lectura:

Alcance y reporte de la vulnerabilidad

Las pruebas se realizaron sobre las versiones 9 y 10 de Mendix, comprobando que en ambos casos la vulnerabilidad estaba presente y que en ese momento afectaba a cientos de aplicaciones públicas en internet según se pudo verificar a través de Censys.

Tras esto se procedió al reporte por primera vez el 19 de septiembre de 2023 a INCIBE. El día 13 de noviembre de 2023, INCIBE se pone en contacto con el equipo de Auditoría de Hispasec Sistemas para informar sobre la necesidad de realizar el reporte al ProductCERT de Siemens al ser ellos los responsables directos de Mendix. Finalmente, tras el debido intercambio de información entre ambas partes, la vulnerabilidad se publica el pasado 10 de septiembre de 2024.

El conjunto de versiones finalmente afectadas por la vulnerabilidad queda reflejado en la siguiente tabla:

Siemens recomienda no utilizar el mecanismo de inicio de sesión básico de la plataforma y, en su lugar, hacer uso de un módulo alternativo (SAML, MendixSSO, etc.), o un IdP propio.

Más información

Acerca de Raquel

Raquel Gálvez Ha escrito 70 publicaciones.

Pentester. Cloud security specialist on the making.


Via: unaaldia.hispasec.com
Vulnerabilidad En La Plataforma Mendix (CVE-2023-49069) Vulnerabilidad En La Plataforma Mendix (CVE-2023-49069) Reviewed by Zion3R on 13:25 Rating: 5