CVE-2026-92288
NieznaneStreszczenie
Podatność w Lemonldap::NG::Portal (Perl) pozwala na nieuwierzytelnione introspekcje tokenów OAuth2, ponieważ checkEndPointAuthenticationCredentials nie weryfikuje sekretu klienta publicznego Relying Party. Funkcja pomija porównanie sekretu dla publicznego Relying Party i zwraca metodę uwierzytelniania wywnioskowaną z żądania, więc żądanie z publicznym client_id i dowolnym lub pustym sekretem przechodzi weryfikację. Atakujący może potwierdzić aktywność tokenu i odczytać jego metadane, w tym scope, audience, expiry i sub.
Ocena ryzyka
Atakujący posiadający token dostępu i znający client_id dowolnego publicznego Relying Party może potwierdzić aktywność tokenu i odczytać jego metadane, w tym scope, audience, expiry i sub. Może również tłumaczyć identyfikator użytkownika między Relying Parties, obchodząc identyfikatory per-klient i pseudonimowe.
Rekomendacja
Zaktualizuj Lemonldap::NG::Portal do wersji 2.21.6 lub 2.23.4 (w zależności od gałęzi) lub nowszej. Upewnij się, że publiczne Relying Parties nie mogą uzyskać dostępu do introspekcji tokenów bez weryfikacji sekretu.
Inne podatności w Lemonldap::NG::Portal
Zobacz wszystkie- CVE-2026-92289Nieznane
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.
- CVE-2026-19349Krytyczne
Lemonldap::NG::Portal w wersjach od 2.0.0 do 2.16.9, od 2.17.0 do 2.21.5 oraz od 2.22.0 do 2.23.3 dla Perla umożliwia obejście uwierzytelniania poprzez parametr stanu OAuth2 przechowywany jako sesja SSO w backendach GitHub i LinkedIn. Atakujący może odtworzyć identyfikator sesji jako ciasteczko sesyjne i uzyskać ważną sesję SSO bez uwierzytelniania.
Oryginalny opis (angielski, źródło NVD)
Lemonldap::NG::Portal versions from 2.20.0 before 2.21.6, from 2.22.0 before 2.23.4 for Perl allow unauthenticated OAuth2 token introspection because checkEndPointAuthenticationCredentials does not verify the client secret of a public Relying Party. checkEndPointAuthenticationCredentials() skips the secret comparison for a Relying Party marked public and still returns the authentication method deduced from the request, client_secret_basic or client_secret_post. introspection() rejects a caller only when that method is missing or none, so a request carrying a public client_id and an arbitrary or empty secret passes the endpoint's authentication check. An attacker who holds an access token and knows the client_id of any public Relying Party can confirm the token is active and read its metadata, including scope, audience, expiry and the sub claim. The sub claim is computed with the calling Relying Party's user identifier attribute, so an attacker can translate a user identifier from one Relying Party to another, defeating per-client and pseudonymous identifiers.

