CVE-2026-45794
WysokieCVSS 7.7Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 48 - wyżej niż 48% wszystkich znanych CVE
Streszczenie
W OpenAM anonimowe wywołanie zwrotne SNS Push Notification obsługiwane przez SnsMessageResource po wygaśnięciu messageId z dyspozytora w pamięci sięga do predykatu blob CTS, traktuje klucze najwyższego poziomu blob jako nazwy klas Java dla Class.forName i deserializuje kontrolowany przez atakującego JSON przez Jackson. Użytkownik o niskich uprawnieniach, który rozpocznie Push Registration i uzyska messageId, wspólny sekret i wyzwanie, może poczekać na wygaśnięcie, zastąpić trwały blob przez anonimowe wywołania zwrotne i wywołać ładowanie i konstrukcję klas w JVM OpenAM. Problem naprawiono w wersji 16.1.1.
Ocena ryzyka
Atakujący może wywołać ładowanie klas i potencjalnie wykonać kod, zapisywać pliki lub spowodować odmowę usługi. Prowadzi to do kompromitacji JVM i dostępnych zasobów.
Rekomendacja
Zaktualizuj OpenAM do wersji 16.1.1 lub nowszej. Do czasu aktualizacji ogranicz dostęp do anonimowych wywołań zwrotnych SNS i monitoruj nietypowe ładowanie klas.
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 anonymous Push Notification SNS callback handled by SnsMessageResource falls back to a CTS predicate blob after a messageId expires from the in-memory dispatcher, treats top-level blob keys as Java class names for Class.forName, and deserializes attacker-controlled JSON through Jackson. A low-privileged user who starts Push Registration and obtains the messageId, shared secret, and challenge can wait for expiry, replace the persistent blob through anonymous callbacks, and trigger class loading and construction in the OpenAM JVM. The primitive can cause classpath-dependent process execution, file writes, or denial of service, although command execution was not confirmed on the tested stock classpath. This issue is fixed in version 16.1.1.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

