Description
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.
Published: 2026-08-16
Score: n/a
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Lemonldap::NG::Portal permits an unauthenticated visitor to obtain a valid SSO session by reusing an OAuth2 state parameter that is stored as a session cookie. The state value is exposed in the redirect URL to GitHub or LinkedIn providers and an attacker can replay it, creating a session that lacks user or authentication level attributes. Because the shipped bootstrap configuration allows default access, such a session is accepted as fully authenticated, providing the attacker an unintentional authenticated session. The weakness is a direct Authentication Bypass (CWE-305) and a misuse of internal state handling (CWE-628).

Affected Systems

The vulnerability affects Lemonldap::NG::Portal versions 2.0.0 up to but not including 2.16.9, 2.17.0 up to but not including 2.21.5, and 2.22.0 up to but not including 2.23.3. These releases are available from the Lemonldap-ng download site or CPAN for 2.23.3. Only configurations with the GitHub or LinkedIn authentication module enabled are exposed.

Risk and Exploitability

The vulnerability allows remote unauthenticated attackers to create a valid authenticated session by simply contacting the GitHub or LinkedIn endpoint, making the exploitation trivial from a network perspective. The EPSS score is not available, but the potential impact is high because any unauthenticated session can be leveraged to access the portal. The vulnerability is not listed in CISA GEVENTS (KEV). The diagonal attack vector is a remote HTTP request to the OAuth2 redirect endpoint, followed by replaying the state value as a session cookie.

Generated by OpenCVE AI on August 16, 2026 at 14:35 UTC.

Remediation

Vendor Solution

Upgrade to Lemonldap-NG-Portal 2.16.9, 2.21.5 or 2.23.3 or later. Only 2.23.3 is on CPAN; the 2.16.9 and 2.21.5 LTS releases are available from https://lemonldap-ng.org/download.html.


Vendor Workaround

For deployments that cannot upgrade, disable the GitHub and LinkedIn authentication modules.


OpenCVE Recommended Actions

  • Upgrade Lemonldap::NG::Portal to at least version 2.16.9 for 2.0.x and 2.17.x users, version 2.21.5 for 2.17.x users, or the latest 2.23.3 release from CPAN or the official download site.
  • If an upgrade cannot be performed immediately, disable the GitHub and LinkedIn authentication modules in your Lemonldap configuration.
  • Review and tighten the bootstrap access rules so that authenticated sessions require a valid user or authentication level rather than relying on the default ‘accept’ rule.

Generated by OpenCVE AI on August 16, 2026 at 14:35 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DSA Debian DSA DSA-6434-1 lemonldap-ng security update
History

Sun, 16 Aug 2026 17:30:00 +0000

Type Values Removed Values Added
References

Sun, 16 Aug 2026 13:45:00 +0000

Type Values Removed Values Added
Description 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.
Title 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
Weaknesses CWE-305
CWE-628
References

Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: CPANSec

Published:

Updated: 2026-08-16T17:06:03.065Z

Reserved: 2026-08-08T14:18:36.846Z

Link: CVE-2026-19349

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-16T14:16:54.720

Modified: 2026-08-16T17:17:04.427

Link: CVE-2026-19349

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-16T14:45:04Z

Weaknesses
  • CWE-305

    Authentication Bypass by Primary Weakness

  • CWE-628

    Function Call with Incorrectly Specified Arguments