
Reolink Duo 2 WiFi v1.0.280 - Уязвимость перечисления учётных записей
Сентябрь 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
Уязвимость перечисления учётных записей в компоненте входа камеры Reolink Duo 2 WiFi (версия прошивки v3.0.0.1889_23031701) позволяет удалённым неаутентифицированным злоумышленникам определять действительные учётные записи пользователей посредством попыток входа. Это может привести к перечислению учётных записей и потенциально облегчить другие атаки, такие как подбор паролей. Уязвимость возникает из-за того, что приложение по-разному реагирует на попытки входа с действительными и недействительными именами пользователей.
Reolink Duo Wifi v3.0.0.1889_23031701
Reolink Duo 2 WiFi - https://reolink.com/br/product/reolink-duo-wifi/
Эту уязвимость можно воспроизвести, попытавшись войти с использованием стандартных или распространённых имён пользователей. Различные ответы приложения на действительные и недействительные имена пользователей позволяют потенциальным злоумышленникам выявлять действительные учётные записи. В частности, приложение отвечает password wrong, когда указано действительное имя пользователя с неверным паролем, и login failed, когда указано недействительное имя пользователя.
Ниже приведено пошаговое доказательство концепции из трёх шагов для воспроизведения и демонстрации уязвимости:
При доступе к странице входа видно, что поле имени пользователя автоматически заполняется значением admin. Это указывает на то, что admin может быть стандартным именем пользователя.

При использовании неверного пароля приложение отвечает JSON-массивом, содержащим объект. Внутри этого объекта свойство error включает другой объект с двумя свойствами: detail и rspCode. Свойство detail в частности возвращает сообщение password wrong.


При использовании недействительного имени пользователя приложение отвечает JSON-массивом, содержащим объект. Этот объект включает свойство error, которое, в свою очередь, содержит другой объект с двумя свойствами: detail и rspCode. В этом случае свойство detail возвращает сообщение login failed, указывающее, что имя пользователя не существует.


Для смягчения этой уязвимости перечисления учётных записей рекомендуется реализовать универсальное сообщение об ошибке для всех неудачных попыток входа, независимо от причины. Это означает, что независимо от того, является ли имя пользователя действительным или нет, и является ли пароль правильным или нет, приложение всегда должно возвращать универсальное сообщение, например Invalid username or password. Это не позволит потенциальным злоумышленникам различать действительные и недействительные имена пользователей на основе ответов приложения.
CWE-200: Раскрытие чувствительной информации неавторизованному субъекту
OWASP - 04 Тестирование перечисления учётных записей и угадываемых пользовательских учётных записей
Обнаружено: Rosemberg Silva