CVE-2026-19349
KrytyczneCVSS 9.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 38 - wyżej niż 38% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Ryzyko nieautoryzowanego dostępu do systemu dla każdego odwiedzającego, który dotrze do punktu końcowego GitHub lub LinkedIn, co może prowadzić do naruszenia poufności i integralności danych.
Rekomendacja
Zaktualizuj Lemonldap::NG::Portal do wersji 2.16.9, 2.21.5 lub 2.23.3 (lub nowszej) oraz sprawdź konfigurację reguł dostępu, aby nie zezwalać na domyślny dostęp bez uwierzytelnienia.
Inne podatności w Lemonldap::NG::Portal
Zobacz wszystkie- CVE-2026-92289Krytyczne
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-92288Krytyczne
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.
Oryginalny opis (angielski, źródło NVD)
Lemonldap::NG::Portal versions from 2.0.0 before 2.16.9, from 2.17.0 before 2.21.5, from 2.22.0 before 2.23.3 for Perl allow authentication bypass via an OAuth2 state parameter stored as an SSO session in the GitHub and LinkedIn backends. Before redirecting to the identity provider, extractFormInfo() creates the state session with the positional call `getApacheSession( undef, 1, 0, 'GitHubState' )`. getApacheSession() takes a session id followed by a named argument hash, so the trailing arguments become that hash, `kind` defaults to SSO, and the state is written to the global session storage as a regular SSO session. Its identifier is handed to the unauthenticated visitor as the state parameter of the redirection URL. Any visitor who reaches the GitHub or LinkedIn endpoint can replay that identifier as a session cookie and obtain a valid SSO session without authenticating. The session holds neither _user nor authenticationLevel, which the shipped bootstrap configuration accepts because it grants virtual hosts a "default => accept" access rule; deployments whose rules test the user or require an authentication level are less exposed. Only configurations with the GitHub or LinkedIn authentication module enabled are affected.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

