Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconAuthenticate as low-privileged user
-
DeliveryObtain valid UMA ticket for one resource
-
ExploitIdentify target resource type via API enumeration
-
InstallCraft permission request with type-scope prefix
-
C2Submit to PERMISSIVE-mode resource server
-
ExecuteBypass per-resource policy check
-
ImpactAccess all resources of that type
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
|
| Exploitation Conditions | All four of the following conditions must hold simultaneously: (1) the attacker is an authenticated user (PR:L) holding at least one legitimate UMA permission ticket for any resource on the target resource server; (2) the resource server is explicitly configured in PERMISSIVE policy enforcement mode - this is not the default hardened setting; (3) the target resource type has ownerManagedAccess enabled, allowing user-delegated access management; (4) no explicit policy exists at the resource type level - only per-resource policies are present, leaving the type unprotected under PERMISSIVE fallback. User interaction (UI:R per CVSS vector) is additionally required, meaning some user action must occur as part of the exploit flow. Exploitation is bounded to resources within the same resource server - cross-server escalation is not indicated. Deployments using ENFORCING or DISABLED enforcement mode, or those with explicit type-level policies, are not affected regardless of ownerManagedAccess status. |
| Impact | The official CVSS 4.6 (Medium) reflects the constrained impact profile: network-reachable (AV:N), low complexity (AC:L), requiring low privileges (PR:L) and user interaction (UI:R), with limited confidentiality and integrity impact only. No EPSS data was provided, and the CVE has neither a KEV listing nor known public exploit code, indicating no confirmed widespread exploitation. The real-world risk is tightly bounded by the deployment configuration: only resource servers simultaneously running in PERMISSIVE mode, with ownerManagedAccess on typed resources, and lacking type-level policies are exposed - this is a non-default combination that limits the attack surface. That said, PERMISSIVE mode is a documented operational choice, not a misconfiguration per se, and organizations relying on per-resource UMA tickets as their primary isolation boundary may be unknowingly vulnerable. The UI:R signal in the CVSS vector is noteworthy: it introduces a dependency on some user interaction that further limits opportunistic exploitation. The independent assessment raises AC to High given the multi-condition configuration dependency, which better reflects realistic exploitability. |
| Exploit ScenarioDerived | An authenticated user who legitimately holds a UMA permission ticket scoped to a single resource (e.g., report:user-42) crafts a permission request using a type-scoped prefix (e.g., report:) that matches all resources of that type on the resource server. Because no explicit type-level policy exists and the server is in PERMISSIVE mode, Keycloak's authorization engine grants the request, allowing the attacker to read or modify all report-type resources belonging to other users within the same resource server. No public exploit code is known to exist, but the technique requires only standard UMA API calls. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 25, 2026
Authorization bypass in Red Hat Build of Keycloak's UMA engine lets an authenticated user who holds a valid permission ticket for a single resource escalate access to all resources of the same type on the resource server by crafting a specific permission request prefix. The bypass is silently permitted when the resource server operates in PERMISSIVE enforcement mode with ownerManagedAccess enabled and no explicit type-level policy in place. No public exploit code exists and this CVE is not listed in CISA KEV at time of analysis, but the low attack complexity and network vector make this a credible internal-privilege escalation path in affected Keycloak deployments.
RemediationAI
No patched version has been identified in the available data - the CPE wildcard and absence of a fixed-version reference in either the Red Hat advisory (https://access.redhat.com/security/cve/CVE-2026-9799) or Bugzilla entry (https://bugzilla.redhat.com/show_bug.cgi?id=2482471) indicate patch availability should be confirmed directly with Red Hat before upgrading. As compensating controls: switch the affected resource server's policy enforcement mode from PERMISSIVE to ENFORCING - this eliminates the permissive fallback that enables the bypass, though it will deny access to any resource lacking an explicit policy, which may require policy auditing first. Alternatively, add explicit DENY policies at the resource type level to override the permissive default for sensitive types. Disabling ownerManagedAccess on resource types that do not strictly require user-delegated sharing also removes the attack surface entirely. Avoid relying on per-resource ticket scoping alone as an isolation boundary when operating in PERMISSIVE mode.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in maven
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The flaw resides in org.keycloak.authorization, the Keycloak module implementing User-Managed Access (UMA) 2.0 permission ticket flows. CWE-639 (Authorization Through User-Controlled Key) is the root cause class: the authorization engine uses attacker-supplied input - a typed permission request prefix - as part of the resource-matching logic without adequately scoping it to the specific ticket-granted resource. Because the resource server is in PERMISSIVE enforcement mode, unmatched or loosely-matched resources default to permitted rather than denied, allowing the prefix to function as a wildcard. The affected CPE is cpe:2.3:a:red_hat:red_hat_build_of_keycloak:*:*:*:*:*:*:*:* with no version upper or lower bound specified in available data. The vulnerability is conditional on three overlapping configuration states: PERMISSIVE enforcement mode, ownerManagedAccess enabled on the resource type, and the absence of an explicit policy protecting that resource type.
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:L/PR:L/UI:R/S:U/C:L/I:L/A:N
AC:H reflects the multi-condition configuration dependency (PERMISSIVE mode plus ownerManagedAccess plus absent type policy); PR:L confirms authenticated access required; no availability impact applies.
Primary rating from Vendor (redhat).
CVSS VectorVendor: redhat
DescriptionCVE.org
A flaw was found in org.keycloak.authorization. An authenticated user with a granted User-Managed Access (UMA) permission ticket for one resource can exploit this by using a specific permission request prefix to bypass per-resource access control. This allows the user to gain unauthorized access to all resources of that type within the same resource server, even if they do not have a ticket for those specific resources. This vulnerability requires the resource server to be configured in PERMISSIVE policy enforcement mode and affects typed resources with ownerManagedAccess enabled, where no explicit policy protects the resource type. The primary consequence is unauthorized information disclosure or modification of resources.
Blast Radius
ecosystem impact- 52 maven packages depend on org.keycloak:keycloak-services (20 direct, 32 indirect)
Ecosystem-wide dependent count for version 26.6.4.
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
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
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-39475
GHSA-gfv4-4vr2-rr4g
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB