Summary
CVE-2026-48717 is an improper authorization vulnerability (CWE-285) in OpenAM’s OAuth2 authorization-code grant handling that allows a PKCE-protected authorization code to be redeemed without supplying the required code_verifier. It affects OpenAM Community Edition versions through 16.0.6 and carries a CVSS v4.0 base score of 9.1 (Critical).
Technical details
- OpenAM’s authorize endpoint stores a
code_challengeon the issued authorization code when a client initiates a PKCE (Proof Key for Code Exchange) flow. - The token endpoint only enforces validation of the corresponding
code_verifierwhen a realm-wide setting,codeVerifierEnforced, is explicitly turned on — and this setting ships disabled by default. - With enforcement off, the stored
code_challengeis checked only if the client actually supplies acode_verifier; an attacker who omits the parameter entirely bypasses PKCE verification. - Attack vector is network-based and requires no user interaction beyond intercepting or otherwise obtaining a valid authorization code (e.g., via an OAuth redirect leak). Public clients relying solely on PKCE for protection are most exposed, since an intercepted code can be exchanged directly for tokens without any additional secret.
- Successful exploitation results in unauthorized redemption of authorization codes for access/ID tokens, impacting confidentiality and integrity of the OAuth2 flow.
Affected software
- OpenIdentityPlatform OpenAM, all versions up to and including 16.0.6
Severity
- CVSS v4.0 Base Score: 9.1 (Critical)
- Vector:
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
Mitigation and recommended actions
- Immediate: Upgrade OpenAM to version 16.1.1 or later, which enforces PKCE
code_verifiervalidation correctly. - If patching is not immediately possible: Explicitly enable the realm-wide
codeVerifierEnforcedsetting for all realms using PKCE-based OAuth2 clients so that authorization codes with a storedcode_challengecannot be redeemed without a matchingcode_verifier. Review OAuth2 client configurations to ensure public clients are not relying solely on default settings for PKCE protection.

