
Reolink Duo 2 WiFi v1.0.280 - 계정 열거 취약점
2024년 9월
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라는 메시지를 반환하며, 이는 사용자 이름이 존재하지 않음을 나타냅니다.


이 계정 열거 취약점을 완화하려면 로그인 실패 시 이유에 관계없이 모든 실패에 대해 동일한 일반 오류 메시지를 반환하는 것이 좋습니다. 즉, 사용자 이름이 유효하든 그렇지 않든, 비밀번호가 올바르든 아니든, 애플리케이션은 항상 잘못된 사용자 이름 또는 비밀번호와 같은 일반 메시지를 반환해야 합니다. 이렇게 하면 잠재적 공격자가 애플리케이션의 응답을 기반으로 유효한 사용자 이름과 유효하지 않은 사용자 이름을 구별하는 것을 방지할 수 있습니다.
OWASP - 04 계정 열거 및 추측 가능한 사용자 계정 테스트
발견자: Rosemberg Silva