CVE-2024-2464: Enumeracja użytkowników aplikacji CDeX

Podatność wykryta przeze mnie w oprogramowaniu CDeX oferowanym przez firmę o tej samej nazwie. Podatność ta występuje podczas odzyskiwania hasła, gdzie różnica w komunikatach może pozwolić atakującemu na ustalenie, czy użytkownik jest prawidłowy, co umożliwia przeprowadzenie ataku siłowego na prawidłowych użytkownikach.

CVE-2024-2464: Enumeracja użytkowników aplikacji CDeX

Ogólny zarys

Na stronie producenta oprogramowania możemy przeczytać następujący opis produktu: „CDeX (Cyber Defense eXercise Platform) to wirtualna platforma szkoleniowa zaprojektowana do zwiększania umiejętności w zakresie obrony cybernetycznej i rozwijania technologii cyberbezpieczeństwa. Nasza zaawansowana oferta cybernetyczna zapewnia w pełni skalowalne, zautomatyzowane i hiperrealistyczne środowisko szkoleniowe, które pozwala członkom zespołu rozwijać kompetencje w dziedzinie obrony cybernetycznej.”

Vulnerability description

Dostęp do platformy jest możliwy poprzez logowanie się za pomocą SSO (Single Sign-On) lub przez wykorzystanie danych logowania, w tym nazwy użytkownika i hasła. Gdy użytkownik zapomni swojego hasła, może skorzystać z opcji jego odzyskiwania. Atakujący, wykorzystując mechanizm odzyskiwania hasła i analizując różnice w otrzymywanych odpowiedziach, może skutecznie zidentyfikować użytkowników aplikacji.

Scenariusz wykorzystania

Przykład wykorzystania luki prezentuje poniższy film:

Oś czasu

DataAkcja
1 luty 2024Raport wysłany do CDeX
15 luty 2024Raport wysłany do CERT Polska
23 luty 2024CDeX potwierdza istnienie podatności
11 marzec 2024CDeX wydaje poprawkę oprogramowania
15 marzec 2024CERT Polska nadaje CVE-2024-2464 dla tej podatności
21 marzec 2024CERT Polska publikuje podatność

Jak zapobiegać podobnym podatnością w swojej aplikacji

Znacznie łatwiej jest atakującemu złamać mechanizmy uwierzytelniania, jeśli ujawnisz, że użytkownik istnieje w systemie. Istnieją nawet pewne sytuacje, w których, ze względu na charakter strony internetowej, samo posiadanie konta przez konkretną osobę jest wrażliwą informacją.

Bez względu na to, czy próba użycia nazwy użytkownika jest ważna, ważne jest używanie identycznych, ogólnych komunikatów o błędach i upewnienie się, że są one naprawdę identyczne. Zawsze powinieneś zwracać ten sam kod statusu HTTP przy każdej próbie logowania i, ostatecznie, sprawić, aby czasy odpowiedzi w różnych scenariuszach były jak najbardziej nierozróżnialne.

Bibliografia

  1. https://cert.pl/posts/2024/03/CVE-2024-2463/
  2. https://cdex.cloud/
  3. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-2464
  4. https://portswigger.net/web-security/authentication/password-based/lab-username-enumeration-via-different-responses