
Reolink Duo 2 WiFi v1.0.280 - Vulnerabilidad de enumeración de cuentas
Septiembre, 2024
CVE: https://www.cve.org/CVERecord?id=CVE-2024-48644
NVD: https://nvd.nist.gov/vuln/detail/CVE-2024-48644
Tenable: https://www.tenable.com/cve/CVE-2024-48644
La vulnerabilidad de enumeración de cuentas en el componente de inicio de sesión de la cámara WiFi Reolink Duo 2 (versión de firmware v3.0.0.1889_23031701) permite a atacantes remotos, no autenticados, determinar cuentas de usuario válidas mediante intentos de inicio de sesión. Esto puede conducir a la enumeración de cuentas de usuario y potencialmente facilitar otros ataques, como la fuerza bruta de contraseñas. La vulnerabilidad surge porque la aplicación responde de manera diferente a los intentos de inicio de sesión con nombres de usuario válidos e inválidos.
Reolink Duo Wifi v3.0.0.1889_23031701
Reolink Duo 2 WiFi - https://reolink.com/br/product/reolink-duo-wifi/
Esta vulnerabilidad se puede replicar intentando iniciar sesión con nombres de usuario comunes o por defecto. Las respuestas distintivas de la aplicación ante nombres de usuario válidos e inválidos permiten a posibles atacantes discernir cuentas válidas. Específicamente, la aplicación responde con password wrong cuando se proporciona un nombre de usuario válido con una contraseña incorrecta y con login failed cuando se proporciona un nombre de usuario inválido.
A continuación se describe una prueba de concepto en tres pasos para reproducir y demostrar la vulnerabilidad:
Al acceder a la página de inicio de sesión, se observa que el campo de nombre de usuario se rellena automáticamente con admin. Esto indica que admin puede ser un nombre de usuario por defecto.

Cuando se utiliza una contraseña incorrecta, la aplicación responde con un arreglo JSON que contiene un objeto. Dentro de este objeto, la propiedad error incluye otro objeto con dos propiedades: detail y rspCode. La propiedad detail devuelve específicamente el mensaje password wrong.


Cuando se utiliza un nombre de usuario inválido, la aplicación responde con un arreglo JSON que contiene un objeto. Este objeto incluye una propiedad error, que a su vez contiene otro objeto con dos propiedades: detail y rspCode. En este caso, la propiedad detail devuelve el mensaje login failed, lo que indica que el nombre de usuario no existe.


Para mitigar esta vulnerabilidad de enumeración de cuentas, se recomienda implementar un mensaje de error genérico para todos los intentos de inicio de sesión fallidos, independientemente del motivo. Esto significa que, ya sea que el nombre de usuario sea válido o no, o que la contraseña sea correcta o no, la aplicación siempre debe devolver un mensaje genérico como Invalid username or password. Esto impide que posibles atacantes distingan entre nombres de usuario válidos e inválidos basándose en las respuestas de la aplicación.
CWE-200: Exposición de información sensible a un actor no autorizado
OWASP - 04 Pruebas para la enumeración de cuentas y cuentas de usuario adivinables
Descubierto por Rosemberg Silva