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.
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
Data | Akcja |
---|---|
1 luty 2024 | Raport wysłany do CDeX |
15 luty 2024 | Raport wysłany do CERT Polska |
23 luty 2024 | CDeX potwierdza istnienie podatności |
11 marzec 2024 | CDeX wydaje poprawkę oprogramowania |
15 marzec 2024 | CERT Polska nadaje CVE-2024-2465 dla tej podatności |
21 marzec 2024 | CERT 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.