
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 と応答します。
以下に、この脆弱性を再現および実証するための3段階の概念実証を示します。
ログインページにアクセスすると、ユーザー名フィールドに admin が自動的に入力されていることが確認できます。これは、admin がデフォルトのユーザー名である可能性を示しています。

誤ったパスワードが使用されると、アプリケーションはオブジェクトを含むJSON配列で応答します。このオブジェクト内の error プロパティには、detail と rspCode の2つのプロパティを持つ別のオブジェクトが含まれます。detail プロパティは、具体的には password wrong というメッセージを返します。


無効なユーザー名が使用されると、アプリケーションはオブジェクトを含むJSON配列で応答します。このオブジェクトには error プロパティが含まれ、その中に detail と rspCode の2つのプロパティを持つ別のオブジェクトが含まれます。この場合、detail プロパティは login failed というメッセージを返し、ユーザー名が存在しないことを示します。


このアカウント列挙の脆弱性を緩和するには、理由に関係なく、すべてのログイン失敗に対して汎用的なエラーメッセージを実装することを推奨します。つまり、ユーザー名が有効かどうか、またはパスワードが正しいかどうかに関係なく、アプリケーションは常に Invalid username or password のような汎用的なメッセージを返す必要があります。これにより、潜在的攻撃者がアプリケーションの応答に基づいて有効なユーザー名と無効なユーザー名を区別することを防ぎます。
OWASP - 04 アカウント列挙および推測可能なユーザーアカウントのテスト
発見者: Rosemberg Silva