Release Information
- Release Type
- Security Update
- Release Status
- Latest
- Branch Status
- Supported (Latest)
Latest PHP release in the latest version. This release contains security fixes, and it is recommended to update as soon as possible.
PHP 8.4 continues to receive bug fixes and security fixes until 2026-12-31.
Downloads
Source Code
git clone https://github.com/php/php-src.git --depth 1 --branch php-8.4.3
./buildconf
), configuring the build ./configure
, and running make
.Detailed articles on how to compile PHP are available for Ubuntu/Debian based systems and Fedora/RHEL based systems.
Windows binaries
Docker/Podman Containers
docker pull php:8.4.3-cli-alpine
docker pull php:8.4.3-cli
docker pull php:8.4.3-fpm-alpine
docker pull php:8.4.3-apache
docker pull php:8.4.3-fpm
ChangeLog
BcMath
- Fixed bug GH-17049 (Correctly compare 0 and -0).
- Fixed bug GH-17061 (Now
Number::round()
does not remove trailing zeros). - Fixed bug GH-17064 (Correctly round rounding mode with zero edge case).
- Fixed bug GH-17275 (Fixed the calculation logic of dividend scale).
Core
- Fixed bug OSS-Fuzz #382922236 (Duplicate dynamic properties in hooked object iterator properties table).
- Fixed unstable get_iterator pointer for hooked classes in shm on Windows.
- Fixed bug GH-17106 (
ZEND_MATCH_ERROR
misoptimization). - Fixed bug GH-17162 (
zend_array_try_init()
with dtor can cause engine UAF). - Fixed bug GH-17101 (AST->string does not reproduce constructor property promotion correctly).
- Fixed bug GH-17200 (Incorrect dynamic prop offset in hooked prop iterator).
- Fixed bug GH-17216 (Trampoline crash on error).
DBA
- Skip test if inifile is disabled.
DOM
- Fixed bug GH-17145 (DOM memory leak).
- Fixed bug GH-17201 (Dom\TokenList issues with interned string replace).
- Fixed bug GH-17224 (UAF in importNode).
Embed
- Make build command for program using embed portable.
FFI
- Fixed bug #79075 (FFI header parser chokes on comments).
- Fix memory leak on
ZEND_FFI_TYPE_CHAR
conversion failure. - Fixed bug GH-16013 and bug #80857 (Big endian issues).
Fileinfo
- Fixed bug GH-17039 (PHP 8.4: Incorrect MIME content type).
FPM
- Fixed bug GH-13437 (FPM: ERROR: scoreboard: failed to lock (already locked)).
- Fixed bug GH-17112 (Macro redefinitions).
- Fixed bug GH-17208 (
bug64539-status-json-encoding.phpt
fail on 32-bits).
GD
- Fixed bug GH-16255 (Unexpected nan value in ext/gd/libgd/gd_filter.c).
- Ported fix for libgd bug 276 (Sometimes pixels are missing when storing images as BMPs).
Gettext
- Fixed bug GH-17202 (Segmentation fault ext/gettext/gettext.c
bindtextdomain()
).
Iconv
- Fixed bug GH-17047 (UAF on iconv filter failure).
LDAP
- Fixed bug GH-17280 (
ldap_search()
fails when $attributes array has holes).
LibXML
- Fixed bug GH-17223 (Memory leak in libxml encoding handling).
MBString
- Fixed bug GH-17112 (Macro redefinitions).
Opcache
opcache_get_configuration()
properly reports jit_prof_threshold.- Fixed bug GH-17140 (Assertion failure in JIT trace exit with
ZEND_FETCH_DIM_FUNC_ARG
). - Fixed bug GH-17151 (Incorrect RC inference of op1 of FETCH_OBJ and INIT_METHOD_CALL).
- Fixed bug GH-17246 (GC during SCCP causes segfault).
- Fixed bug GH-17257 (UBSAN warning in ext/opcache/jit/zend_jit_vm_helpers.c).
PCNTL
- Fix memory leak in cleanup code of
pcntl_exec()
when a non stringable value is encountered past the first entry.
PgSql
- Fixed bug GH-17158 (pg_fetch_result Shows Incorrect ArgumentCountError Message when Called With 1 Argument).
- Fixed further ArgumentCountError for calls with flexible number of arguments.
Phar
- Fixed bug GH-17137 (Segmentation fault ext/phar/phar.c).
SimpleXML
- Fixed bug GH-17040 (SimpleXML's unset can break DOM objects).
- Fixed bug GH-17153 (SimpleXML crash when using autovivification on document).
Sockets
- Fixed bug GH-16276 (socket_strerror overflow handling with INT_MIN). (David Carlier / cmb)
- Fixed overflow on SO_LINGER values setting, strengthening values check on SO_SNDTIMEO/SO_RCVTIMEO for
socket_set_option()
.
SPL
- Fixed bug GH-17198 (SplFixedArray assertion failure with get_object_vars).
- Fixed bug GH-17225 (NULL deref in
spl_directory.c
).
Streams
- Fixed bug GH-17037 (UAF in user filter when adding existing filter name due to incorrect error handling).
- Fixed bug GH-16810 (overflow on fopen HTTP wrapper timeout value).
- Fixed bug GH-17067 (glob:// wrapper doesn't cater to CWD for ZTS builds).
Windows
- Hardened
proc_open()
against cmd.exe hijacking.
XML
- Fixed bug GH-1718 (unreachable program point in
zend_hash
).
Commit List
Arnaud Le Blanc
- NEWS for GH-17168 in a23ecc0a75
- Add observer temporary to dl'ed functions in 6f579934f0
Calvin Buckley
- Fix FD getting code on big endian in GH-17259
Christoph M. Becker
- Enable GHSA-9pqp-7h25-4f32.phpt on Windows in 7685fb0e1c
- Revert "Enable GHSA-9pqp-7h25-4f32.phpt on Windows" in 2285d7083e
- Skip
parse_ini_file_variation6.phpt
on Windows in b3b38e2d5c - Properly check for required icu4c libraries in 1800cad9d9
- Harden
proc_open()
against cmd.exe hijacking in 5cbdd5f6de opcache_get_configuration()
properly reports jit_prof_threshold in 3702f9783b- Don't run
proc_open_cmd.phpt
in parallel with other tests in aafa6ea386 - Fix GH-17067: glob:// wrapper doesn't cater to CWD for ZTS builds in 53b69ba8cf
- Include relevant system headers before defining fallbacks in fcbfd5a680
- Port fix for libgd bug 276 in 643a77dda3
David Carlier
- Fix GH-16809: fopen HTTP wrapper timeout stream context option overflow in 301b8e24c1
ext/sockets
: socket_strerror follow-up on GH-16267 fix in 3bea6a2ddbext/pgsql
fixing further calls with flexible arguments number in 0a3442fbe6- fix new pgsql test in 1bb4bd657f
- fix pgsql config inclusion in 171cc5c6e0
ext/sockets
: socket_set_option switch from convert_to_long to zval_get_long in 8a649a8343- Fix GH-14709 overflow on recurrences for DatePeriod::__construct in 16c0e57530
Derick Rethans
- These were 6bone experimental network allocations, which have been returned to IANA (RFC 3701) in f2fdcfc8c3
- Fixed GH-16944: Refactor IP ranges by using the tables from RFC 6890 in d25aac29ce
- Include changes from RFC 6890 errata in 9d1deb97ff
- Per RFC 6890, these are explicitly not reserved ranges in e54c9e6cd3
- Consistent naming for test titles in 3b154eb88c
Dmitry Stogov
- Fix GH-17003: Pecl 8.4 tracing JIT crash in GH-17032
- Fix GH-16996: 8.4 tracing JIT phpseclib failures in GH-17030
- Fix GH-9011: Assertion failure with tracing JIT in GH-17042
- Backport fix for GH-9011 in GH-17052
- Backport JIT fix: set valid EX(opline) before calling
gc_possible_root()
in GH-16858 - Fix GH-15709: Crashing tests on Windows x64 in GH-17095
- Fix RC inference of op1 of FETCH_OBJ and INIT_METHOD_CALL in 6666cc83c5
- Update IR in 33c12e0776
- Fix GH-17190: Assertion failure ext/opcache/jit/ir/ir_gcm.c in GH-17221
Gina Peter Banyard
ext/pcntl
: Fix memory leak in cleanup code ofpcntl_exec()
in 2df9f32732
Ilija Tovilo
- Drop intl on macOS + PHP 8.1 build in e675c1a467
- Fix duplicate dynamic properties in hooked object iterator properties table in 84917300b2
- Fix unstable get_iterator pointer for hooked classes in shm on Windows in 792f63df45
- Backport flaky flag for phar tests in 8a9d45b86f
- Fix
ZEND_MATCH_ERROR
misoptimization in cdfd960150 - Hide xfail/
xleak
test summary in e7af08d625 - Fix incorrect dynamic prop offset in hooked prop iterator in f0441744db
- Add tests for GH-17151 in cbe9d67efc
Jakub Zelenka
- Use empheral port for mysqli fake server tests in 39c292b1eb
- Fix GH-13437: FPM: ERROR: scoreboard: failed to lock (already locked) in 3490ac0cb3
- Introduce FPM_TEST_DEBUG_FILTER env var and extend multi request tracing in e0b79cdc5c
- Fix GH-16955: Use empheral ports for OpenSSL server client tests in b8731767d8
- Port OpenSSL gh10495, gh13860 and gh9310 test to use ephemeral ports in 37504f123d
- Port stream bug51056 and gh11418 tests to use ephemeral ports in 19e2e4d5af
Michael Orlitzky
ext/dba/tests/gh16390.phpt
: skip if inifile is disabled in def271aaa7- ext/gettext/gettext.c: handle NULLs from
bindtextdomain()
in 0221ceeccd - ext/gettext/tests: fix libintl return values under musl in bfb0e367f2
- ext/gettext/config.m4: symlink en_US.UTF-8 test bits to en_US for musl in 471e94ce61
Niels Dossche
- Fix GH-17037: UAF in user filter when adding existing filter name due to incorrect error handling in 00f4881e90
- Fix GH-17047: UAF on iconv filter failure in ddbd396aa2
- Fix GH-17040: SimpleXML's unset can break DOM objects in 7acc3ac808
- Fix GH-17039: PHP 8.4: Incorrect MIME content type in f1b24da6b5
- Backport GH-16348 in 806d2e073c
- Fix bug #79075: FFI header parser chokes on comments in 612a34cbec
- Resolve GH-17112 for lower branches in 754aa7706b
- Update HTML5 serializer comments in 901ebd1c1a
- Fix GH-17145: DOM memory leak in 4656c22526
- Fix GH-17158: pg_fetch_result Shows Incorrect ArgumentCountError Message when Called With 1 Argument in 388f63c310
- Fix GH-17153: SimpleXML crash when using autovivification on document in a57a434f95
- Fix GH-17137: Segmentation fault ext/phar/phar.c in 142f85e2e1
- Fix GH-17162:
zend_array_try_init()
with dtor can cause engine UAF in ee0daa59db - Fix GH-16255: Unexpected nan value in ext/gd/libgd/gd_filter.c in 6c198e380e
- Fix GH-17140 (Assertion failure in JIT trace exit with
ZEND_FETCH_DIM_FUNC_ARG
) in 2104097a79 - Export visibility for promoted property in 6f41bfd1c7
- Extract hook export code in 6920aa2ae6
- Fix property hook name mismatch in 0cba85b54d
- Print hooks in parameter exports in 3f0f7ab7df
- Add test for GH-17101 in d4778224ca
- Export visibility for promoted property (8.3) in 160a4a65ad
- Fix GH-17201: Dom\TokenList issues with interned string replace in e247461881
- Fix GH-17198: SplFixedArray assertion failure with get_object_vars in 5f13c62c77
- Fix GH-17216: Trampoline crash on error in 2c3b56ded0
- Fix GH-17224: UAF in importNode in 61615d5673
- Fix GH-17225: NULL deref in
spl_directory.c
in 4bfe69bbc4 - Fix DOM test on higher branches in d2b6b64655
- Fix memory leak on
ZEND_FFI_TYPE_CHAR
conversion failure in a7f7e169d6 - Fix GH-17246: GC during SCCP causes segfault in df6db27580
- Fix GH-16013 and bug #80857: Big endian issues in 99a14b805e
- Fix GH-17223: Memory leak in libxml encoding handling in 7be950f3f6
- Fix GH-17257: UBSAN warning in ext/opcache/jit/zend_jit_vm_helpers.c in f4fb77ed61
- Fix GH-17187: unreachable program point in
zend_hash
in b621b3a00f - Fix GH-17208:
bug64539-status-json-encoding.phpt
fail on 32-bits in 847d1401a0 - Fix some
emalloc()
size mistakes in 9d04d41eec - Backport fix GH-17280:
ldap_search()
fails when $attributes array has holes in 26f3bec63e - Revert 746b1cf4 "Access long value directly for call to
count()
in simplexml" in 9eaee687d3