
Reolink Duo 2 WiFi v1.0.280 - Schwachstelle bei der Kontenumeration
September 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
Eine Schwachstelle in der Kontenumeration (Account Enumeration) im Login Component der Reolink Duo 2 WiFi Kamera (Firmware Version v3.0.0.1889_23031701) ermöglicht nicht authentifizierten Angreifern aus der Ferne, gültige Benutzerkonten durch Anmeldeversuche zu ermitteln. Dies kann zur Aufzählung von Benutzerkonten führen und potenziell andere Angriffe wie das Erraten von Passwörtern erleichtern. Die Schwachstelle ergibt sich aus der unterschiedlichen Reaktion der Anwendung auf Anmeldeversuche mit gültigen und ungültigen Benutzernamen.
Reolink Duo Wifi v3.0.0.1889_23031701
Reolink Duo 2 WiFi - https://reolink.com/br/product/reolink-duo-wifi/
Diese Schwachstelle kann repliziert werden, indem versucht wird, sich mit Standard- oder gebräuchlichen Benutzernamen anzumelden. Die unterschiedlichen Antworten der Anwendung auf gültige und ungültige Benutzernamen ermöglichen es potenziellen Angreifern, gültige Konten zu identifizieren. Genauer gesagt antwortet die Anwendung mit password wrong, wenn ein gültiger Benutzername mit einem falschen Passwort eingegeben wird, und mit login failed, wenn ein ungültiger Benutzername eingegeben wird.
Nachfolgend wird ein dreistufiges Proof of Concept zur Reproduktion und Demonstration der Schwachstelle beschrieben:
Beim Zugriff auf die Anmeldeseite wird festgestellt, dass das Benutzernamenfeld automatisch mit admin vorausgefüllt ist. Dies deutet darauf hin, dass admin möglicherweise ein Standard-Benutzername ist.

Wenn ein falsches Passwort verwendet wird, antwortet die Anwendung mit einem JSON-Array, das ein Objekt enthält. In diesem Objekt enthält die Eigenschaft error ein weiteres Objekt mit zwei Eigenschaften: detail und rspCode. Die Eigenschaft detail gibt speziell die Nachricht password wrong zurück.


Wenn ein ungültiger Benutzername verwendet wird, antwortet die Anwendung mit einem JSON-Array, das ein Objekt enthält. Dieses Objekt enthält eine error-Eigenschaft, die selbst wiederum ein Objekt mit zwei Eigenschaften umfasst: detail und rspCode. In diesem Fall gibt die Eigenschaft detail die Nachricht login failed zurück, was anzeigt, dass der Benutzername nicht existiert.


Um diese Schwachstelle der Kontenumeration zu entschärfen, wird empfohlen, eine generische Fehlermeldung für alle fehlgeschlagenen Anmeldeversuche zu implementieren, unabhängig vom Grund. Das bedeutet, dass die Anwendung unabhängig davon, ob der Benutzername gültig ist oder nicht, oder das Passwort korrekt ist oder nicht, immer eine generische Meldung wie Invalid username or password zurückgeben sollte. Dies verhindert, dass potenzielle Angreifer anhand der Antworten der Anwendung zwischen gültigen und ungültigen Benutzernamen unterscheiden können.
CWE-200: Exposure of Sensitive Information to an Unauthorized Actor
OWASP - 04 Testen auf Kontenumeration und erratbare Benutzerkonten
Entdeckt von Rosemberg Silva