Keycloaks's One Time Passcode (OTP) is valid longer than expiration timeSeverity
Moderate severity
GitHub Reviewed
Published
Oct 14, 2024
in
keycloak/keycloak
•
Updated Dec 20, 2024
Package
Affected versions
< 24.0.7
>= 25.0.0, < 25.0.4
Patched versions
24.0.7
25.0.4
Description
Published to the GitHub Advisory Database
Oct 14, 2024
Reviewed
Oct 14, 2024
Last updated
Dec 20, 2024
A vulnerability was found in Keycloak. Expired OTP codes are still usable when using FreeOTP when the OTP token period is set to 30 seconds (default). Instead of expiring and deemed unusable around 30 seconds in, the tokens are valid for an additional 30 seconds totaling 1 minute. A one time passcode that is valid longer than its expiration time increases the attack window for malicious actors to abuse the system and compromise accounts. Additionally, it increases the attack surface because at any given time, two OTPs are valid.
References