REDHAT-BUG-2537165: Medium severity org.keycloak.protocol.oidc vulnerability
A Missing Authorization vulnerability was identified in the org.keycloak.protocol.oidc package of Keycloak. The flaw exists in the token refresh logic including standard token exchange refresh flows where the server restores audience claims from the original session without checking the current status of the target audience client via ClientModel.isEnabled. An attacker with a valid refresh token obtained while a target audience client was enabled can continue to refresh that token even after an administrator has disabled the target client. Successful exploitation allows the attacker to obtain newly signed access tokens containing the disabled client in the aud claim. This enables the attacker to maintain unauthorized access to resource servers that perform offline JWT verification, effectively bypassing the administrative action intended to revoke access.
Affected Software
Event History
Frequently Asked Questions
Who is exposed to continued access after a client is disabled?
Resource servers that rely on offline JWT verification are affected because they may continue to accept newly refreshed access tokens that retain the disabled client in their aud claim.
What does an attacker need to exploit this issue?
The attacker needs a valid refresh token that was obtained while the target audience client was enabled. They can then use token refresh logic, including standard token-exchange refresh flows, after the administrator disables that client.
Does disabling the target client immediately prevent refreshed tokens from naming it as an audience?
No. The affected refresh logic restores audience claims from the original session without checking whether the target audience client is currently enabled.