W produkcie Red Hat Keycloak wykryto krytyczną lukę w funkcji zamiany tokenów (token exchange), umożliwiającą nieautoryzowane przejęcie dostępu do dowolnej usługi klienta. Brak odpowiedniej autoryzacji sprawia, że każda aplikacja posiadająca ważny token dostępowy może uzyskać tokeny dla innych klientów bez wymaganych uprawnień.
▸ Pokaż oryginał (EN)
A privilege escalation flaw was found in the token exchange feature of keycloak. Missing authorization allows a client application holding a valid access token to exchange tokens for any target client by passing the client_id of the target. This could allow a client to gain unauthorized access to additional services.
Podatność wynika z braku mechanizmu autoryzacji (CWE-862) podczas procesu zamiany tokenów oraz niewłaściwej kontroli identyfikatorów obiektów (CWE-639). Atakująca aplikacja kliencka, posiadająca ważny token dostępowy, może wysłać żądanie wymiany tokenu, podając w parametrze client_id identyfikator dowolnego innego klienta. Keycloak przetwarza takie żądanie bez weryfikacji, czy żądająca aplikacja ma prawo uzyskać token dla wskazanego celu. W efekcie atakujący otrzymuje ważny token dostępowy dla docelowego klienta.
Atakujący może uzyskać nieautoryzowany dostęp do dodatkowych usług i zasobów chronionych przez inne aplikacje klienckie zarejestrowane w Keycloak, co w praktyce oznacza pełne naruszenie poufności, integralności i dostępności tych zasobów.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Szczegółowe informacje o poprawkach dostępne są w oficjalnym security advisory Keycloak pod adresem https://github.com/keycloak/keycloak/security/advisories/GHSA-75p6-52g3-rqc8. Do czasu aktualizacji zaleca się wyłączenie funkcji token exchange, jeśli nie jest niezbędna.
Red Hat Keycloak — wersje wskazane w referencjach producenta (dotyczy instalacji z włączoną funkcją token exchange)
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HRed Hat Keycloak
APPRedhat< 18.0.0
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
Stored XSS umożliwiający przejęcie konta 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