Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain valid Keycloak client credentials
-
DeliveryIdentify realm with Client Policies enforcing signed JWT
-
ExploitCraft token request with forged unsigned assertion header
-
ExecutionSubmit to Keycloak token endpoint
-
PersistPolicy compliance check evaluates to satisfied without signature verification
-
ImpactReceive access tokens via client_secret grant
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Trusted input validation
|
| Exploitation Conditions | Exploitation requires three concurrent conditions: (1) the attacker must already possess valid client credentials (client_id and client_secret) for a registered Keycloak client - PR:L in the CVSS vector confirms this authenticated prerequisite; (2) the target Keycloak realm must have Client Policies explicitly configured to enforce signed JWT client authentication (private_key_jwt or similar); realms that rely on default client_secret authentication are not affected because no stronger requirement exists to bypass; and (3) the attacker must be able to reach the Keycloak token endpoint over the network (AV:N/AC:L). Limiting factors include: without Client Policies configured, the vulnerability has no security impact; exploitation yields access equivalent to what the client credentials already permit, not privilege escalation to admin or other realms; and the scope is unchanged (S:U), meaning lateral movement to other systems is not a direct consequence. |
| Impact | The CVSS 3.1 score of 5.4 (Medium) with vector AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N accurately reflects the bounded nature of this vulnerability. Exploitation is network-accessible with low attack complexity, but PR:L confirms that valid client credentials are a hard prerequisite - an attacker who lacks any credential for the target realm cannot exploit this. The real-world risk is nuanced: the bypass is only meaningful to organizations that explicitly configured Client Policies to enforce signed JWT authentication, because without that policy in place, client_secret authentication is already permitted by default. Environments using Keycloak's default configuration are therefore not meaningfully exposed. For those that did harden their posture, this vulnerability silently voids that control. No EPSS data was provided in the source intelligence, no KEV listing exists, and no POC has been identified, suggesting exploitation remains theoretical or targeted rather than opportunistic. The 'Denial of Service' tag in the source data conflicts with A:N in the CVSS vector and is unsupported by the vulnerability description - treat it as a tagging artifact unless the vendor clarifies. Overall priority should be elevated for organizations with Client Policies actively configured, and treated as low urgency for all others. |
| Exploit ScenarioDerived | An attacker who has obtained valid client credentials (client_id and client_secret) for a Keycloak client in a realm where Client Policies mandate signed JWT assertions constructs a token request containing a forged, unsigned assertion header designed to pass the policy compliance check. Keycloak's policy evaluator accepts the header at face value without verifying the cryptographic signature, classifies the requirement as met, and issues access tokens via the weaker client_secret grant - bypassing the administrator-configured security requirement entirely. No public POC has been identified, but the attack is mechanically straightforward for any developer familiar with OAuth 2.0 token endpoint parameters. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 17, 2026
Keycloak's Client Policies enforcement mechanism - designed to mandate stronger OAuth/OIDC client authentication such as signed JWTs (RFC 7523) - can be bypassed by any attacker who already holds valid client credentials. By supplying a crafted, unsigned assertion header in the token request, the attacker causes Keycloak to evaluate policy compliance as satisfied without performing cryptographic verification, allowing authentication to proceed via a weaker method such as a plain client secret. No public exploit code has been identified and this vulnerability is not listed in CISA KEV; however, the integrity impact is meaningful for organizations that deployed Client Policies specifically to harden their authentication security posture, as those controls are silently neutralized.
RemediationAI
Consult the Red Hat security advisory at https://access.redhat.com/security/cve/CVE-2026-16093 and the associated Bugzilla report at https://bugzilla.redhat.com/show_bug.cgi?id=2501729 for patched package versions; no exact fixed version number is confirmed in the currently available intelligence, so checking the advisory directly is mandatory before acting. Upstream fix availability in community Keycloak releases should also be verified via the Keycloak GitHub project. As an immediate compensating control while a patch is being evaluated, administrators can audit all clients configured with Client Policies requiring signed JWT authentication and validate through access logs whether any token requests are arriving with unusual or unsigned assertion headers. Additionally, scoping client credentials tightly - ensuring client secrets are rotated and not shared - limits the blast radius if credentials were already exposed. There is no feasible workaround that preserves the policy enforcement intent without patching, since the flaw is in the enforcement logic itself.
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
Keycloak implements OAuth 2.0 and OpenID Connect, and its Client Policies framework allows realm administrators to enforce specific security profiles on registered clients - for example, mandating mutual TLS or requiring signed JWT client authentication per RFC 7523 (private_key_jwt). The root cause is classified as CWE-807 (Reliance on Untrusted Inputs in a Security Decision): the policy compliance check inspects an attacker-controllable assertion header field to determine whether the signed-JWT requirement is satisfied, rather than coupling that decision to a verified cryptographic operation. Because the header can be forged without a private key, the enforcement gate is decoupled from the cryptographic guarantee it is supposed to represent. The CPE strings confirm the flaw spans Red Hat Build of Keycloak (multiple release lines), Red Hat Single Sign-On 7, Red Hat JBoss EAP Expansion Pack, and Red Hat Data Grid 8, indicating the underlying Keycloak library version carries the flaw across several Red Hat product lines.
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:N/S:U/C:L/I:L/A:N
PR:L reflects mandatory valid client credentials; C:L/I:L captures token issuance under bypassed policy; A:N as no availability impact is described.
Primary rating from Vendor (redhat).
CVSS VectorVendor: redhat
DescriptionCVE.org
Keycloak provides a mechanism called Client Policies to enforce security requirements on clients, such as requiring them to use signed JWTs for authentication. A flaw was discovered where this enforcement can be bypassed. An attacker with valid client credentials can provide a fake, unsigned assertion header that tricks the system into thinking the policy requirements have been met. This allows the attacker to authenticate using simpler methods like a client secret even when the administrator has mandated more secure, signed assertions.
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
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Affected Products (CPE)CVE.org
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-45222
GHSA-jmhg-9c54-p575
NVD
CVE.org
EPSS
VulDB
Exploit-DB