Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

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

Quick assessment

Affected
CVE-2026-19349
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

Lemonldap::NG::Portal 中,2.0.0 至 2.16.9(不含 2.16.9)、2.17.0 至 2.21.5(不含 2.21.5)以及 2.22.0 至 2.23.3(不含 2.23.3)版本的 Perl 实现存在身份验证绕过漏洞。该漏洞源于在 GitHub 和 LinkedIn 后端中,OAuth2 的 state 参数被错误地存储为 SSO 会话。 在重定向至身份提供者之前, 函数会通过位置参数调用 创建 state 会话。由于 函数的设计是接受一个会话 ID,随后接受一个命名参数哈希表(

AI Predicted 8.1 Difficulty: Easy EPSS 0.82% · P57

Affected Version Matrix 3

VendorProduct Version RangeStatus
None None 2.0.0< 2.16.9 affected
2.17.0< 2.21.5 affected
2.22.0< 2.23.3 affected

I. Basic Information for CVE-2026-19349

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability 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
Source: CVE Program / CVE List V5
Vulnerability 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.
Source: CVE Program / CVE List V5
CVSS Information
N/A
Source: CVE Program / CVE List V5
Vulnerability Type
使用基本弱点进行的认证绕过
Source: CVE Program / CVE List V5

Affected Products

Vendor Product Affected Versions CPE Subscribe
- - 2.0.0 ~ 2.16.9 -

II. Public POCs for CVE-2026-19349

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-19349

请登录查看更多情报信息。

Vendor Advisories for CVE-2026-19349 (1)

Vendor Pages for CVE-2026-19349 (2)

IV. Related Vulnerabilities