silverstripe/framework ChangePasswordForm does not check `Member::canLogIn()`
Moderate severity
GitHub Reviewed
Published
May 27, 2024
to the GitHub Advisory Database
•
Updated May 27, 2024
Package
Affected versions
>= 3.1.19-rc1, < 3.1.20
>= 3.2.4-rc1, < 3.2.5
>= 3.3.2-rc1, < 3.3.3
>= 3.4.0-rc1, < 3.4.1
Patched versions
3.1.20
3.2.5
3.3.3
3.4.1
Description
Published to the GitHub Advisory Database
May 27, 2024
Reviewed
May 27, 2024
Last updated
May 27, 2024
After performing a password reset,
ChangePasswordForm::doChangePassword()
logs in the user without checkingMember::canLogIn()
. This presents an issue for sites that are using the extension point in that method to deny access to users (for example members that have not been “approved”, or members that have had their access revoked temporarily). It looks likeMember::canLogIn()
was originally designed to only be used for checking whether the user is locked out (due to too many incorrect login attempts) but has been opened up to other uses.References