Security Advisories (1)
CVE-2026-19349 (2026-08-16)

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.

Documentation

Writing authentication modules for LemonLDAP::NG.
Writing CAPTCHA modules for LemonLDAP::NG.
Writing authentication modules for LemonLDAP::NG.

Modules

The authentication portal part of Lemonldap::NG Web-SSO system.
Manage SAML Common Domain Cookie
Role for registrable second factors
Common CAS functions
Add capability to manage extensions to Net::OpenID::Server
Common OpenIDConnect functions
Common SAML functions
Base class for identity providers.
Base class for Lemonldap::NG::Portal modules (plugins, authentication modules,...).
HTTP request object used in LLNG portal methods.
Base class for Lemonldap::NG::Portal second factor plugins.
LLNG portal plugin that allows one to publish HTML pages using LLNG framework system.

Provides

in lib/Lemonldap/NG/Portal/2F/Engines/Default.pm
in lib/Lemonldap/NG/Portal/2F/Ext2F.pm
in lib/Lemonldap/NG/Portal/2F/Mail2F.pm
in lib/Lemonldap/NG/Portal/2F/REST.pm
in lib/Lemonldap/NG/Portal/2F/Radius.pm
in lib/Lemonldap/NG/Portal/2F/Register/Base.pm
in lib/Lemonldap/NG/Portal/2F/Register/TOTP.pm
in lib/Lemonldap/NG/Portal/2F/Register/U2F.pm
in lib/Lemonldap/NG/Portal/2F/Register/WebAuthn.pm
in lib/Lemonldap/NG/Portal/2F/Register/Yubikey.pm
in lib/Lemonldap/NG/Portal/2F/TOTP.pm
in lib/Lemonldap/NG/Portal/2F/U2F.pm
in lib/Lemonldap/NG/Portal/2F/UTOTP.pm
in lib/Lemonldap/NG/Portal/2F/WebAuthn.pm
in lib/Lemonldap/NG/Portal/2F/Yubikey.pm
in lib/Lemonldap/NG/Portal/Auth/AD.pm
in lib/Lemonldap/NG/Portal/Auth/Apache.pm
in lib/Lemonldap/NG/Portal/Auth/CAS.pm
in lib/Lemonldap/NG/Portal/Auth/Choice.pm
in lib/Lemonldap/NG/Portal/Auth/Combination.pm
in lib/Lemonldap/NG/Portal/Auth/Custom.pm
in lib/Lemonldap/NG/Portal/Auth/DBI.pm
in lib/Lemonldap/NG/Portal/Auth/Demo.pm
in lib/Lemonldap/NG/Portal/Auth/Facebook.pm
in lib/Lemonldap/NG/Portal/Auth/GPG.pm
in lib/Lemonldap/NG/Portal/Auth/GitHub.pm
in lib/Lemonldap/NG/Portal/Auth/Kerberos.pm
in lib/Lemonldap/NG/Portal/Auth/LDAP.pm
in lib/Lemonldap/NG/Portal/Auth/LinkedIn.pm
in lib/Lemonldap/NG/Portal/Auth/Null.pm
in lib/Lemonldap/NG/Portal/Auth/OpenID.pm
in lib/Lemonldap/NG/Portal/Auth/OpenIDConnect.pm
in lib/Lemonldap/NG/Portal/Auth/PAM.pm
in lib/Lemonldap/NG/Portal/Auth/Proxy.pm
in lib/Lemonldap/NG/Portal/Auth/REST.pm
in lib/Lemonldap/NG/Portal/Auth/Radius.pm
in lib/Lemonldap/NG/Portal/Auth/Remote.pm
in lib/Lemonldap/NG/Portal/Auth/SAML.pm
in lib/Lemonldap/NG/Portal/Auth/SSL.pm
in lib/Lemonldap/NG/Portal/Auth/Slave.pm
in lib/Lemonldap/NG/Portal/Auth/Twitter.pm
in lib/Lemonldap/NG/Portal/Auth/WebID.pm
in lib/Lemonldap/NG/Portal/Auth/_WebForm.pm
in lib/Lemonldap/NG/Portal/Captcha/SecurityImage.pm
in lib/Lemonldap/NG/Portal/CertificateResetByMail/Custom.pm
in lib/Lemonldap/NG/Portal/CertificateResetByMail/Demo.pm
in lib/Lemonldap/NG/Portal/CertificateResetByMail/LDAP.pm
in lib/Lemonldap/NG/Portal/Issuer/CAS.pm
in lib/Lemonldap/NG/Portal/Issuer/Get.pm
in lib/Lemonldap/NG/Portal/Issuer/OpenID.pm
in lib/Lemonldap/NG/Portal/Issuer/OpenIDConnect.pm
in lib/Lemonldap/NG/Portal/Issuer/SAML.pm
in lib/Lemonldap/NG/Portal/Lib/Captcha.pm
in lib/Lemonldap/NG/Portal/Lib/Choice.pm
in lib/Lemonldap/NG/Portal/Lib/Code2F.pm
in lib/Lemonldap/NG/Portal/Auth/Combination.pm
in lib/Lemonldap/NG/Portal/Lib/CustomModule.pm
in lib/Lemonldap/NG/Portal/Lib/DBI.pm
in lib/Lemonldap/NG/Portal/Lib/LDAP.pm
in lib/Lemonldap/NG/Portal/Lib/Net/LDAP.pm
in lib/Lemonldap/NG/Portal/Lib/Notifications/JSON.pm
in lib/Lemonldap/NG/Portal/Lib/Notifications/XML.pm
in lib/Lemonldap/NG/Portal/Lib/OneTimeToken.pm
in lib/Lemonldap/NG/Portal/Lib/OpenID/SREG.pm
in lib/Lemonldap/NG/Portal/Lib/OtherSessions.pm
in lib/Lemonldap/NG/Portal/Lib/OverConf.pm
in lib/Lemonldap/NG/Portal/Lib/REST.pm
in lib/Lemonldap/NG/Portal/Lib/RESTProxy.pm
in lib/Lemonldap/NG/Portal/Lib/Remote.pm
in lib/Lemonldap/NG/Portal/Lib/SMTP.pm
in lib/Lemonldap/NG/Portal/Lib/SOAPProxy.pm
in lib/Lemonldap/NG/Portal/Lib/Slave.pm
in lib/Lemonldap/NG/Portal/Lib/U2F.pm
in lib/Lemonldap/NG/Portal/Lib/WebAuthn.pm
in lib/Lemonldap/NG/Portal/Lib/Wrapper.pm
in lib/Lemonldap/NG/Portal/Lib/_tokenRule.pm
in lib/Lemonldap/NG/Portal/Lib/Choice.pm
in lib/Lemonldap/NG/Portal/Main.pm
in lib/Lemonldap/NG/Portal/Main/Display.pm
in lib/Lemonldap/NG/Portal/Main/Init.pm
in lib/Lemonldap/NG/Portal/Main/Plugins.pm
in lib/Lemonldap/NG/Portal/Main/Process.pm
in lib/Lemonldap/NG/Portal/Main/Run.pm
in lib/Lemonldap/NG/Portal/Main/Auth.pm
in lib/Lemonldap/NG/Portal/Main/Constants.pm
in lib/Lemonldap/NG/Portal/Main/Display.pm
in lib/Lemonldap/NG/Portal/Main/Init.pm
in lib/Lemonldap/NG/Portal/Main/Menu.pm
in lib/Lemonldap/NG/Portal/Main/Plugins.pm
in lib/Lemonldap/NG/Portal/Main/Process.pm
in lib/Lemonldap/NG/Portal/Main/Run.pm
in lib/Lemonldap/NG/Portal/Password/AD.pm
in lib/Lemonldap/NG/Portal/Password/Base.pm
in lib/Lemonldap/NG/Portal/Password/Choice.pm
in lib/Lemonldap/NG/Portal/Password/Combination.pm
in lib/Lemonldap/NG/Portal/Password/Custom.pm
in lib/Lemonldap/NG/Portal/Password/DBI.pm
in lib/Lemonldap/NG/Portal/Password/Demo.pm
in lib/Lemonldap/NG/Portal/Password/LDAP.pm
in lib/Lemonldap/NG/Portal/Password/Null.pm
in lib/Lemonldap/NG/Portal/Password/REST.pm
in lib/Lemonldap/NG/Portal/Plugins/AdaptativeAuthenticationLevel.pm
in lib/Lemonldap/NG/Portal/Plugins/AutoSignin.pm
in lib/Lemonldap/NG/Portal/Plugins/BruteForceProtection.pm
in lib/Lemonldap/NG/Portal/Plugins/CDA.pm
in lib/Lemonldap/NG/Portal/Plugins/CertificateResetByMail.pm
in lib/Lemonldap/NG/Portal/Plugins/CheckDevOps.pm
in lib/Lemonldap/NG/Portal/Plugins/CheckState.pm
in lib/Lemonldap/NG/Portal/Plugins/CheckUser.pm
in lib/Lemonldap/NG/Portal/Plugins/ContextSwitching.pm
in lib/Lemonldap/NG/Portal/Plugins/CrowdSec.pm
in lib/Lemonldap/NG/Portal/Plugins/DecryptValue.pm
in lib/Lemonldap/NG/Portal/Plugins/FindUser.pm
in lib/Lemonldap/NG/Portal/Plugins/ForceAuthn.pm
in lib/Lemonldap/NG/Portal/Plugins/GlobalLogout.pm
in lib/Lemonldap/NG/Portal/Plugins/GrantSession.pm
in lib/Lemonldap/NG/Portal/Plugins/History.pm
in lib/Lemonldap/NG/Portal/Plugins/Impersonation.pm
in lib/Lemonldap/NG/Portal/Plugins/MailPasswordReset.pm
in lib/Lemonldap/NG/Portal/Plugins/NewLocationWarning.pm
in lib/Lemonldap/NG/Portal/Plugins/Notifications.pm
in lib/Lemonldap/NG/Portal/Plugins/RESTServer.pm
in lib/Lemonldap/NG/Portal/Plugins/Refresh.pm
in lib/Lemonldap/NG/Portal/Plugins/Register.pm
in lib/Lemonldap/NG/Portal/Plugins/SOAPServer.pm
in lib/Lemonldap/NG/Portal/Plugins/SingleSession.pm
in lib/Lemonldap/NG/Portal/Plugins/Status.pm
in lib/Lemonldap/NG/Portal/Plugins/StayConnected.pm
in lib/Lemonldap/NG/Portal/Plugins/Upgrade.pm
in lib/Lemonldap/NG/Portal/Register/AD.pm
in lib/Lemonldap/NG/Portal/Register/Base.pm
in lib/Lemonldap/NG/Portal/Register/Custom.pm
in lib/Lemonldap/NG/Portal/Register/Demo.pm
in lib/Lemonldap/NG/Portal/Register/LDAP.pm
in lib/Lemonldap/NG/Portal/UserDB/AD.pm
in lib/Lemonldap/NG/Portal/UserDB/CAS.pm
in lib/Lemonldap/NG/Portal/UserDB/Choice.pm
in lib/Lemonldap/NG/Portal/UserDB/Combination.pm
in lib/Lemonldap/NG/Portal/UserDB/Custom.pm
in lib/Lemonldap/NG/Portal/UserDB/DBI.pm
in lib/Lemonldap/NG/Portal/UserDB/Demo.pm
in lib/Lemonldap/NG/Portal/UserDB/Facebook.pm
in lib/Lemonldap/NG/Portal/UserDB/LDAP.pm
in lib/Lemonldap/NG/Portal/UserDB/Null.pm
in lib/Lemonldap/NG/Portal/UserDB/OpenID.pm
in lib/Lemonldap/NG/Portal/UserDB/OpenIDConnect.pm
in lib/Lemonldap/NG/Portal/UserDB/Proxy.pm
in lib/Lemonldap/NG/Portal/UserDB/REST.pm
in lib/Lemonldap/NG/Portal/UserDB/Remote.pm
in lib/Lemonldap/NG/Portal/UserDB/SAML.pm
in lib/Lemonldap/NG/Portal/UserDB/Slave.pm
in lib/Lemonldap/NG/Portal/UserDB/WebID.pm