CVE-2026-90997

Keycloak-services: keycloak: replay protection bypass leads to unauthorized access via database driver semantics mismatch

Published Sep 17, 2026 CVSS 3.1 · 7.4 High EPSS < 1% KEV · Not listed
Description
A flaw was found in Keycloak. When deployed in stateless mode with MySQL or MariaDB, a mismatch in row-count semantics between the database driver and Keycloak's application logic allows an attacker to bypass replay protection. This vulnerability enables an attacker who intercepts single-use security artifacts, such as JWT client assertions, DPoP proofs, or one-time password (TOTP) codes, to replay them. Successful exploitation grants unauthorized access to the token endpoint or login flow.

Remediation

Vendor Workaround

To mitigate this issue, configure the JDBC connection string for MySQL/MariaDB to explicitly set `useAffectedRows=true`. This ensures the database driver correctly reports affected rows, preventing the replay protection bypass. This mitigation is applicable only when Keycloak is deployed in stateless mode and utilizes MySQL or MariaDB as its database. A restart of the Keycloak service will be required for the configuration change to take effect.

Tracking

Sign in to view the affected projects.

Advisories

No advisories available
History
Type Values Removed Values Added
Title Keycloak: Replay protection bypass leads to unauthorized access via database driver semantics mismatch Keycloak-services: keycloak: replay protection bypass leads to unauthorized access via database driver semantics mismatch
First Time appeared Redhat
Redhat build Keycloak
CPEs cpe:/a:redhat:build_keycloak:
Vendors & Products Redhat
Redhat build Keycloak
References
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}

Type Values Removed Values Added
First Time appeared Keycloak
Keycloak keycloak
Vendors & Products Keycloak
Keycloak keycloak
Type Values Removed Values Added
Title keycloak-services: Keycloak: Replay protection bypass leads to unauthorized access via database driver semantics mismatch Keycloak: Replay protection bypass leads to unauthorized access via database driver semantics mismatch
References
Type Values Removed Values Added
Description A flaw was found in Keycloak. When deployed in stateless mode with MySQL or MariaDB, a mismatch in row-count semantics between the database driver and Keycloak's application logic allows an attacker to bypass replay protection. This vulnerability enables an attacker who intercepts single-use security artifacts, such as JWT client assertions, DPoP proofs, or one-time password (TOTP) codes, to replay them. Successful exploitation grants unauthorized access to the token endpoint or login flow.
Title keycloak-services: Keycloak: Replay protection bypass leads to unauthorized access via database driver semantics mismatch
Weaknesses CWE-294
References
Metrics threat_severity

None

cvssV3_1

{'score': 7.4, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N'}

threat_severity

Important

Weaknesses

Sources

Status
PUBLISHED
Assigner
redhat
Published
Updated
Sep 25, 2026, 6:42 AM
Reserved
Sep 14, 2026, 2:53 PM
Status
Awaiting Analysis
Published
Sep 17, 2026, 7:17 PM
Modified
Sep 22, 2026, 7:16 PM
Severity
Important
Public date
Sep 16, 2026, 2:21 PM