Weak Password Requirements Affecting silverstripe/framework package, versions <4.13.14>=5.0.0, <5.0.13


Severity

Recommended
0.0
medium
0
10

CVSS assessment made by Snyk's Security Team. Learn more

Threat Intelligence

EPSS
0.04% (11th percentile)

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications
  • Snyk IDSNYK-PHP-SILVERSTRIPEFRAMEWORK-5811870
  • published1 Aug 2023
  • disclosed31 Jul 2023
  • creditSabina Talipova, Christian Bünte

Introduced: 31 Jul 2023

CVE-2023-32302  (opens in a new tab)
CWE-521  (opens in a new tab)

How to fix?

Upgrade silverstripe/framework to version 4.13.14, 5.0.13 or higher.

Overview

silverstripe/framework is a PHP framework forming the base for the SilverStripe CMS.

Affected versions of this package are vulnerable to Weak Password Requirements. When a new Member record is created in the cms it is possible to set a blank password. If an attacker knows the email address of the user with the blank password then they can attempt to log in using an empty password. The default member authenticator, login form and basic auth all require a non-empty password, however if a custom authentication method is used it may allow a successful login with the empty password.

IoCs:

To detect Member records that have empty passwords, users can loop over all Member records with Member::get() and pass each record into the below method. It might be sensible to create a BuildTask for this purpose.

  private function memberHasBlankPassword(Member $member): bool
  {
      // skip default admin as this is created programatically
      if ($member->isDefaultAdmin()) {
          return false;
      }
      // return true if a blank password is valid for this member
      $authenticator = new MemberAuthenticator();
      return $authenticator->checkPassword($member, '')->isValid();
  }

CVSS Scores

version 3.1