
Reolink Duo 2 WiFi v1.0.280 - Vulnerabilidade de Enumeração de Contas
Setembro, 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
A vulnerabilidade de enumeração de contas no componente de login da câmera WiFi Reolink Duo 2 (versão de firmware v3.0.0.1889_23031701) permite que atacantes remotos, não autenticados, determinem contas de usuário válidas por meio de tentativas de login. Isso pode levar à enumeração de contas de usuário e potencialmente facilitar outros ataques, como força bruta de senhas. A vulnerabilidade surge porque o aplicativo responde de forma diferente a tentativas de login com nomes de usuário 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 vulnerabilidade pode ser reproduzida tentando fazer login com nomes de usuário padrão ou comuns. As respostas distintas do aplicativo para nomes de usuário válidos e inválidos permitem que potenciais atacantes identifiquem contas válidas. Especificamente, o aplicativo responde com password wrong quando um nome de usuário válido é fornecido com uma senha incorreta e login failed quando um nome de usuário inválido é fornecido.
Abaixo está uma prova de conceito em três etapas para reproduzir e demonstrar a vulnerabilidade:
Ao acessar a página de login, observa-se que o campo de nome de usuário é preenchido automaticamente com admin. Isso indica que admin pode ser um nome de usuário padrão.

Quando uma senha incorreta é usada, o aplicativo responde com um array JSON contendo um objeto. Dentro desse objeto, a propriedade error inclui outro objeto com duas propriedades: detail e rspCode. A propriedade detail retorna especificamente a mensagem password wrong.


Quando um nome de usuário inválido é usado, o aplicativo responde com um array JSON contendo um objeto. Esse objeto inclui uma propriedade error, que por sua vez contém outro objeto com duas propriedades: detail e rspCode. Nesse caso, a propriedade detail retorna a mensagem login failed, indicando que o nome de usuário não existe.


Para mitigar essa vulnerabilidade de enumeração de contas, é recomendado implementar uma mensagem de erro genérica para todas as tentativas de login com falha, independentemente do motivo. Isso significa que, seja o nome de usuário válido ou não, ou a senha correta ou não, o aplicativo deve sempre retornar uma mensagem genérica como Invalid username or password. Isso impede que potenciais atacantes distingam entre nomes de usuário válidos e inválidos com base nas respostas do aplicativo.
CWE-200: Exposure of Sensitive Information to an Unauthorized Actor
OWASP - 04 Testing for Account Enumeration and Guessable User Account
Descoberto por Rosemberg Silva