CVE-2026-16093: Keycloak-services: keycloak-services: required signed-jwt assertion policy can be bypassed with unsigned assertion headers
A flaw was found in the Secure Client Registration executor within the keycloak-services component. The vulnerability exists in the logic that enforces the signed-JWT assertion policy for client registration and updates. When the SecureSigningAlgorithmForSignedJwtExecutor is configured to require a client assertion, it only checks the alg field in the raw client assertion JWT header. It fails to validate that the client assertion type is present or that the client's actual authenticator is assertion-based. By providing a specially crafted request with an unsigned assertion header containing a valid alg field, an attacker with valid client credentials can bypass the signature verification check. This allows the attacker to successfully authenticate or update a client without providing the required cryptographic proof of identity. Successful exploitation allows an attacker to circumvent administrative security policies intended to restrict client authentication to trusted assertion-based methods.
Other sources
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.
— MITRE
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Compensating control
Ensure client registration/update requests cannot be made with client-secret (or other non-assertion-based) authentication when Client Policies require signed JWT assertion. Enforce this at the network/ingress/authorization layer so only trusted clients and trusted flows can reach the Keycloak Secure Client Registration executor.
Event History
Frequently Asked Questions
What is the severity of CVE-2026-16093?
CVE-2026-16093 has a medium severity score of 5.4.
How do I fix CVE-2026-16093?
To fix CVE-2026-16093, ensure that the SecureSigningAlgorithmForSignedJwtExecutor is properly configured to enforce signed JWT assertion policies.
What type of vulnerability is CVE-2026-16093?
CVE-2026-16093 is a vulnerability in the keycloak-services component related to bypassing signed JWT assertion policies.
Which software is affected by CVE-2026-16093?
CVE-2026-16093 affects the Keycloak keycloak-services component.
When was CVE-2026-16093 published?
CVE-2026-16093 was published on July 17, 2026.