CVE-2026-46623
WysokieCVSS 7.4Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 50 - wyżej niż 50% wszystkich znanych CVE
Streszczenie
W OpenAM moduł uwierzytelniania OAuth2 aktualizuje istniejące konto lokalne atrybutami profilu, które mogą zawierać userPassword i inetUserStatus, przepisując hasło na nazwę użytkownika i reaktywując wyłączone konta. Brak filtrowania OAuth.removeRestrictedAccountUpdateAttributes pozwala tym polom poświadczeń i statusu dotrzeć do aktualizacji konta. Przy włączonym tworzeniu kont powtarzane logowanie OAuth powoduje, że domyślny łańcuch ldapService akceptuje nazwę użytkownika jako identyfikator i hasło, co pozwala nieuwierzytelnionemu atakującemu przejąć konto lokalne bez interakcji z dostawcą tożsamości. Problem naprawiono w wersji 16.1.1.
Ocena ryzyka
Nieuwierzytelniony atakujący może przejąć konto lokalne, ustawiając hasło równe nazwie użytkownika i aktywując je. Prowadzi to do nieautoryzowanego dostępu i eskalacji uprawnień.
Rekomendacja
Zaktualizuj OpenAM do wersji 16.1.1 lub nowszej. Do czasu aktualizacji rozważ wyłączenie tworzenia kont przez OAuth i wymuszenie silniejszych polityk haseł.
Inne podatności w OpenAM
Zobacz wszystkie- CVE-2016-10097Wysokie
W OpenAM 10.1.0 występuje podatność XXE (XML External Entity) w ścieżce /SSOPOST/metaAlias/%realm%/idpv2, która pozwala zdalnym atakującym na odczyt dowolnych plików za pomocą parametru SAMLRequest.
- CVE-2026-62379Krytyczne
W OpenAM w wersjach przed 16.1.2 endpoint pre-autoryzacji /authservice PLL przyjmuje element XML CustomCallback, którego wartość className pozwala na załadowanie i utworzenie dowolnej klasy Java bez weryfikacji, czy implementuje DSAMECallbackInterface. Domyślna konfiguracja udostępnia ten endpoint bez uwierzytelnienia, co umożliwia atakującemu wykonanie kodu w procesie serwera poprzez niebezpieczną deserializację. Włączenie opcji sunRemoteAuthSecurityEnabled nie zapobiega temu, ponieważ sprawdzenie następuje zbyt późno.
- CVE-2026-62263Krytyczne
W OpenAM w wersjach przed 16.1.2 metoda WebAuthnAuthentication.deserialize stosuje ObjectInputFilter, który zezwala na każdy serializowany obiekt na głębokości większej niż 1, ograniczając jedynie obiekt główny AuthenticatorImpl. Atakujący przed uwierzytelnieniem może dostarczyć userHandle, którego graf serializacji zawiera prawidłowy obiekt główny AuthenticatorImpl oraz zagnieżdżoną klasę gadget, powodując wykonanie readObject lub readResolve przed weryfikacją. Omija to niekompletną naprawę wcześniejszej podatności deserializacji WebAuthn.
- CVE-2026-48717Krytyczne
W OpenAM w wersjach przed 16.1.1 AuthorizationCodeGrantTypeHandler wymaga code_verifier tylko wtedy, gdy włączone jest ustawienie codeVerifierEnforced dla całego realm. Ponieważ ustawienie jest domyślnie wyłączone, atakujący, który przechwyci kod autoryzacyjny chroniony przez PKCE, może pominąć code_verifier i wymienić kod na token. Klienci publiczni są bezpośrednio narażeni, a wykorzystanie dla klientów poufnych wymaga dodatkowo materiału uwierzytelniającego klienta.
- CVE-2026-46619Krytyczne
W OpenAM w wersjach przed 16.1.1 moduł uwierzytelniania MSISDN w MSISDNValidation konkatenuje wartość MSISDN z żądania do filtra wyszukiwania LDAP bez escapowania, a domyślna pusta lista zaufanych bram pozwala na cały ruch. W realmie, w którym moduł MSISDN jest włączony w osiągalnym łańcuchu uwierzytelniania, nieuwierzytelniony zdalny atakujący może wstrzyknąć metaznaki filtra LDAP, wybrać dowolnego pasującego użytkownika i uzyskać sesję OpenAM bez hasła.
- CVE-2026-45052Krytyczne
W OpenAM w wersjach przed 16.1.1 odbiornik SOAP Liberty Web Services pozwala nieuwierzytelnionym zdalnym żądaniom zapisywać trwałe wpisy przez SOAPReceiver i DiscoveryService do magazynu Liberty Discovery użytkownika oraz współdzielonej gałęzi Discovery root-realm. Handlery po stronie serwera omijają ACL LDAP i tożsamości, a ścieżka globalna używa wewnętrznego tokenu administracyjnego. Wdrożenia korzystające z danych Liberty discovery mogą następnie używać zmanipulowanych rekordów routingu usług lub mechanizmów bezpieczeństwa.
- CVE-2026-45051Krytyczne
W OpenAM w wersjach przed 16.1.1 WebAuthnAuthentication ładuje serializowany graf obiektów AuthenticatorImpl z skonfigurowanego userAttribute przez loadAuthenticators bez ObjectInputFilter. Wykorzystanie wymaga osiągalności przepływu WebAuthn oraz wcześniejszego zapisania kontrolowanych danych do tego atrybutu przez delegowaną administrację, provisioning, dostęp do katalogu, starszą samo-rejestrację REST lub niebezpieczną konfigurację. Gdy te warunki są spełnione, dane są deserializowane przed weryfikacją asercji i mogą wykonać gadget z classpath w procesie serwera aplikacji.
- CVE-2026-33439Krytyczne
OpenAM przed wersją 16.0.6 jest podatny na zdalne wykonanie kodu (RCE) przed uwierzytelnieniem poprzez niebezpieczną deserializację Java parametru HTTP jato.clientSession. Atakujący omija zabezpieczenie WhitelistObjectInputStream zastosowane dla parametru jato.pageSession po CVE-2021-35464. Wystarczy wysłać spreparowany serializowany obiekt Java jako parametr GET/POST do dowolnego endpointu JATO ViewBean zawierającego tagi <jato:form>.
- CVE-2023-37471Krytyczne
OpenAM do wersji 14.7.2 nieprawidłowo weryfikuje podpisy odpowiedzi SAML w procesie SSO, co pozwala atakującym na podszywanie się pod dowolnego użytkownika OpenAM, w tym administratora.
- CVE-2026-46560Wysokie
W OpenAM przed wersją 16.1.1 moduł uwierzytelniania RADIUS otwiera niepołączony socket datagramowy i ufa pierwszemu datagramowi UDP odebranemu na porcie źródłowym klienta. Ścieżka odbioru nie weryfikuje źródłowego IP i portu, nie dopasowuje identyfikatora odpowiedzi do żądania ani nie sprawdza Response Authenticator (RFC 2865); Message-Authenticator (RFC 2869) nie jest wysyłany ani wymagany. Każdy pakiet inny niż Reject/Challenge jest traktowany jako sukces, więc atakujący może wyścignąć prawdziwy serwer lub rozsyłać sfałszowane Access-Accept i uzyskać sesję dla dowolnej nazwy użytkownika mapowanej na RADIUS bez znajomości wspólnego sekretu.
Oryginalny opis (angielski, źródło NVD)
Open Access Management (OpenAM) is an access management solution. Prior to 16.1.1, the OAuth2 authentication module updates an existing local account with profile attributes that can include userPassword and inetUserStatus, rewriting the password to the username and reactivating disabled accounts. The missing OAuth.removeRestrictedAccountUpdateAttributes filtering permits these credential and status fields to reach the account update. With account creation enabled, repeated OAuth login causes the default ldapService chain to accept the username as both identifier and password, allowing an unauthenticated attacker to take over the local account without interacting with the identity provider. The rewrite can be denied for usernames shorter than the configured minimum password length. This issue is fixed in version 16.1.1.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

