Podatność w komponencie DefaultEncryptingCodeDataProvider biblioteki Apache CXF umożliwia wielokrotne wykorzystanie przechwyconego kodu autoryzacyjnego OAuth 2.0. Jest to krytyczna wada naruszająca wymogi RFC, która może prowadzić do nieautoryzowanego przejęcia dostępu do chronionych zasobów.
▸ Pokaż oryginał (EN)
In Apache CXF's DefaultEncryptingCodeDataProvider, a captured authorization code can be redeemed an unlimited number of times due to a flaw in the implementation of the removeCodeGrant functionality. This violates the RFC requirement that "The authorization code MUST NOT be used more than once." Users are recommended to upgrade to versions 4.2.3 or 4.1.8 or 3.6.12, which fix this issue.
Błąd tkwi w implementacji metody removeCodeGrant w klasie DefaultEncryptingCodeDataProvider — po pierwszym zrealizowaniu kodu autoryzacyjnego nie jest on prawidłowo unieważniany. W efekcie atakujący, który przechwycił ważny kod autoryzacyjny (np. poprzez podsłuchanie komunikacji lub dostęp do logów), może go wielokrotnie wymienić na token dostępowy. Narusza to bezpośrednio wymóg standardu OAuth 2.0 (RFC), zgodnie z którym każdy kod autoryzacyjny może być użyty wyłącznie jeden raz.
Atakujący dysponujący przechwyconym kodem autoryzacyjnym może wielokrotnie uzyskiwać tokeny dostępowe i w konsekwencji uzyskać nieautoryzowany dostęp do chronionych zasobów — potencjalnie naruszając poufność, integralność i dostępność danych (CVSS C:H/I:H/A:H).
Należy zaktualizować Apache CXF do wersji 4.2.3, 4.1.8 lub 3.6.12, które zawierają poprawkę tego błędu. Szczegóły dostępne w referencjach producenta.
Apache CXF — wersje wcześniejsze niż 4.2.3, 4.1.8 oraz 3.6.12 korzystające z komponentu DefaultEncryptingCodeDataProvider
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/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: pominięcie walidacji tokenów OIDC umożliwia authentication bypass
Apache CXF: RCE przez niebezpieczną deserializację JMS ObjectMessage
Apache CXF: brak walidacji scope w rejestracji klienta OAuth2
Apache CXF: podmiana parametrów PKCE i OIDC przez JWT w JwtRequestCodeFilter
Apache CXF: brak walidacji pola 'aud' w tokenach JWT — Token Confusion