keycloak-model-jpa is vulnerable to Authentication Bypass by Capture-replay
74
High Risk
keycloak-model-jpa records single use objects with an upsert and accepts the write as a first use when the database reports one affected row. On MySQL and MariaDB, the default driver reports a matched but unchanged row as one affected row, so putIfAbsent returns success for a key that is already stored. An attacker who intercepts a JWT client assertion, a DPoP proof, or a TOTP code can submit that artifact again at the token endpoint or login flow and obtain unauthorized access. The fix deletes expired rows and uses INSERT IGNORE on those databases so a reused key does not count as a new insert.
You are affected if you are using a version that falls within the vulnerable range and Keycloak runs in stateless mode with MySQL or MariaDB.
keycloak-model-jpa is vulnerable to Authentication Bypass by Capture-replay in versions 26.7.0 - 26.7.3.
Upgrade the org.keycloak:keycloak-model-jpa library to the patch version.
Connect your repositories to instantly see whether vulnerable or malicious packages exist in your codebase.
Free. No credit card required.

I consent to receiving marketing communications based on Aikido’s Privacy Policy.
SOC 2Compliant
ISO 27001Compliant
ISO 42001Compliant© All Intel data is openly available and commercially licensed.