Skip to main content

pac4j-core CVE-2026-82463

| EUVDEUVD-2026-68120 HIGH
Incorrect Authorization (CWE-863)
2026-08-29 VulnCheck GHSA-f66h-84rm-53q7
8.6
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate via weaker client (form/basic login)
  2. Delivery
    Obtain CommonProfile session token
  3. Exploit
    Request resource requiring SamlProfile/OidcProfile
  4. Execution
    CheckProfileTypeAuthorizer evaluates reversed isAssignableFrom check
  5. Persist
    Authorization incorrectly granted
  6. Impact
    Access protected resource

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization logic validation
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The application must use pac4j-core's CheckProfileTypeAuthorizer to enforce profile-type-based access control - this is the specific, non-default configuration required for exploitation. The attacker must have valid credentials for any authentication client supported by the application (PR:L); unauthenticated access is not possible. Exploitation is limited to resources explicitly protected by CheckProfileTypeAuthorizer configured with a specific subtype (e.g., OidcProfile, SamlProfile, or a custom subclass); resources protected only by standard role-based or permission-based authorizers are unaffected. Applications that authenticate all users through a single client type producing identical profile classes are also unaffected, as no meaningful type distinction exists to bypass.

Impact

The CVSS 4.0 score of 8.6 with vector AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N reflects a high-severity but not maximally critical issue: network-exploitable, low complexity, but requiring prior authentication (PR:L). The practical risk is significant for applications that rely on CheckProfileTypeAuthorizer to distinguish access tiers - for example, allowing API access only to SAML-authenticated users while excluding form-login users. Any application not using this specific authorizer class is unaffected. No EPSS data was provided; no KEV listing exists, and no public exploit has been identified at time of analysis. The risk is real but narrowly scoped to deployments that have implemented profile-type-based access control using pac4j's CheckProfileTypeAuthorizer. The fix was bundled with five other security improvements in the same 6.5.6 release, suggesting these were discovered and patched together rather than in response to observed exploitation.

Exploit ScenarioDerived

An attacker registers or already holds credentials for a weaker authentication path - for example, a form-login account that produces a CommonProfile - in an application that also supports SAML SSO producing a SamlProfile for privileged users. The attacker authenticates via the weaker client and then requests a resource guarded by CheckProfileTypeAuthorizer configured to require SamlProfile; due to the inverted check, the authorizer returns true for the CommonProfile and grants access to the protected resource. No public exploit code has been identified, but the logic inversion is straightforward to reproduce from the public commit diff.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 29, 2026

Authentication bypass in pac4j-core before 6.5.6 allows authenticated users holding a weaker profile type to access resources that enforce a stronger profile type requirement, due to a reversed Java class inheritance check in CheckProfileTypeAuthorizer. The single-character logical inversion - swapping the operands of isAssignableFrom - causes the authorizer to grant access when a base/generic profile is presented against a check expecting a specific subtype (e.g., SAML or OIDC profile), instead of blocking it. No public exploit has been identified at time of analysis, but the fix is confirmed in the 6.5.6 release commit alongside five other security hardening changes.

RemediationAI

Upgrade pac4j-core to version 6.5.6 or later, which contains the confirmed fix per the vendor advisory at https://www.pac4j.org/blog/security-advisory-pac4j-core-oidc-saml.html and commit https://github.com/pac4j/pac4j/commit/2270c3ff70e93cc43831e75702acd5135531237e. Applications not using CheckProfileTypeAuthorizer for profile-type-based access control are not vulnerable and face no behavioral change; note the release notes explicitly warn that the fix 'may change the outcome of existing type checks in both directions,' so regression testing of authorization paths is recommended before deploying to production. As a temporary workaround, applications can replace CheckProfileTypeAuthorizer with a custom authorizer that uses the correct element.isAssignableFrom(profile.getClass()) logic, or enforce profile-type separation at the authentication client layer by routing stronger-authentication requirements to a dedicated endpoint that only accepts the appropriate client.

Affected VersionsENISA

pac4j 0 <6.5.6

Affected Packages

euvd pac4j fix: 6.5.6

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 framework (CPE: cpe:2.3:a:pac4j:pac4j) used for authentication and authorization across JEE, Spring, Play, and other Java stacks. The vulnerability is in CheckProfileTypeAuthorizer, which enforces that an authenticated user's profile object is an instance of a required class hierarchy. Java's Class.isAssignableFrom(Class) method returns true when the calling class is the same as or a supertype of the argument. The buggy code called profile.getClass().isAssignableFrom(element) - checking if the user's profile class is a supertype of the required type - which is the reverse of intent. A CommonProfile (base class) is a supertype of OidcProfile, so the check returned true for exactly the wrong case: a generic login profile satisfying a check meant to require a more specific, stronger-authenticated profile. CWE-863 (Incorrect Authorization) applies: the authorization decision was computed and acted upon, but the logic was inverted. The one-line fix changes the call to element.isAssignableFrom(profile.getClass()), correctly verifying the user's profile is an instance of the required type.

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

Vendor (VulnCheck) PRIMARY 8.6 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
vuln.today AI 8.1 HIGH

Network-exploitable with low complexity, but PR:L because a valid (weaker) authenticated session is required; no scope change since impact stays within the same application boundary.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

pac4j-core before 6.5.6 contains an authentication bypass vulnerability in CheckProfileTypeAuthorizer that reverses the profile type validation logic. Attackers can authenticate through a weaker client and access resources requiring a stronger profile type by satisfying generic profile checks.

Executive ViewAI

Why It Matters

pac4j-core before version 6.5.6 fails to properly validate user access permissions, allowing users to access resources beyond their authorization level. Organizations using this library face immediate risk of unauthorized resource access and potential data exposure. The high CVSS score (8.6) warrants urgent patching despite no current public exploitation.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 77% exploitable
Prevalence
Medium
widely used Java security/auth framework, enterprise and cloud deployments
Social Media
1
Sightings
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment CIRCL GitHub VulDB

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

43
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +43
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy