W Keycloak przed wersją 13.0.0 istnieje podatność typu Stored XSS, która może doprowadzić do całkowitego przejęcia konta użytkownika. Zagrożenie wynika z braku właściwego kodowania danych wprowadzanych przez użytkownika oraz przetwarzania ich za pomocą kodu JavaScript.
▸ Pokaż oryginał (EN)
A flaw was found in keycloak in versions before 13.0.0. A Self Stored XSS attack vector escalating to a complete account takeover is possible due to user-supplied data fields not being properly encoded and Javascript code being used to process the data. The highest threat from this vulnerability is to data confidentiality and integrity as well as system availability.
Atakujący dostarcza złośliwe dane w polach formularza, które nie są odpowiednio kodowane przed zapisaniem i wyświetleniem (CWE-116 — nieprawidłowe kodowanie danych wyjściowych). Gdy inny użytkownik (lub administrator) przegląda stronę zawierającą te dane, osadzony kod JavaScript zostaje wykonany w kontekście jego sesji (CWE-20 — niewystarczająca walidacja danych wejściowych). Atak jest typu Self Stored XSS, co oznacza, że payload jest przechowywany po stronie serwera i uruchamiany przy każdym kolejnym wyświetleniu danych. Wymagana jest interakcja ofiary (np. odwiedzenie odpowiedniej strony), jednak atakujący nie musi posiadać żadnych uprawnień przed atakiem.
Skuteczny atak pozwala przejąć pełną kontrolę nad kontem ofiary, a także naruszyć poufność, integralność i dostępność systemu. Wektor CVSS wskazuje na możliwość eskalacji uprawnień poza kontekst aplikacji (Scope: Changed).
Należy zaktualizować Keycloak do wersji 13.0.0 lub nowszej, w której problem został usunięty. Szczegóły dostępne w referencjach producenta pod adresem https://bugzilla.redhat.com/show_bug.cgi?id=1919143
Keycloak (Red Hat) we wszystkich wersjach przed 13.0.0
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:HRed Hat Keycloak
APPRedhat< 12.0.3
Powiązane podatności
XSS w Keycloak — podatność w obsłudze SAML/OIDC umożliwia wykonanie złośliwych skryptów
Keycloak: path traversal przez podwójne kodowanie URL w przekierowaniach
Privilege escalation w mechanizmie token exchange w Keycloak
Keycloak: przejęcie konta przez domenę placeholder.org przed wersją 8.0.0
Red Hat Keycloak — pominięcie uwierzytelnienia LDAP przy użyciu StartTLS