CVE-2026-9705: Keycloak Client Re-Enablement Vulnerability (CVSS 6.5)
Keycloak's client registration system contains a flaw that allows an attacker who holds an old Registration Access Token (RAT) to re-enable a client application that an administrator has intentionally disabled. Once re-enabled, the attacker can reset the client's secret, potentially regaining access to sensitive APIs and data. This vulnerability undermines administrator control over client lifecycle management and creates a window for unauthorized access.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 6.5 MEDIUM · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
- Weaknesses (CWE)
- CWE-613
- Affected products
- 1 configuration(s)
- Published / Modified
- 2026-06-25 / 2026-07-01
NVD description (verbatim)
A flaw was found in Keycloak's client registration service. A remote attacker, possessing a previously issued Registration Access Token (RAT), could exploit this vulnerability to re-enable a client that an administrator had explicitly disabled. This bypasses security controls, allowing the attacker to reset the client's secret and potentially regain privileged API access. The primary impact includes unauthorized information disclosure and potential integrity compromise.
6 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
The vulnerability exists in Keycloak's client registration service and stems from insufficient validation of client state during token-based operations. An attacker in possession of a previously issued RAT can invoke registration endpoints to change the client's enabled/disabled status, bypassing the administrative action that revoked the client. The flaw is rooted in improper access control logic (CWE-613) where the service fails to enforce that disabled clients cannot be modified via legacy tokens. Upon re-enablement, the attacker can generate new credentials, effectively resetting the client secret and restoring API access without requiring fresh authorization.
Business impact
This vulnerability creates a persistent backdoor risk for organizations running Keycloak in environments where clients are disabled as a revocation mechanism. If an attacker obtains a stale RAT—through credential leakage, insecure storage, or supply-chain compromise—they can resurrect disabled OAuth 2.0/OpenID Connect clients and pivot to backend APIs or user data. The impact is particularly severe for enterprises using Keycloak as a central identity provider across microservices, as a compromised client could grant access to multiple downstream systems. Integrity of identity governance is compromised, potentially enabling privilege escalation or lateral movement.
Affected systems
Red Hat build of Keycloak is explicitly affected. Organizations running any version of Keycloak (the upstream open-source project that Red Hat packages) should assess their exposure. The vulnerability requires that an attacker has previously obtained a valid RAT, which is typically issued during client registration workflows. Environments where clients are routinely disabled rather than deleted, and where RAT rotation is not enforced, face elevated risk.
Exploitability
Exploitation is straightforward once a RAT is obtained; no authentication, user interaction, or complex configuration is required. The attack is network-accessible and requires only the ability to reach the Keycloak registration endpoint and possess a previously issued token. The CVSS vector (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N) reflects low attack complexity and no authentication barrier. However, the attack depends on prior compromise or leakage of a RAT, which somewhat constrains real-world opportunistic exploitation. Targeted attacks against known or suspected Keycloak deployments remain feasible.
Remediation
Apply vendor security patches immediately upon availability. In the interim, organizations should audit Keycloak audit logs for re-enablement of disabled clients and review all disabled clients to identify unexpected state changes. Implement strict RAT lifecycle management: enforce expiration windows, rotate tokens regularly, and revoke tokens upon client lifecycle events (disable or delete). Where possible, prefer client deletion over disabling to eliminate the attack surface. Monitor client state changes in real-time and correlate them with authentication and API access logs. Segregate Keycloak administrative interfaces behind network controls and multi-factor authentication.
Patch guidance
Consult Red Hat's security advisory for Red Hat build of Keycloak for the specific fixed version. Apply patches in a staged rollout to non-production Keycloak instances first, verifying that existing client integrations remain functional and that no new client state anomalies appear. Ensure that all Keycloak instances in your deployment (including replicas and disaster-recovery nodes) are patched synchronously. Post-patch, review and reset the secrets of any clients that were disabled during the vulnerability window to eliminate residual risk from exposed credentials.
Detection guidance
Monitor Keycloak's event logs and audit trail for client state transitions, particularly re-enablement events. Alert on any client moving from disabled to enabled status, especially if triggered by a registration endpoint invocation rather than direct administrator action. Cross-reference client re-enablement timestamps with user authentication logs and API access patterns to identify suspicious activity. Implement network-level monitoring to detect multiple consecutive client registration API calls from the same source, which may indicate token enumeration or replay attacks. Use Keycloak's built-in metrics and logging to track RAT issuance and usage patterns; flag any RAT usage after the token's expected expiration or after client disablement.
Why prioritize this
Although the CVSS score is MEDIUM (6.5), the vulnerability is prioritized for urgent remediation because it enables persistent, post-compromise persistence. An attacker who has already breached an organization can weaponize a captured RAT to regain access even after the initial compromise vector is closed. The attack bypasses administrative controls, which is a control-plane integrity issue and a violation of the principle of least privilege. For organizations relying on Keycloak as a centralized identity fabric, this vulnerability could unlock access to a broad attack surface spanning multiple applications and services.
Risk score, explained
The CVSS 3.1 score of 6.5 (MEDIUM) reflects the network-accessible attack vector and low complexity, but is moderated by the requirement that an attacker must already possess a valid RAT. The scoring does not fully capture the control-plane bypass and post-compromise persistence aspects, which elevate real-world risk. In contexts where RATs are long-lived or stored insecurely, the practical risk is substantially higher. Security leaders should treat this as a HIGH priority for Keycloak deployments in production identity governance roles.
Frequently asked questions
Can this be exploited without a previously issued Registration Access Token?
No. The attacker must possess a valid RAT that was issued during the client's registration phase. However, RATs may be leaked through code repositories, configuration files, logs, or supply-chain compromises, making historical tokens a persistent attack vector.
Does this affect only Red Hat's distribution of Keycloak, or upstream Keycloak as well?
The vulnerability is in Keycloak's core client registration service logic. Red Hat build of Keycloak is explicitly affected. Organizations running upstream Keycloak should verify the affected version ranges in the vendor advisory and apply the upstream patch accordingly.
If we delete disabled clients instead of leaving them disabled, are we protected?
Yes, deletion removes the attack surface entirely. However, many organizations disable clients to preserve audit history or to support temporary revocation workflows. If you use disabling as a revocation mechanism, this vulnerability is critical and requires immediate patching.
What should we do if we find evidence of client re-enablement in our logs?
Treat it as a security incident: isolate and audit the re-enabled client's activity, force secret rotation on all potentially affected clients, review API logs for unauthorized access patterns, and determine how the RAT was compromised. Escalate to your identity and access management team and inform business stakeholders of any downstream systems that may have been affected.
This analysis is based on published vulnerability data current as of the source date. Specific version numbers, patch availability, and impact may vary by deployment. Organizations should verify compatibility and test patches in non-production environments before broad deployment. This document does not constitute legal, compliance, or professional security advice. Consult your vendor's official security advisories and engage qualified security personnel for incident response and patching decisions. Source: NVD (public-domain), retrieved 2026-08-03. Analysis generated by SEC.co (claude-haiku-4-5).
Related vulnerabilities
- CVE-2026-9802MEDIUMKeycloak Refresh Token Replay After Revocation
- CVE-2026-12772MEDIUMSession Expiration Flaw in BerriAI litellm Proxy Authentication
- CVE-2026-12796MEDIUMlitellm SSO Session Expiration Vulnerability (CVSS 6.3)
- CVE-2026-44188MEDIUMAnsible Lightspeed Session Hijacking via Token Non-Revocation
- CVE-2026-48726MEDIUMApache Airflow JWT Token Revocation Bypass in FAB and Keycloak Logout
- CVE-2026-52809MEDIUMGogs Password-Reset Token Lifetime Bypass (v0.14.3 Fix)
- CVE-2026-53824MEDIUMOpenClaw Token Revocation Bypass (CVSS 6.5)
- CVE-2026-53830MEDIUMOpenClaw Webhook Secret Revocation Bypass (CVSS 6.5)