VDB
Sign up
MEDIUM

GHSA-2cjv-6wg9-f4f3

Strapi Password Hashing is Missing Maximum Password Length Validation

Quick fix

GHSA-2cjv-6wg9-f4f3 — @strapi/core: upgrade to the fixed version with the command below.

npm install @strapi/core@5.10.3

Details

## Summary

Strapi's password hashing implementation using bcryptjs lacks maximum password length validation. Since bcryptjs truncates passwords exceeding 72 bytes, this creates potential vulnerabilities such as authentication bypass and performance degradation.

## POC Create an admin user with a password exceeding 72 characters like 85, Log in using only the first 72 characters of the password. Authentication is successful, confirming the issue.

Proposed Solution Based on discussions:

Add a maximum password length validation (72 characters) during password creation and updates for both Admin and U&P users. Truncate passwords exceeding 72 bytes on the server before passing them to bcryptjs during login. Optionally, issue a warning to users with passwords longer than 72 bytes during login, informing them of truncation.

## Impact This issue affects all Strapi installations using bcryptjs for password hashing. Until resolved, it can lead to: Authentication Bypass: Users may unknowingly set passwords exceeding 72 bytes, leading to truncated, predictable hashes. Performance Issues: Excessively long passwords can degrade server performance.

Are you affected?

Enter the version of the package you're using.

Affected packages

npm/@strapi/core
Introduced in: 0Fixed in: 5.10.3
Fixnpm install @strapi/core@5.10.3

References