Katalog CVE

CVE-2026-92289

Nieznane
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Streszczenie

Podatność w Lemonldap::NG::Portal (Perl) pozwala na obejście PKCE dla publicznych Relying Parties w trybie "PKCE or secret", ponieważ funkcja checkEndPointAuthenticationCredentials nie weryfikuje sekretu klienta. Gdy oidcRPMetaDataOptionsRequirePKCE jest ustawione na 2, punkt końcowy autoryzacji wydaje kod nawet bez code_challenge, a token() akceptuje wymianę, jeśli challenge został zapisany lub zwrócono metodę uwierzytelniania. Atakujący może wymienić przechwycony kod autoryzacyjny na tokeny dostępu, ID i odświeżania użytkownika.

Ocena ryzyka

Atakujący, który przechwyci kod autoryzacyjny wydany publicznemu Relying Party, może uzyskać tokeny dostępu, ID i odświeżania użytkownika, co jest atakiem, któremu PKCE ma zapobiegać. Może to prowadzić do pełnego przejęcia sesji użytkownika.

Rekomendacja

Zaktualizuj Lemonldap::NG::Portal do wersji 2.23.4 lub nowszej. Rozważ wyłączenie dynamicznej rejestracji klientów lub wymuszenie weryfikacji sekretu klienta dla publicznych Relying Parties.

Inne podatności w Lemonldap::NG::Portal

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

Lemonldap::NG::Portal versions from 2.23.0 before 2.23.4 for Perl allow a PKCE bypass for public Relying Parties in "PKCE or secret" mode because checkEndPointAuthenticationCredentials does not verify the client secret. With oidcRPMetaDataOptionsRequirePKCE set to 2, the authorization endpoint issues a code even when the request carries no code_challenge, and token() admits the exchange as long as a challenge was stored or an authentication method was returned for the caller. checkEndPointAuthenticationCredentials() skips the secret comparison for a Relying Party marked public and still returns the method deduced from the request, so any Basic or form credential satisfies the secret branch. validatePKCEChallenge() then passes, because neither a challenge nor a verifier is present. An attacker who intercepts an authorization code issued to a public Relying Party can exchange it for the user's access, ID and refresh tokens by replaying the client_id with an arbitrary secret, which is the attack PKCE prevents. Dynamic client registration creates every Relying Party in this mode.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS