django-allauth before 65.19.4 does not have the expected limits on failed login attempts because, in some common configurations, an attacker can leverage the handling of diacritics (e.g., accents) for a higher effective limit.
- Any of the following settings is enabled in Django configuration.
65.4 and later:
ACCOUNT_LOGIN_METHODS = {"username", "email"}
ACCOUNT_LOGIN_METHODS = {"username"}
65.3 and earlier:
ACCOUNT_AUTHENTICATION_METHOD = "username_email"
ACCOUNT_AUTHENTICATION_METHOD = "username"
- The username column in the database uses a collation such as utf8mb4_general_ci or utf8mb4_unicode_ci.
The vulnerability is NOT exposed if any of the following settings is enabled.
65.4 and later:
ACCOUNT_LOGIN_METHODS = {"email"}
65.3 and earlier:
ACCOUNT_AUTHENTICATION_METHOD = "email"
Upgrade django-allauth to version 65.19.4 (latest).