Skip to content

CWE-645: Overly Restrictive Account Lockout Mechanism

BaseLikelihood of exploit: High

The product contains an account lockout protection mechanism, but the mechanism is too restrictive and can be triggered too easily, which allows attackers to deny service to legitimate users by causing their accounts to be locked out.

Account lockout is a security feature often present in applications as a countermeasure to the brute force attack on the password based authentication mechanism of the system. After a certain number of failed login attempts, the users' account may be disabled for a certain period of time or until it is unlocked by an administrator. Other security events may also possibly trigger account lockout. However, an attacker may use this very security feature to deny service to legitimate system users. It is therefore important to ensure that the account lockout security mechanism is not overly restrictive.

Consequences

  • Availability: DoS: Resource Consumption (Other)

How to prevent it

  • Architecture and Design: Implement more intelligent password throttling mechanisms such as those which take IP address into account, in addition to the login name.
  • Architecture and Design: Implement a lockout timeout that grows as the number of incorrect login attempts goes up, eventually resulting in a complete lockout.
  • Architecture and Design: Consider alternatives to account lockout that would still be effective against password brute force attacks, such as presenting the user machine with a puzzle to solve (makes it do some computation).

Recent advisories

  • GHSA-v5gf-vpjc-pc7w — Payload: Unauthenticated account-lockout denial of service
  • GO-2025-3692 — Mattermost Fails to Lockout LDAP Users After Repeated Login Failures
  • GHSA-cq42-vhv7-xr7p — Keycloak Denial of Service via account lockout
  • CVE-2023-4346 — KNX devices that use KNX Connection Authorization and support Option 1 are, depending on the implementation, vulnerable to being locked and users being unable…

All advisories for CWE-645

Is this in your code?

MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.

Check your repos with MergeHarbor