CVE-2024-3096 json
PHP function password_verify can erroneously return true when argument contains NUL
published 2024-04-11 2 y ago modified 2026-09-08 2 mo ago also BIT-libphp-2024-3096 , BIT-php-2024-3096 , BIT-php-min-2024-3096 , EUVD-2024-31701 , GHSA-h746-cjrr-wfmr
- cvss
- 6.5
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 1.5%
- EPSS 1.5% chance of exploitation in 30 days, percentile 74%
- public exploits
- 0
- none known
Summary
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.
Patch / fix
- bitnami libphp 8.1.28, 8.2.18, 8.3.5
- bitnami php 8.1.28, 8.2.18, 8.3.5
- bitnami php-min 8.1.28, 8.2.18, 8.3.5
- PHP Group PHP 8.1.28, 8.2.18, 8.3.5
- php8.2 Debian 12 8.2.18-1~deb12u1
debian advisories DEBIAN-CVE-2024-3096
- php7.4 Ubuntu 20.04 LTS 7.4.3-4ubuntu2.22
- php8.1 Ubuntu 22.04 LTS 8.1.2-1ubuntu2.17
- php8.3 Ubuntu 24.04 LTS 8.3.6-0maysync1
- php7.0 Ubuntu Pro 16.04 LTS 7.0.33-0ubuntu0.16.04.16+esm9
- php7.2 Ubuntu Pro 18.04 LTS 7.2.24-0ubuntu0.18.04.17+esm3
ubuntu advisories UBUNTU-CVE-2024-3096
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- php RHEL 9 8.0.30-2.el9
- php-gd RHEL 9 8.0.30-2.el9
- php-cli RHEL 9 8.0.30-2.el9
- php-dba RHEL 9 8.0.30-2.el9
- php-dbg RHEL 9 8.0.30-2.el9
- php-ffi RHEL 9 8.0.30-2.el9
- php-fpm RHEL 9 8.0.30-2.el9
- php-gmp RHEL 9 8.0.30-2.el9
red hat advisories RHSA-2025:7315RHSA-2024:10951RHSA-2024:10952RHSA-2024:10950RHSA-2024:10949
- php7 SLES for SAP 15 SP3, SLES for SAP 15 SP2, SLES 15 SP3-LTSS +4 more 7.4.33-150200.3.65.1
- php8 SLE Module for Web and Scripting 15 SP5, openSUSE Leap 15.5 8.0.30-150400.4.40.1
- php8-fpm SLE Module for Web and Scripting 15 SP5, openSUSE Leap 15.5 8.0.30-150400.4.40.1
- php8-test SLE Module for Web and Scripting 15 SP5, openSUSE Leap 15.5 8.0.30-150400.4.40.1
- php8-embed SLE Module for Web and Scripting 15 SP5, openSUSE Leap 15.5 8.0.30-150400.4.40.1
- php8-fastcgi SLE Module for Web and Scripting 15 SP5, openSUSE Leap 15.5 8.0.30-150400.4.40.1
- apache2-mod_php8 SLE Module for Web and Scripting 15 SP5, openSUSE Leap 15.5 8.0.30-150400.4.40.1
- php74 SLE Software Development Kit 12 SP5, SLE Module for Web and Scripting 12 7.4.33-1.65.1
suse advisories SUSE-SU-2024:2037-1SUSE-SU-2024:1446-1SUSE-SU-2024:1445-1SUSE-SU-2024:1444-1
- php8 openSUSE Tumbleweed 8.3.6-1.1
opensuse advisories openSUSE-SU-2024:13867-1
- php AlmaLinux 9 8.2.25-1.module_el9.5.0+132+adb0ae7a
- php-gd AlmaLinux 9 8.2.25-1.module_el9.5.0+132+adb0ae7a
- php-cli AlmaLinux 9 8.2.25-1.module_el9.5.0+132+adb0ae7a
- php-dba AlmaLinux 9 8.2.25-1.module_el9.5.0+132+adb0ae7a
- php-dbg AlmaLinux 9 8.2.25-1.module_el9.5.0+132+adb0ae7a
- php-ffi AlmaLinux 9 8.2.25-1.module_el9.5.0+132+adb0ae7a
- php-fpm AlmaLinux 9 8.2.25-1.module_el9.5.0+132+adb0ae7a
- php-gmp AlmaLinux 9 8.2.25-1.module_el9.5.0+132+adb0ae7a
almalinux advisories ALSA-2024:10949ALSA-2024:10950ALSA-2024:10951ALSA-2024:10952
- php-pecl-rrd Rocky Linux 9 2.0.3-4.module+el9.6.0+32040+1f1dedb8
- php-pecl-rrd Rocky Linux 9 2.0.3-4.module+el9.6.0+32041+66e66fb7
- php-pecl-rrd Rocky Linux 9 2.0.3-4.module+el9.6.0+32042+808943ae
- php-pecl-zip Rocky Linux 9 1.22.3-1.module+el9.6.0+32041+66e66fb7
- php-pecl-zip Rocky Linux 9 1.22.3-1.module+el9.6.0+32042+808943ae
- php-pecl-apcu Rocky Linux 9 5.1.23-1.module+el9.6.0+32041+66e66fb7
- php-pecl-apcu Rocky Linux 9 5.1.23-1.module+el9.6.0+32042+808943ae
- php-pecl-xdebug3 Rocky Linux 9 3.2.2-2.module+el9.6.0+32041+66e66fb7
rocky linux advisories RLSA-2024:10949RLSA-2024:10950RLSA-2024:10951RLSA-2024:10952
- php81 Alpine 3.19 8.1.28-r0
- php82 Alpine 3.22, Alpine 3.21, Alpine 3.20 +1 more 8.2.18-r0
- php83 Alpine 3.19 8.3.6-r0
- php83 Alpine 3.24, Alpine 3.23, Alpine 3.22 +2 more 8.3.5-r0
alpine advisories ALPINE-CVE-2024-3096
Alpine secdb © Alpine Linux, from https://secdb.alpinelinux.org via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- php Azure Linux 3.0 8.3.6-1
- php CBL-Mariner 2.0 8.1.28-1
azure linux advisories AZL-40061AZL-40068
Azure Linux vulnerability data, Copyright (c) Microsoft Corporation, from https://github.com/microsoft/AzureLinuxVulnerabilityData via OSV, under the MIT licence; changed: normalised to fixed package versions per release. MIT
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2024-3096 updated cvss 4.8
php: password_verify can erroneously return true, opening ATO risk
-
Red Hat Enterprise Linux 6 php, php-gd, php-cli, php-dba, php-fpm, php-pdo, +20 more Red Hat Enterprise Linux 7 php, php-gd, php-cli, php-dba, php-fpm, php-pdo, +18 moreaffected: workaround, no fix planned “Out of support scope”
-
Red Hat Enterprise Linux 8 php, libzip, php-gd, php-cli, php-dba, php-dbg, +30 moreaffected: workaround, no fix available “Fix deferred”
-
Red Hat Enterprise Linux AppStream (v. 8) php 7.4.33-2.module+el8.10.0+22485+a3539972, php 8.2.25-1.module+el8.10.0+22478+9eb07224, libzip 1.6.1-1.module+el8.10.0+22485+a3539972, libzip 1.7.3-1.module+el8.10.0+20770+a5eca186, php-gd 7.4.33-2.module+el8.10.0+22485+a3539972, php-gd 8.2.25-1.module+el8.10.0+22478+9eb07224, +60 morefixed: vendor fix RHSA-2024:10952
-
Red Hat Enterprise Linux AppStream (v. 9) php 8.0.30-2.el9, php-gd 8.0.30-2.el9, php-cli 8.0.30-2.el9, php-dba 8.0.30-2.el9, php-dbg 8.0.30-2.el9, php-ffi 8.0.30-2.el9, +76 morefixed: vendor fix RHSA-2024:10950
-
Red Hat Enterprise Linux 10 phpnot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- total
- Assessed
- 2 y ago
Exploit prediction
1.49% chance of exploitation in the next 30 days, higher than 74% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/php/php-src/security/advisories/GHSA-h746-cjrr-wfmr referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 6.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N |
| OSV | 3.1 | 6.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| bitnami | libphp | <8.1.28 >=8.2.0, <8.2.18 >=8.3.0, <8.3.5 |
8.1.28 8.2.18 8.3.5 |
| bitnami | php | <8.1.28 >=8.2.0, <8.2.18 >=8.3.0, <8.3.5 |
8.1.28 8.2.18 8.3.5 |
| bitnami | php-min | <8.1.28 >=8.2.0, <8.2.18 >=8.3.0, <8.3.5 |
8.1.28 8.2.18 8.3.5 |
Affected products
- PHP Group PHP
- php_group php
Classification
- Weakness
-
- CWE-20 Improper Input Validation
- Technology feeds
References
-
github.com
/php/php-src/security/advisories/GHSA-h746-cjrr-wfmr
exploit, vendor-advisory, advisory
-
openwall.com
/lists/oss-security/2024/04/12/11
mailing-list, discussion
-
lists.debian.org
/debian-lts-announce/2024/05/msg00005.html
mailing-list, discussion
-
security.netapp.com
/advisory/ntap-20240510-0010/
third-party-advisory, advisory
-
lists.fedoraproject.org
/archives/list/package-announce@lists.fedoraproject.org/message/ZGWIK3HMBACERGB4TSBB2JUOMPYY2VKY/
web
-
lists.fedoraproject.org
/archives/list/package-announce@lists.fedoraproject.org/message/KJZK3X6B7FBE32FETDSMRLJXTFTHKWSY/
web
-
nvd.nist.gov
/vuln/detail/CVE-2024-3096
web
Sources
- CVE List CVE-2024-3096
- NVD CVE-2024-3096
- OSV BIT-libphp-2024-3096
- OSV BIT-php-2024-3096
- OSV BIT-php-min-2024-3096
- Maintainer advisory GHSA-h746-cjrr-wfmr
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
The maintainers of php/php-src published their own advisory on GitHub. Reviewed sources take precedence over it.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.