Every CVE Search/ Get API key

CVE-2026-19349

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

9.8 CriticalFix available

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.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
High
Integrity
High
Availability
High

Exploit likelihood

0.82%Up 0.6 points since Aug 17, 2026
90%50%10%1%

What each source reports

CVE List Score used 9.8

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

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.

Record
CVE-2026-19349
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-305, CWE-628
Updated
2026-11-02
EUVDEUVD-2026-59963 9.8

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.

Record
EUVD-2026-59963
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
GitHub AdvisoriesGHSA-4vx7-c7qw-2vx4 9.8

Lemonldap::NG::Portal versions from 2.0.0 before 2.16.9, from 2.17.0 before 2.21.5, from 2.22.0...

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.

Record
GHSA-4vx7-c7qw-2vx4
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-305
Updated
2026-11-02
NVD 9.8

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.

Record
CVE-2026-19349
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-305, CWE-628
Updated
2026-11-02
OSV 9.8

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

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.

Record
CVE-2026-19349
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-305, CWE-628
Updated
2026-11-02
OSVDEBIAN-CVE-2026-19349 9.8

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.

Record
DEBIAN-CVE-2026-19349
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVUBUNTU-CVE-2026-19349 9.8

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.

Record
UBUNTU-CVE-2026-19349
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02

Affected packages

Affected packages
PackageAffectedFixed
lemonldap-ng
Debian:12
before 2.16.1+ds-deb12u9, plus listed versions
2.16.1+ds-22.16.1+ds-deb12u12.16.1+ds-deb12u22.16.1+ds-deb12u32.16.1+ds-deb12u4
Show 4 moreShow less
2.16.1+ds-deb12u52.16.1+ds-deb12u62.16.1+ds-deb12u72.16.1+ds-deb12u8
2.16.1+ds-deb12u9
lemonldap-ng
Debian:13
before 2.21.2+ds-1+deb13u3, plus listed versions
2.21.2+ds-12.21.2+ds-1+deb13u12.21.2+ds-1+deb13u2
2.21.2+ds-1+deb13u3
lemonldap-ng
Debian:14
before 2.23.3+ds-1, plus listed versions
2.21.2+ds-12.21.2+ds-22.21.3+ds-12.21.3+ds-1~bpo12+12.21.3+ds-1~bpo13+1
Show 18 moreShow less
2.22.0+ds-12.22.0+ds-22.22.0+ds-2~bpo13+12.22.1+ds-12.22.1+ds-1~bpo13+12.22.2+ds-12.22.2+ds-1~bpo13+12.22.3+ds-12.22.3+ds-1~bpo13+12.23.0+ds-12.23.0+ds-22.23.0+ds-32.23.0+ds-3~bpo13+12.23.0+ds-42.23.1+ds-12.23.2+ds-12.23.2+ds-1~bpo13+12.23.2+ds-2
2.23.3+ds-1
lemonldap-ng
Ubuntu:16.04:LTS
All versions, plus listed versions
1.3.3-11.4.6-11.4.6-21.4.6-3
None known
lemonldap-ng
Ubuntu:18.04:LTS
All versions, plus listed versions
1.9.10-11.9.13-21.9.14-11.9.15-11.9.16-2
None known
lemonldap-ng
Ubuntu:20.04:LTS
All versions, plus listed versions
2.0.5+ds-22.0.6+ds-22.0.7+ds-2
None known
lemonldap-ng
Ubuntu:22.04:LTS
All versions, plus listed versions
2.0.11+ds-42.0.13+ds-32.0.13+ds-3ubuntu1
None known
lemonldap-ng
Ubuntu:24.04:LTS
All versions, plus listed versions
2.16.2+ds-12.17.1+ds-12.17.2+ds-12.17.2+ds-22.18.1+ds-12.18.2+ds-1
None known
lemonldap-ng
Ubuntu:26.10
All versions, plus listed versions
2.22.2+ds-12.22.3+ds-12.23.0+ds-32.23.0+ds-42.23.2+ds-12.23.2+ds-22.23.3+ds-1
None known
lemonldap-ng
Ubuntu:26.04:LTS
All versions, plus listed versions
2.21.0+ds-32.22.0+ds-22.22.1+ds-12.22.2+ds-1
None known

History

History
RecordedChangedSources
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-19349 is a critical vulnerability (CVSS 9.8) in lemonldap-ng, published August 16, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.82%, the 57th percentile. Fixed in lemonldap-ng 2.16.1+ds-deb12u9.

References

Show 9 moreShow less
MoveEnter Open