title: password_verify() always returns true for some invalid hashes
description: In PHP 8.0.X before 8.0.28, 8.1.X before 8.1.16 and 8.2.X before 8.2.3, password_verify() function may accept some invalid Blowfish hashes as valid. If such invalid hash ever ends up in the password database, it may lead to an application allowing any password for this entry as valid.
affected:
{
defaultStatus: affected
product: PHP
programRoutines:
name: password_verify
repo: https://github.com/php/php-src
vendor: PHP Group
versions:
lessThan: 8.0.28, status: affected, version: 8.0.x, versionType: semver
lessThan: 8.1.16, status: affected, version: 8.1.x, versionType: semver
lessThan: 8.2.3, status: affected, version: 8.2.x, versionType: semver
}
metrics:
cvssV3_1: [
attackComplexity: LOW
attackVector: LOCAL
availabilityImpact: NONE
baseScore: 7.7
baseSeverity: HIGH
confidentialityImpact: HIGH
integrityImpact: HIGH
privilegesRequired: NONE
scope: UNCHANGED
userInteraction: NONE
vectorString: CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
version: 3.1
]
format: CVSS
scenarios: GENERAL