CVE-2024-3096

PHP function password_verify can erroneously return true when argument contains NUL

Description

In PHP  version 8.1.* before 8.1.28, 8.2.* before 8.2.18, 8.3.* before 8.3.5, if a password stored with password_hash() starts with a null byte (\x00), testing a blank string as the password via password_verify() will incorrectly return true.

Remediation

Workaround:

  • Pre-filter potential password strings to ensure they do not contain NUL bytes.

Category

6.5
CVSS
Severity: Medium
CVSS 3.1 •
EPSS 0.06%
Affected: PHP Group PHP
Published at:
Updated at:

References

Frequently Asked Questions

What is the severity of CVE-2024-3096?
CVE-2024-3096 has been scored as a medium severity vulnerability.
How to fix CVE-2024-3096?
As a workaround for remediating CVE-2024-3096: Pre-filter potential password strings to ensure they do not contain NUL bytes.
Is CVE-2024-3096 being actively exploited in the wild?
As for now, there are no information to confirm that CVE-2024-3096 is being actively exploited. According to its EPSS score, there is a ~0% probability that this vulnerability will be exploited by malicious actors in the next 30 days.
What software or system is affected by CVE-2024-3096?
CVE-2024-3096 affects PHP Group PHP.
This platform uses data from the NIST NVD, MITRE CVE, MITRE CWE, First.org and CISA KEV but is not endorsed or certified by these entities. CVE is a registred trademark of the MITRE Corporation and the authoritative source of CVE content is MITRE's CVE web site. CWE is a registred trademark of the MITRE Corporation and the authoritative source of CWE content is MITRE's CWE web site.
© 2025 Under My Watch. All Rights Reserved.