W mechanizmie dynamicznej rejestracji klientów OAuth2 w Apache CXF serwer autoryzacji przyjmuje i zapisuje wartość pola `scope` z żądania rejestracyjnego bez weryfikacji z dozwoloną listą po stronie serwera. Umożliwia to atakującemu samodzielne przypisanie sobie uprzywilejowanych zakresów dostępu podczas rejestracji.
▸ Pokaż oryginał (EN)
In Apache CXF's OAuth2 Dynamic Client Registration endpoint, the authorization server accepts and stores the `scope` value supplied in the client registration request verbatim, without validating it against an AS-defined allowlist. This could lead to a client self-assigning privileged scopes at registration time. Users are recommended to upgrade to versions 4.2.3 or 4.1.8 or 3.6.12, which fix this issue.
Podatność wynika z braku weryfikacji (CWE-304 — brak kroku walidacji w procesie uwierzytelnienia/autoryzacji) wartości pola `scope` przesyłanej przez klienta podczas rejestracji w endpoincie OAuth2 Dynamic Client Registration. Serwer autoryzacji zapisuje podaną wartość dosłownie, bez porównania jej z dozwolonymi zakresami zdefiniowanymi po stronie serwera. W efekcie dowolny podmiot wysyłający żądanie rejestracyjne może wpisać w polu `scope` zakresy uprzywilejowane (np. administracyjne lub rozszerzone), które następnie zostaną przyznane zarejestrowanemu klientowi.
Atakujący nieposiadający żadnych uprawnień (PR:N) może zdalnie (AV:N) zarejestrować klienta OAuth2 z samodzielnie nadanymi, uprzywilejowanymi zakresami dostępu, co może prowadzić do nieautoryzowanego dostępu do chronionych zasobów (C:H) lub zakłócenia ich dostępności (A:H).
Należy zaktualizować Apache CXF do wersji 4.2.3, 4.1.8 lub 3.6.12, które zawierają poprawkę tego problemu. Jako obejście tymczasowe warto rozważyć wyłączenie lub ograniczenie dostępu do endpointu dynamicznej rejestracji klientów OAuth2, jeśli nie jest on niezbędny.
Apache CXF — wersje przed 3.6.12, przed 4.1.8 oraz przed 4.2.3 korzystające z endpointu OAuth2 Dynamic Client Registration
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:HApache Cxf
APPApache< 3.6.124.0.0 – 4.1.8 (bez)4.2.0 – 4.2.3 (bez)
Powiązane podatności
Apache CXF: RCE przez niebezpieczną deserializację JMS ObjectMessage
Apache CXF: wielokrotne użycie kodu autoryzacyjnego OAuth (CWE-294)
Apache CXF: podmiana parametrów PKCE i OIDC przez JWT w JwtRequestCodeFilter
Apache CXF: pominięcie walidacji tokenów OIDC umożliwia authentication bypass
Apache CXF: brak walidacji pola 'aud' w tokenach JWT — Token Confusion