PHP security advisory

password_verify() accepts empty password for hashes starting with NUL

CVE-2024-3096Medium 6.5 Published password_verify()

Also known as: GHSA-h746-cjrr-wfmr

password_verify() returns true for an empty password when the stored hash begins with a NUL byte.

Affected versions

BranchAffectedFixed in
PHP 8.3< 8.3.68.3.6
PHP 8.2< 8.2.188.2.18
PHP 8.1< 8.1.288.1.28

Older branches: not assessed

Exploitation conditions

No special conditions are documented.

Remediation

Upgrade to 8.1.28, 8.2.18, 8.3.6 or a later release of your branch. If your branch is end-of-life, move to a supported branch. Distribution packages may carry a backported fix under an older version number; confirm with your vendor's security tracker.

A version number alone cannot prove patch status. Linux distributions and hosting providers often backport security fixes without changing the version. Check your vendor’s changelog.

Severity scores

CVSSSourceVector
6.5 v3.1NVDCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N

References

Data provenance

Secondary sources · pending primary verification

Last reviewed: Oct 24, 2026 · Source

Notes: The CVE description says "8.3.* before 8.3.5", but 8.3.5 was never released as a stable version; the fix shipped in 8.3.6.