Klasa JwtAccessTokenValidator w Apache CXF nie weryfikuje pola 'aud' (Audience) przychodzących tokenów dostępowych JWT. Umożliwia to atakującemu ponowne użycie tokenu wystawionego dla jednego serwera zasobów przeciwko innemu, co prowadzi do ataków typu Token Confusion lub Token Routing.
▸ Pokaż oryginał (EN)
The JwtAccessTokenValidator class in Apache CXF fails to validate the 'aud' (Audience) claims of incoming JWT access tokens. This allows a JWT issued for one Resource Server to be successfully replayed against a completely different Resource Server, leading to Token Confusion/Routing attacks. Users are recommended to upgrade to versions 4.2.2 or 4.1.7 or 3.6.12, which fixes this issue.
Mechanizm podatności wynika z pominięcia walidacji roszczenia 'aud' (Audience) podczas weryfikacji tokenu JWT w klasie JwtAccessTokenValidator (CWE-303 — brakujący krok walidacji, CWE-289 — uwierzytelnienie przez alternatywną nazwę). Token JWT wystawiony przez serwer autoryzacji dla określonego serwera zasobów (Resource Server A) może zostać skutecznie przesłany do zupełnie innego serwera zasobów (Resource Server B), który nie sprawdza, czy token był przeznaczony właśnie dla niego. W efekcie mechanizm uwierzytelniania nie rozróżnia zamierzonych odbiorców tokenu, co łamie podstawowy model zaufania protokołu OAuth 2.0 z tokenami JWT.
Atakujący posiadający ważny token JWT wystawiony dla jednego serwera zasobów może uzyskać nieautoryzowany dostęp do zasobów i operacji na innym serwerze zasobów, naruszając poufność, integralność oraz dostępność chronionych danych i usług.
Należy zaktualizować Apache CXF do wersji 4.2.2, 4.1.7 lub 3.6.12, które zawierają poprawkę dla tego problemu. Jako obejście tymczasowe warto rozważyć wdrożenie własnej walidacji pola 'aud' na poziomie aplikacji lub filtrów sieciowych.
Apache CXF w wersjach poprzedzających 4.2.2, 4.1.7 oraz 3.6.12 — wszystkie instancje korzystające z JwtAccessTokenValidator do walidacji tokenów dostępowych JWT.
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:HApache Cxf
APPApache< 4.1.74.2.0 – 4.2.2 (bez)
Powiązane podatności
Apache CXF: pominięcie walidacji tokenów OIDC umożliwia authentication bypass
Apache CXF: RCE przez niebezpieczną deserializację JMS ObjectMessage
Apache CXF: podmiana parametrów PKCE i OIDC przez JWT w JwtRequestCodeFilter
Apache CXF: brak walidacji scope w rejestracji klienta OAuth2
Apache CXF: wielokrotne użycie kodu autoryzacyjnego OAuth (CWE-294)