CVE-2025-14559

6.5 MEDIUM

📋 TL;DR

This vulnerability in Keycloak's token exchange flow allows disabled users to obtain valid access and refresh tokens, enabling unauthorized access to resources. It affects Keycloak deployments where token exchange is used by privileged clients. Organizations using Keycloak for identity and access management are impacted.

💻 Affected Systems

Products:
  • Keycloak
Versions: Keycloak 25.x and earlier versions with token exchange functionality
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects deployments using token exchange flows with privileged clients. Standard OAuth2/OIDC flows are not affected.

⚠️ Manual Verification Required

This CVE does not have specific version information in our database, so automatic vulnerability detection cannot determine if your system is affected.

Why? The CVE database entry doesn't specify which versions are vulnerable (no version ranges provided by the vendor/NVD).

🔒 Custom verification scripts are available for registered users. Sign up free to download automated test scripts.

Recommended Actions:
  1. Review the CVE details at NVD
  2. Check vendor security advisories for your specific version
  3. Test if the vulnerability is exploitable in your environment
  4. Consider updating to the latest version as a precaution

⚠️ Risk & Real-World Impact

🔴

Worst Case

Disabled users with previously revoked privileges regain access to sensitive systems and data, potentially leading to data breaches or privilege escalation attacks.

🟠

Likely Case

Disabled users can access applications and services they should no longer have permission to use, violating access control policies.

🟢

If Mitigated

With proper monitoring and least-privilege client configurations, impact is limited to temporary unauthorized access that can be detected and revoked.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: HIGH

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: MEDIUM

Requires a privileged client with token exchange permissions and knowledge of disabled user accounts.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Keycloak 25.0.2 or later

Vendor Advisory: https://access.redhat.com/security/cve/CVE-2025-14559

Restart Required: Yes

Instructions:

1. Backup your Keycloak configuration and database. 2. Download Keycloak 25.0.2 or later from the official website. 3. Stop the Keycloak service. 4. Replace the installation with the patched version. 5. Start the Keycloak service. 6. Verify the fix by testing token exchange with disabled users.

🔧 Temporary Workarounds

Disable Token Exchange

all

Temporarily disable token exchange functionality if not required

Update Keycloak realm settings to remove token exchange permissions from clients

Restrict Privileged Clients

all

Review and limit which clients have token exchange permissions

Audit client configurations and remove token exchange scope from unnecessary clients

🧯 If You Can't Patch

  • Implement additional authentication checks in downstream applications to verify user status
  • Increase monitoring of token exchange events and disabled user account activity

🔍 How to Verify

Check if Vulnerable:

Test token exchange flow with a disabled user account using a privileged client - if tokens are issued, the system is vulnerable.

Check Version:

Check Keycloak admin console or run: java -jar keycloak-*.jar --version

Verify Fix Applied:

After patching, repeat the vulnerable test - disabled users should receive error responses instead of valid tokens.

📡 Detection & Monitoring

Log Indicators:

  • Token exchange requests for disabled users
  • Unexpected token issuance events
  • Authentication events from disabled user accounts

Network Indicators:

  • Token exchange API calls to /realms/{realm}/protocol/openid-connect/token with disabled user identifiers

SIEM Query:

source="keycloak" AND (event_type="TOKEN_EXCHANGE" OR message="*token exchange*") AND user_status="disabled"

🔗 References

📤 Share & Export