CVE-2024-2465: Przekierowanie na dowolną stronę w CDeX

Podatność wykryta przeze mnie w oprogramowaniu CDeX oferowanym przez firmę o tej samej nazwie. Podatność pozwala na przekierowanie użytkowników na dowolne strony internetowe za pomocą specjalnie przygotowanego adresu URL.

CVE-2024-2465: Przekierowanie na dowolną domenę/stronę w 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

Podatność wykorzystuje braki w walidacji parametru redirect w adresie URL, co umożliwia atakującym manipulację parametrami przekierowania w taki sposób, aby ofiara była nieświadomie została przekierowana na złośliwą stronę. Takie działanie może prowadzić do wyłudzenia danych, ataków phishingowych lub innych niebezpiecznych scenariuszy wykorzystujących zaufanie użytkownika do oryginalnej aplikacji. Skuteczne wykorzystanie tej podatności zależy od interakcji ofiary, która musi kliknąć na zmanipulowany link, często przesyłany poprzez wiadomość e-mail lub komunikatory internetowe.

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-2465 dla tej podatności
21 marzec 2024CERT Polska publikuje podatność

Jak zapobiegać podobnym podatnością w swojej aplikacji

Jeśli to możliwe, aplikacje powinny unikać włączania danych kontrolowanych przez użytkownika do celów przekierowania. W wielu przypadkach można tego uniknąć na dwa sposoby:

  • Usuń funkcję przekierowania z aplikacji i zastąp linki do niej bezpośrednimi linkami do odpowiednich docelowych adresów URL.
  • Utrzymuj po stronie serwera listę wszystkich adresów URL, które są dozwolone do przekierowania. Zamiast przekazywać docelowy adres URL jako parametr do przekierowania, przekazuj indeks tej listy.

Jeśli uznaje się, że funkcja przekierowania musi otrzymywać dane kontrolowane przez użytkownika i włączać je do celu przekierowania, należy użyć jednej z poniższych środków, aby zminimalizować ryzyko ataków przekierowujących:

  • Aplikacja powinna używać względnych adresów URL we wszystkich swoich przekierowaniach, a funkcja przekierowania powinna ściśle weryfikować, czy otrzymany adres URL jest względny.
  • Aplikacja powinna używać adresów URL względnych do korzenia witryny we wszystkich swoich przekierowaniach, a funkcja przekierowania powinna weryfikować, czy otrzymany adres URL zaczyna się od znaku ukośnika. Następnie powinna dodać na początku “http://twojadomena.com” do adresu URL przed wydaniem przekierowania.
  • Aplikacja powinna używać bezwzględnych adresów URL we wszystkich swoich przekierowaniach, a funkcja przekierowania powinna weryfikować, czy dostarczony przez użytkownika adres URL zaczyna się od “http://twojadomena.com/" przed wydaniem przekierowania.

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-2465
  4. https://portswigger.net/web-security/host-header/exploiting/password-reset-poisoning