Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify target application using pac4j OIDC
-
DeliveryRegister or authenticate via any OAuth client on the same IdP
-
ExploitObtain valid access token for attacker-controlled client
-
ExecutionSubmit crafted OIDC callback with access token to target callback endpoint
-
PersistApplication bypasses issuer, audience, nonce, and subject validation
-
ImpactAuthenticated session established without valid credentials
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V15 - Secure Coding and Architecture Data authenticity verification
|
| Exploitation Conditions | Exploitation targets any application using pac4j-oidc versions before 6.5.6 in an OIDC Authorization Code or hybrid flow configuration. The critical prerequisite is that the attacker must possess a valid access token issued by the same identity provider (IdP) that the target application trusts - this token may be for any registered OAuth client on that IdP, not necessarily the target application's own client_id. No prior authentication to the target application is required (CVSS PR:N/UI:N). Exploitation is meaningfully constrained in environments where the IdP enforces strict client isolation or where the target application is the only registered client; environments using major shared enterprise IdPs (Okta, Azure AD, Keycloak) with multiple registered clients present a wider attack surface because an attacker may legitimately hold tokens from any of those clients. OIDC deployments using only the implicit flow with mandatory ID token delivery, or where the callback endpoint is behind a WAF rejecting access-token-only requests, are not exploitable via this specific code path. |
| Impact | The CVSS 4.0 score of 6.9 (AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N) correctly reflects that the attack is remotely exploitable without privileges or user interaction, though the per-session impact metrics of Low confidentiality and Low integrity understate the systemic severity of a broken authentication boundary. The absence of a CISA KEV listing and no publicly identified POC or EPSS score in the available data means exploitation likelihood must be inferred from vulnerability class rather than observed activity - authentication bypass flaws in OIDC libraries targeting shared identity providers are attractive targets, particularly in multi-tenant enterprise SSO environments where multiple OAuth clients share a single IdP. The attack complexity is genuinely low: an attacker needs only to obtain a legitimately issued access token for any client registered with the same IdP, which can be accomplished by controlling or authenticating through any other application on that provider. Compensating controls exist (WAF callback filtering, strict IdP client registration policies) and reduce risk meaningfully. The vendor patch is confirmed and targeted - upgrade to 6.5.6 resolves the issue cleanly. Overall priority should be elevated above the raw numeric score for organizations running shared enterprise IdPs with multiple OIDC clients, where the trust boundary is wider and token acquisition is more feasible. |
| Exploit ScenarioDerived | An attacker authenticates through a separate, attacker-controlled OAuth client registered on the same identity provider trusted by the target pac4j application, obtaining a legitimately issued access token for their own client. They construct an OIDC callback HTTP request to the vulnerable application's callback endpoint, embedding the access token in place of an authorization code or ID token. Because pac4j-oidc before 6.5.6 does not validate issuer, audience, nonce, or subject on access-token-only callbacks, the application creates an authenticated session - potentially resolving to a victim's identity if the access token carries a matching subject claim. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 29, 2026
Authentication bypass in pac4j-oidc before 6.5.6 allows remote unauthenticated attackers to establish authenticated sessions by submitting OIDC callback requests carrying only a third-party access token, bypassing issuer, audience, nonce, and subject validation entirely. Applications built on the pac4j Java security framework that use OIDC for single sign-on are vulnerable to token substitution attacks from any attacker who holds a valid access token issued by the same identity provider for any other registered OAuth client. No public exploit code has been identified at time of analysis; vendor-released patch is available in version 6.5.6.
RemediationAI
Upgrade pac4j-oidc to version 6.5.6 or later, which enforces that OIDC callbacks must include an authorization code or ID token and performs proper issuer, audience, nonce, and subject validation. The fix is confirmed via upstream commit https://github.com/pac4j/pac4j/commit/2270c3ff70e93cc43831e75702acd5135531237e and the vendor security advisory at https://www.pac4j.org/blog/security-advisory-pac4j-core-oidc-saml.html. The same release also patches SAML unsigned LogoutRequest session destruction, an open redirect in logout handling, and a reversed profile type check in CheckProfileTypeAuthorizer - coordinated upgrade is recommended. If an immediate upgrade is blocked, a targeted compensating control is to configure a WAF or reverse-proxy rule on the OIDC callback endpoint to reject requests that contain an access_token parameter but lack a code or id_token parameter; however, this must be carefully validated against your specific OIDC flow configuration and may break legitimate implicit-flow clients. Restricting IdP client registration to minimize the number of OAuth clients that share the same IdP as the vulnerable application reduces the attacker's token-acquisition surface.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
pac4j is a Java security library (CPE: cpe:2.3:a:pac4j:pac4j:*:*:*:*:*:*:*:*) providing authentication and authorization adapters for frameworks including Spring Web MVC, Play, Shiro, and others. Its pac4j-oidc module implements OpenID Connect 1.0 on top of OAuth 2.0, and the OidcCredentialsExtractor.java class is responsible for parsing and validating credentials from the OIDC authorization callback. In a correctly implemented Authorization Code Flow, the callback must carry an authorization code (exchanged server-side for tokens) or an ID token, both of which are cryptographically bound to the original request through nonce, audience, and issuer claims. Access tokens are opaque bearer tokens not intended for identity assertion by a relying party - they carry no nonce binding and may be scoped to multiple audiences. The root cause is CWE-345 (Insufficient Verification of Data Authenticity): the extractor accepted callbacks with only an access token and performed no validation of issuer, audience, nonce, or subject, allowing tokens minted for unrelated clients to pass as valid authentication credentials. The fix commit confirms this directly in release notes: 'the OIDC callback no longer accepts an access token without an authorization code or an ID token,' and adds UserInfo subject-to-ID-token subject comparison.
Know when Pac4J gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
OIDC callback is network-accessible with no authentication or interaction required; scope unchanged as impact is limited to unauthorized session creation in the target application.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
pac4j-oidc before 6.5.6 accepts OIDC callbacks carrying only an access token without authorization code or ID token validation. Attackers can substitute access tokens minted for other clients to create authenticated sessions without proper issuer, audience, nonce, or subject verification.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
LDAP injection vulnerabilities in PAC4J authentication library allow low-privileged remote attackers to execute arbitrar
Authentication bypass in pac4j-core before 6.5.6 allows authenticated users holding a weaker profile type to access reso
Privilege escalation in pac4j-oidc before 6.5.6 allows authenticated attackers to forge Keycloak access tokens and claim
CSRF protection bypass in PAC4J authentication library allows remote attackers to forge state-changing requests without
Session termination via unsigned SAML LogoutRequest in pac4j-saml before 6.5.6 allows unauthenticated remote attackers t
Open redirect in pac4j-core before 6.5.6 allows network-accessible attackers to redirect authenticated users to attacker
The SAML identifier generated within SAML2Utils.java was found to make use of the apache commons-lang3 RandomStringUtils
EUVD-2026-68119
GHSA-w9jq-4xjw-37gj
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB