Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAttacker registers OAuth client in target realm
-
DeliveryVictim initiates authorization code flow
-
ExploitAttacker intercepts authorization code via redirect leak or network position
-
ExecutionAttacker submits code with own client credentials to token endpoint
-
PersistKeycloak issues victim-scoped access token
-
ImpactAttacker accesses victim's protected resources
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V7 - Session Management Session fixation prevention
|
| Exploitation Conditions | Three concurrent prerequisites are required for exploitation: (1) the attacker must hold at least low-privilege access - likely a legitimately registered OAuth client or an authenticated presence within the Keycloak realm (PR:L from CVSS vector); (2) the attacker must be capable of intercepting a victim's authorization code in transit, for example via a network interception position, an open redirect misconfiguration in a registered redirect_uri allowing code exfiltration to an attacker-controlled endpoint, or a referrer header leak from a non-HTTPS redirect; and (3) a victim must actively initiate an OAuth 2.0 authorization code flow (UI:R from CVSS vector). Deployments that enforce PKCE for all clients prevent a foreign client from redeeming the intercepted code even if obtained. Exploitation is limited to the AC:H complexity class - it is not opportunistic or automatable against default-configured deployments without a secondary code-leakage vector already in place. |
| Impact | The CVSS 5.4 (Medium) base score reflects a technically achievable but non-trivial attack path. AV:N confirms the attack is network-delivered but AC:H is the critical moderating factor - the attacker must intercept an in-flight authorization code, which demands a privileged network position or a secondary code-leakage vector such as an open redirect in a registered redirect_uri, a referrer header exposure, or a browser history leak. PR:L indicates the attacker is not fully unauthenticated; they likely need a registered OAuth client or authenticated presence in the same Keycloak realm. UI:R means a victim must actively initiate an authorization flow, constraining mass exploitation. Despite the moderate score, C:H is significant: successful exploitation yields live access tokens scoped to the victim's identity, enabling full account takeover within the OAuth-protected resource server. No EPSS data was provided in the input, the CVE is not listed in the CISA KEV catalog, and no POC status is confirmed, so there is no active exploitation signal. Real-world priority scales with the sensitivity of resources protected by the affected Keycloak instance; environments already enforcing PKCE may be substantially mitigated. |
| Exploit ScenarioDerived | An attacker who operates a registered OAuth client in the same Keycloak realm, or who holds a man-in-the-middle network position, observes a victim's authorization code as it transits an insecurely configured redirect_uri or referrer header. The attacker immediately submits the intercepted code to Keycloak's token endpoint using their own client_id and client_secret, and because the server does not verify that the code was issued to that specific client, it issues valid access tokens representing the victim's identity. No public exploit code has been identified at time of analysis, but the attack technique is well-documented in OAuth security literature and requires no novel tooling. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 17, 2026
Authorization code injection in Red Hat Build of Keycloak's keycloak-services component enables a network-positioned attacker to hijack OAuth 2.0 flows by intercepting and cross-client redeeming authorization codes. Because codes are not cryptographically bound to the originating client, an attacker who obtains a victim's in-flight code can submit it using their own registered client credentials and receive access tokens tied to the victim's identity. No public exploit has been identified at time of analysis, and the CVSS AC:H rating reflects the non-trivial code interception prerequisite that constrains opportunistic exploitation.
RemediationAI
Patch available per vendor advisory - administrators should apply the update published at https://access.redhat.com/security/cve/CVE-2026-16089 as the primary remediation; no specific fixed version number is confirmed in the available data, so the Red Hat advisory must be monitored directly for the patched release. As a direct compensating control, enforce PKCE (Proof Key for Code Exchange) for all OAuth clients registered in Keycloak - this cryptographically binds the authorization code to the initiating client session and directly blocks cross-client code redemption, though it requires all OAuth clients to implement PKCE support, which may break legacy integrations. Additionally, audit all registered OAuth clients for overly permissive redirect_uri patterns that could enable code interception via open redirects, since tightening these removes a common code-leakage vector. Reducing the 'OAuth 2.0 authorization code lifespan' in Keycloak realm settings shortens the interception window but does not eliminate the underlying binding flaw. Restricting the Keycloak authorization and token endpoints to trusted network segments further reduces exposure for the AC:H interception prerequisite.
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The vulnerability resides in the keycloak-services component of Red Hat Build of Keycloak, an enterprise-grade identity and access management platform distributed by Red Hat and built on the open-source Keycloak project. The root cause is the absence of cryptographic binding between an OAuth 2.0 authorization code and the specific client that initiated the authorization request - a control that RFC 7636 (PKCE, Proof Key for Code Exchange) and the OAuth 2.0 Security Best Current Practice (RFC 9700) are designed to enforce. Without this binding, a code legitimately issued to Client A can be submitted to the token endpoint by Client B and honored by the server. Affected product families per CPE data include Red Hat Build of Keycloak, Red Hat Single Sign-On 7, Red Hat JBoss Enterprise Application Platform Expansion Pack, and Red Hat Data Grid 8. No CWE was formally assigned; the root cause maps conceptually to insufficient authorization logic in the OAuth token issuance path.
Know when Red Hat Build Of Keycloak 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
AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:L/A:N
Network-delivered but requires code interception (AC:H) and a low-privilege attacker position (PR:L); victim must initiate OAuth flow (UI:R); token issuance yields high confidentiality impact with minor integrity impact from cross-client redemption.
Primary rating from Vendor (redhat).
CVSS VectorNVD
Lifecycle Timeline
2DescriptionNVD
A flaw was found in the keycloak-services component of Red Hat Build of Keycloak. The issue occurs because OAuth 2.0 authorization codes are not properly bound to the client that originally requested them. An attacker who can intercept an authorization code can modify it to be redeemed by their own client, potentially allowing them to obtain access tokens for a victim's identity.
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.
Affected Products (CPE)NVD
More in Red Hat Build Of Keycloak
View allAccount takeover in Red Hat Build of Keycloak allows an unauthenticated attacker to abuse the reset-credentials flow in
Account takeover in Keycloak (Red Hat build of Keycloak, Red Hat Single Sign-On 7) arises because the IdP-initiated SAML
Authentication bypass in Red Hat Build of Keycloak (and Red Hat Single Sign-On 7) lets an unauthenticated attacker forge
Privilege escalation in Red Hat Build of Keycloak's Dynamic Client Registration (DCR) grants an attacker with low-privil
Mismatched handling of the HTTP/1 absolute-form request authority in Red Hat build of Quarkus and other affected Red Hat
Authorization bypass in the Keycloak Policy Enforcer allows any authenticated user to circumvent all enforced access con
URI normalization bypass in Keycloak's Authorization Services PathMatcher allows authenticated low-privilege users to re
Privilege escalation in Keycloak's Dynamic Client Registration (DCR) component allows attackers with standard user accou
Token exchange in Keycloak bypasses Google Workspace domain allowlist restrictions, enabling any valid Google account ho
Signature-verification bypass in Keycloak (and Red Hat's Keycloak-based products such as Red Hat Single Sign-On 7 and Re
Tenant-restriction bypass in Keycloak's Microsoft identity provider integration allows attackers holding any valid Micro
Session hijacking via SAML assertion replay in Keycloak's SAML broker component allows adjacent-network attackers to aut
EUVD-2026-45176
GHSA-63wm-fvw8-h2hp
NVD
CVE.org
EPSS
VulDB
Exploit-DB