Summary
CVE-2026-92288 is an authentication bypass in the OAuth2 token introspection endpoint of Lemonldap::NG::Portal, allowing unauthenticated attackers to introspect access tokens issued to public OAuth2/OIDC Relying Parties. The vulnerability carries a CVSS v3.1 base score of 9.1 (Critical) and affects internet-facing Single Sign-On / identity federation deployments. Exploitation requires only a previously obtained access token and the client_id of any public Relying Party — no client secret is needed.
Technical details
- Root cause: The
checkEndPointAuthenticationCredentials()function in the Portal’s OpenID Connect handling skips client secret comparison when the Relying Party is configured as a "public" client, but still returns a valid authentication method (client_secret_basicorclient_secret_post) as if the request had been properly authenticated. - Trigger condition: The
introspection()endpoint only rejects a caller when the returned authentication method is missing ornone. Because the public-client code path still returns a non-nonemethod, a request carrying a public client’sclient_idand an arbitrary or empty secret passes the endpoint’s authentication check. - Attack vector: Network — the attacker sends a crafted request to the OAuth2 token introspection endpoint with a valid access token and the client_id of any public Relying Party; no prior authentication to the Portal itself is required.
- Impact: An attacker who holds an access token can confirm whether it is active and read its metadata, including scope, audience, expiry, and the
subclaim. This can also allow translation of user identifiers between Relying Parties, undermining per-client and pseudonymous identifier protections that Lemonldap::NG is designed to enforce.
Affected software
- Lemonldap::NG::Portal 2.20.0 through 2.21.5
- Lemonldap::NG::Portal 2.22.0 through 2.23.3
Severity
- CVSS v3.1 Base Score: 9.1 (Critical)
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
Mitigation and recommended actions
- Immediate: Upgrade to Lemonldap::NG::Portal 2.21.6 (LTS branch) or 2.23.4 (current branch), whichever applies to the deployed release line. Note that only 2.23.4 is distributed via CPAN; the 2.21.6 LTS release is available from the project’s official download page.
- If immediate patching is not possible: Restrict network exposure of the OAuth2 token introspection endpoint (e.g., limit access to trusted backend services only, not the public internet), and audit configured Relying Parties to identify which are marked as "public" clients, since these are the ones exploitable via this flaw.

