FICHE CVE

CVE-2026-19349

Publiée le 2026-08-16 · Dernière modification le 2026-08-26

🇫🇷 EN BREF

Les installations de Lemonldap::NG::Portal utilisant GitHub ou LinkedIn pour l'authentification sont vulnérables à un contournement de l'authentification. Un attaquant distant non authentifié peut capturer un identifiant d'état lors du processus de connexion et le rejouer comme cookie de session pour obtenir un accès non autorisé au système. Cette exploitation est facile à exécuter car elle ne nécessite aucun identifiant préalable ni interaction de l'utilisateur, bien que l'impact dépende de la question de savoir si vos règles d'accès spécifiques exigent une identité d'utilisateur vérifiée.

CVSS 3.19.8 CRITIQUE
Type de faiblesse
Publiée2026-08-16
Dernière modification2026-08-26

DÉTAIL DU VECTEUR CVSS

Vecteur d'attaqueRéseau
Complexité d'attaqueFaible
Privilèges requisAucun
Interaction utilisateurAucune
PortéeInchangée
Impact sur la confidentialitéÉlevé
Impact sur l'intégritéÉlevé
Impact sur la disponibilitéÉlevé

RÉFÉRENCES

Description officielle du NVD (en anglais)

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.