GitHub Advisoryadvisory · Packagist

GHSA-p5h2-vr99-xm99 silverstripe/framework ChangePasswordForm does not check `Member::canLogIn()`

MEDIUM Published 2024-05-27 Modified 2024-05-27 Official page ↗
Ecosystem
Packagist
Packages
silverstripe/framework
Severity
Moderate
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N
Weaknesses
CWE-287
Reviewed
2024-05-27

Affected packages

• Packagist silverstripe/framework: >= 3.1.19-rc1, < 3.1.20 → fixed in 3.1.20 • Packagist silverstripe/framework: >= 3.2.4-rc1, < 3.2.5 → fixed in 3.2.5 • Packagist silverstripe/framework: >= 3.3.2-rc1, < 3.3.3 → fixed in 3.3.3 • Packagist silverstripe/framework: >= 3.4.0-rc1, < 3.4.1 → fixed in 3.4.1

Description

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.

Related

Weakness · CWE (1)

  • CWE-287 Improper Authentication weakness

References