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.6
./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.6-cli-alpine
docker pull php:8.4.6-cli
docker pull php:8.4.6-fpm-alpine
docker pull php:8.4.6-apache
docker pull php:8.4.6-fpm
ChangeLog
BCMath
- Fixed pointer subtraction for scale.
Core
- Fixed property hook backing value access in multi-level inheritance.
- Fixed accidentally inherited default value in overridden virtual properties.
- Fixed bug GH-17376 (Broken JIT polymorphism for property hooks added to child class).
- Fixed bug GH-17913 (
ReflectionFunction::isDeprecated()
returns incorrect results for closures created from magic __call()). - Fixed bug GH-17941 (Stack-use-after-return with lazy objects and hooks).
- Fixed bug GH-17988 (Incorrect handling of hooked props without get hook in
get_object_vars()
). - Fixed bug GH-17998 (Skipped lazy object initialization on primed SIMPLE_WRITE cache).
- Fixed bug GH-17998 (Assignment to backing value in set hook of lazy proxy calls hook again).
- Fixed bug GH-17961 (use-after-free during dl()'ed module class destruction).
- Fixed bug GH-15367 (dl() of module with aliased class crashes in shutdown).
- Fixed OSS-Fuzz #403308724.
- Fixed bug GH-13193 again (Significant performance degradation in 'foreach').
DBA
- Fixed assertion violation when opening the same file with dba_open multiple times.
DOM
- Fixed bug GH-17991 (Assertion failure dom_attr_value_write).
- Fix weird unpack behaviour in DOM.
- Fixed bug GH-18090 (DOM: Svg attributes and tag names are being lowercased).
- Fix xinclude destruction of live attributes.
Fuzzer
- Fixed bug GH-18081 (Memory leaks in error paths of fuzzer SAPI).
GD
- Fixed bug GH-17984 (calls with arguments as array with references).
LDAP
- Fixed bug GH-18015 (Error messages for
ldap_mod_replace
are confusing).
Mbstring
- Fixed bug GH-17989 (
mb_output_handler
crash with unset http_output_conv_mimetypes).
Opcache
- Fixed bug GH-15834 (Segfault with hook "simple get" cache slot and minimal JIT).
- Fixed bug GH-17966 (Symfony JIT 1205 assertion failure).
- Fixed bug GH-18037 (SEGV Zend/zend_execute.c).
- Fixed bug GH-18050 (IN_ARRAY optimization in DFA pass is broken).
- Fixed bug GH-18113 (stack-buffer-overflow ext/opcache/jit/ir/ir_sccp.c).
- Fixed bug GH-18112 (NULL access with preloading and INI option).
- Fixed bug GH-18107 (Opcache CFG jmp optimization with try-finally breaks the exception table).
PDO
- Fix memory leak when destroying PDORow.
PGSQL
- Fixed bug GH-18148 (
pg_copy_from()
regression with explicit \n terminator due to wrong offset check).
Standard
- Fix memory leaks in
array_any()
/array_all()
.
SOAP
- Fixed bug #66049 (Typemap can break parsing in parse_packet_soap leading to a segfault) .
SPL
- Fixed bug GH-18018 (RC1 data returned from offsetGet causes UAF in ArrayObject).
Treewide
- Fixed bug GH-17736 (Assertion failure
zend_reference_destroy()
).
Windows
- Fixed bug GH-17836 (
zend_vm_gen.php
shouldn't break on Windows line endings).
Commit List
Arnaud Le Blanc
- Destroy temporary module classes in reverse order in 1c182674b0
- Disable
ZEND_RC_MOD_CHECK()
while loading shared extension in FPM in c531f3d79b
Calvin Buckley
- Attempt at ppc64 CI in GH-17945
- Skip mysqli/tests/bug73462 on PPC CI in GH-17971
- Remove "Notify Slack" on ppc nightly workflow in GH-17993
- Update versions for PHP 8.4.6 in 95809409bb
Christian Schneider
- Fix bug and add test for dba_open same file twice in GH-17979
Daniel Scherzer
- Fix GH-17836:
zend_vm_gen.php
shouldn't break on Windows line endings in fa3c1c81d5
David Carlier
- Fix GH-17921 socket_read/socket_recv overflows on buffer size in 8cbc0c57b7
- Fix GH-17984: gd calls with array arguments in 07ceadf7d9
ext/intl
: fix locale_compose/locale_lookup to be able to deal with references in c3fc94c4b8ext/intl
: Fix dateformat_format when the time is an array of references in f34859cb90ext/intl
: FixUconverter::transcode
with substitutes as references in 005c7b5797
Derick Rethans
- Updated to version 2025.2 (2025b) in 0c8a7a77a8
- Empty merge in 9e2593a7de
- Updated to version 2025.2 (2025b) in 22b2a579ba
Dmitry Stogov
- Merge IR in f016caa312
- Merge IR in cc70838dc9
- Fix function JIT for Wordpress unit tests in 5885b9490c
- Fix register allocarion for result of ASSIGN_OBJ in GH-17994
- Update IR in ae67eb0490
- Update IR in b932c267f8
Eric Mann
- Fix NEWS versions for posterity in 175b962f55
Ilija Tovilo
- Fix property hook backing value access in multi-level inheritance in 7a55116f12
- Fix accidentally inherited default value in overridden virtual properties in e0c69dde02
- Fix circumvented added hooks in JIT in 376e90fbf2
- Fix varying pgsql error message in 8be263d2a1
- Upgrade i386 branch to Ubuntu 22.04 in 294888053a
- Fix flaky DatePeriod test in 8a699372f2
- Upgrade security branches to Ubuntu 22.04 in 5fcc8d4cd1
- Fix incorrect handling of hooked props without get hook in
get_object_vars()
in 868959350f - Fix skipped lazy init on primed SIMPLE_WRITE in 9acfe6e11c
- Fix lazy proxy calling set hook twice in 8254e8de31
- Suppress snmp lib memory leak, skip ASAN tests in b0858427aa
- Increase CircleCI no_output_timeout in ee7fcf2a07
- Use-after-free for ??= due to incorrect live-range calculation in ef2c459941
- Fix flaky connection count in mysqli test in 00ebd2d7f2
- Fix mysql test date flakiness in 45fc03c190
- Fix IN_ARRAY optimization in 56841998de
- Fix segfault when evaluating const expr default value of child prop with added hooks in d5bdf8f508
- Backport intl test changes for ICU 77 in d4c548cf42
Jakub Zelenka
- Change openssl_x509_verify test to use cert generator in GH-17882
- Fix GHSA-ghsa-v8xr-gpvj-cx9g: http header folding in d20b4c97a9
- Fix GHSA-pcmh-g36c-qc44: http headers without colon in 0548c4c175
- Fix GHSA-52jp-hrpf-2jff: http redirect location truncation in ac1a054bb3
- Fix GHSA-hgf5-96fm-v528: http user header check of crlf in 41d49abbd9
- Update NEWS with entries for security fixes in 74d548bf58
- Fix typo in GHSA-hgf5-96fm-v528 NEWS entry in 70c2ebb698
- Get rid of atime change testing in
bug72666_variation3.phpt
in bd7d3c38ad
Katherine456719
- Fix GH-18082: Memory leaks in fuzzer SAPI error paths in 38e553e418
Kévin Dunglas
- fix GH-8533: dynamic libphp linking on Mac in 009b5e2bfd
Niels Dossche
- Fix branch target in
zend_jit_push_call_frame()
in GH-17949 - Fix GH-17736: Assertion failure
zend_reference_destroy()
in ce8ab5f16a - Fix GH-17938: UAF with
zend_test
opline observer and magic_quotes_gpc=1 in GH-17958 - Fix memory leaks in
array_any()
/array_all()
in 75cca9f19e - Fix GH-15834: Segfault with hook "simple get" cache slot and minimal JIT in f6c2e40a11
- Add test for GH-17966 in bac1ed6579
- Fix GH-17991: Assertion failure dom_attr_value_write in 6083dc09a3
- Fix GH-17941: Stack-use-after-return with lazy objects and hooks in 38e8725bec
- Fix uninitialized memory accesses in DOM iterator in 2634622d3d
- Fix GH-17989:
mb_output_handler
crash with unset http_output_conv_mimetypes in c7d3dc6fab - Fix weird unpack behaviour in DOM in 9be9f70caa
- Fix tests for libxml2 2.14 in f209eb448e
- Fix test GH-16535 for libxml2 2.14 in b5471300d2
- Fix GHSA-wg4p-4hqh-c3g9 in 0e715e71d9
- Fix incorrectly merged
bug75535.phpt
in 8156a89eff - Fix GH-18018: RC1 data returned from offsetGet causes UAF in ArrayObject in 27affd8da1
- Correct check for maximum string length in JIT helpers in a7d2703246
- Fix GH-18037: SEGV Zend/zend_execute.c in 413938143b
- Fix GH-18015: Error messages for
ldap_mod_replace
are confusing in 6717947ffe - Fix OSS-Fuzz #403308724 in 4fd9992561
- Fix GH-18090: DOM: Svg attributes and tag names are being lowercased in 647baec5a4
- Fix xinclude destruction of live attributes in d9329b1522
- Add test for GH-18113 in 9488684703
- Fix GH-18112: NULL access with preloading and INI option in e9c0296240
- Fix memory leak when destroying PDORow in 2dde07af55
- Fixed bug GH-13193 again in 447d143b9d
- Fix GH-18107: Opcache CFG jmp optimization with try-finally breaks the exception table in 2ec8d37eb4
- Fix intl tests for icu 77 in GH-18125
Remi Collet
- Relax test expectation for pcre2lib 10.45 Using e9284878 in 69480be12a
- Fix #66049 Typemap can break parsing in parse_packet_soap leading to a segfault in 209f4c296e
- NEWS for #66049 in 7e6a36889c
- NEWS for #66049 in 58e4adcd63
Saki Takamachi
- Fixed pointer subtraction for scale in GH-17986
- Fixed pdo_firebird_handle_factory to check ret when starting a transaction in GH-17632
Tim Düsterhus
- Fix
ReflectionFunction::isDeprecated()
for materialized__call()
in GH-17914 - Fix GHSA-p3x9-6h7p-cgfc: libxml streams wrong
content-type
on redirect in b6004a043c - Fix GHSA-p3x9-6h7p-cgfc: libxml streams wrong
content-type
on redirect in a8d3a80067