Every CVESearch/Get API key

GHSA-p5h2-vr99-xm99

silverstripe/framework ChangePasswordForm does not check `Member::canLogIn()`

4.3 MediumFix available

After performing a password reset, ChangePasswordForm::doChangePassword() logs in the user without checking Member::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 like Member::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.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
Low
User interaction
None

What an attacker can affect

Confidentiality
None
Integrity
Low
Availability
None

What each source reports

GitHub Advisories Score used4.3

silverstripe/framework ChangePasswordForm does not check `Member::canLogIn()`

After performing a password reset, ChangePasswordForm::doChangePassword() logs in the user without checking Member::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 like Member::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.

Record
GHSA-p5h2-vr99-xm99
CVSS 3.1
4.3 MediumCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N
Weakness
CWE-287
Updated
2026-11-02
OSV4.3

silverstripe/framework ChangePasswordForm does not check `Member::canLogIn()`

After performing a password reset, ChangePasswordForm::doChangePassword() logs in the user without checking Member::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 like Member::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.

Record
GHSA-p5h2-vr99-xm99
CVSS 3.1
4.3 MediumCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N
Weakness
CWE-287
Updated
2026-11-02

Affected packages

Affected packages
PackageAffectedFixed
silverstripe/framework
Packagist
3.1.19-rc1 up to 3.1.20
3.1.20
silverstripe/framework
Packagist
3.2.4-rc1 up to 3.2.5
3.2.5
silverstripe/framework
Packagist
3.3.2-rc1 up to 3.3.3
3.3.3
silverstripe/framework
Packagist
3.4.0-rc1 up to 3.4.1
3.4.1
silverstripe/framework
Packagist
3.1.19-rc1 up to 3.1.20, plus listed versions
3.1.193.1.20-rc13.1.20-rc2
3.1.20
silverstripe/framework
Packagist
3.2.4-rc1 up to 3.2.5, plus listed versions
3.2.43.2.5-rc13.2.5-rc2
3.2.5
silverstripe/framework
Packagist
3.3.2-rc1 up to 3.3.3, plus listed versions
3.3.23.3.3-rc13.3.3-rc2
3.3.3
silverstripe/framework
Packagist
3.4.0-rc1 up to 3.4.1, plus listed versions
3.4.03.4.1-rc13.4.1-rc2
3.4.1

History

History
RecordedChangedSources
first indexedGitHub Advisories, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

GHSA-p5h2-vr99-xm99 is a medium vulnerability (CVSS 4.3) in silverstripe/framework, published May 27, 2024. No source lists public exploit code. Fixed in silverstripe/framework 3.1.20.

References

MoveEnter Open