CVE-2026-93999: Keycloak-services: keycloak-services: token refresh continues issuing tokens for disabled audience clients

Published Sep 19, 2026
·
Updated

A flaw was found in the OIDC protocol implementation of Keycloak, an open-source identity and access management solution. The issue occurs during the token refresh process when the server restores requested audiences from stored client IDs. Keycloak fails to verify if the target audience client is still enabled before issuing a new access token. This allows an application with an existing refresh token to continue obtaining valid access tokens for a disabled client, potentially bypassing administrative access controls for resource servers that rely on offline JWT validation.

Other sources

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.

Red Hat

Affected Software

2 affected components
org.keycloak.protocol.oidc
Keycloak Keycloak OIDC protocol implementation

Event History

Sep 19, 2026
Data Sourced
via Red Hat·02:00 PM
DescriptionSeverityAffected Software
CVE Published
via MITRE·02:09 PM
Data Sourced
via MITRE·02:09 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Who is exposed to this issue?

Keycloak deployments are exposed where a previously enabled audience client is later disabled, and an application still holds a refresh token issued while that audience client was enabled. Resource servers that rely on offline JWT validation are specifically at risk of accepting the newly issued tokens.

2

What does an attacker need to exploit it?

The attacker needs a valid refresh token obtained while the target audience client was enabled. Exploitation occurs through token refresh, including standard token-exchange refresh flows, after the administrator disables that audience client.

3

Does disabling the audience client stop token refresh from issuing tokens for it?

No. The affected refresh logic restores requested audiences from stored client IDs without checking whether the target audience client is currently enabled, so it can continue issuing newly signed access tokens.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203