{"id":"CVE-2026-82461","summary":"pac4j-oidc before 6.5.6 Privilege Escalation via Unverified Keycloak Access Token","details":"pac4j-oidc before 6.5.6 fails to verify access token signatures, issuers, audiences, or expiry when extracting Keycloak realm and client roles. Attackers can forge access tokens with administrative roles paired with valid ID tokens to bypass authorization checks in applications relying on pac4j role validation.","modified":"2026-09-12T03:30:41.186343138Z","published":"2026-08-29T16:35:25.482Z","database_specific":{"cna_assigner":"VulnCheck","cwe_ids":["CWE-347"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/82xxx/CVE-2026-82461.json"},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/82xxx/CVE-2026-82461.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-82461"},{"type":"ADVISORY","url":"https://www.pac4j.org/blog/security-advisory-pac4j-core-oidc-saml.html"},{"type":"ADVISORY","url":"https://www.vulncheck.com/advisories/pac4j-oidc-before-6.5.6-privilege-escalation-via-unverified-keycloak-access-token"},{"type":"FIX","url":"https://github.com/pac4j/pac4j/commit/2270c3ff70e93cc43831e75702acd5135531237e"},{"type":"PACKAGE","url":"https://github.com/pac4j/pac4j"},{"type":"ARTICLE","url":"https://github.com/pac4j/pac4j/blob/pac4j-parent-6.5.5/pac4j-oidc/src/main/java/org/pac4j/oidc/authorization/generator/KeycloakRolesAuthorizationGenerator.java"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/pac4j/pac4j","events":[{"introduced":"0"},{"fixed":"0ce4586f0526cb94d1e2bb6623c416db9b4dc2a3"}],"database_specific":{"extracted_events":[{"introduced":"0"},{"fixed":"6.5.6"}],"source":"AFFECTED_FIELD"}}],"versions":["pac4j-parent-6.5.5","pac4j-parent-6.5.4","pac4j-parent-6.5.3","pac4j-parent-6.5.2","pac4j-parent-6.5.1","pac4j-parent-6.5.0","pac4j-parent-6.4.1","pac4j-parent-6.4.0","pac4j-parent-6.4.0-RC1","pac4j-parent-6.3.2","pac4j-parent-6.3.1","pac4j-parent-6.3.0","pac4j-parent-6.2.2","pac4j-parent-6.2.1","pac4j-parent-6.2.0","pac4j-parent-6.1.3","pac4j-parent-6.1.2","pac4j-parent-6.1.1","pac4j-parent-6.1.0","pac4j-parent-6.0.6","pac4j-parent-6.0.5","6.0.4.1","pac4j-parent-6.0.4","pac4j-parent-6.0.3","pac4j-parent-6.0.2","pac4j-parent-6.0.1","pac4j-parent-6.0.0","pac4j-parent-6.0.0-RC10","pac4j-parent-6.0.0-RC9","pac4j-parent-6.0.0-RC8","pac4j-parent-6.0.0-RC7","pac4j-parent-6.0.0-RC6","pac4j-parent-6.0.0-RC5","pac4j-parent-6.0.0-RC4","pac4j-parent-6.0.0-RC3","pac4j-parent-6.0.0-RC2","pac4j-parent-6.0.0-RC1","pac4j-parent-5.7.0","pac4j-parent-5.6.1","pac4j-parent-5.6.0","pac4j-parent-5.5.0","pac4j-parent-5.4.6","pac4j-parent-5.4.5","pac4j-parent-5.4.4","pac4j-parent-5.4.3","pac4j-parent-5.4.2","pac4j-parent-5.4.0","pac4j-parent-5.3.1","pac4j-parent-5.3.0","pac4j-parent-5.2.1","pac4j-parent-5.2.0","pac4j-5.1.5","pac4j-5.1.4","pac4j-5.1.3","pac4j-5.1.2","pac4j-5.1.1","pac4j-5.1.0","pac4j-5.0.1","pac4j-5.0.0","pac4j-5.0.0-RC2","pac4j-5.0.0-RC1","pac4j-4.1.0","pac4j-4.0.3","pac4j-4.0.2","pac4j-4.0.1","pac4j-4.0.0","pac4j-4.0.0-RC3","pac4j-4.0.0-RC2","pac4j-4.0.0-RC1","pac4j-3.4.0","pac4j-3.3.0","pac4j-3.2.0","pac4j-3.1.0","pac4j-3.0.1","pac4j-3.0.0","pac4j-3.0.0-RC2","pac4j-3.0.0-RC1","pac4j-2.1.0","pac4j-2.0.0","pac4j-2.0.0-RC2","pac4j-2.0.0-RC1","pac4j-1.9.3","pac4j-1.9.2","pac4j-1.9.1","pac4j-1.9.0","pac4j-1.8.3","pac4j-1.8.2","pac4j-1.8.1","pac4j-1.8.0","pac4j-1.8.0-RC1","pac4j-1.7.0","pac4j-1.6.0","pac4j-1.6.0-RC1","pac4j-1.5.1","pac4j-1.5.0","pac4j-1.4.1","pac4j-1.4.0","scribe-up-1.3.1","scribe-up-1.3.0","scribe-up-1.1.0","scribe-up-1.0.0"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-82461.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V4","score":"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"}]}