ZendPHP August 2026 Second Release
Community Changes
PHP 8.5.10
- Core
- Fixed bug GH-22782 (Const expr FCC crashes under preloading). (Arnaud)
- Fixed bug GH-23088 (Stack overflow when comparing deeply nested arrays). (Lazizbek Ergashev)
- Date
- Fixed leak on double
DatePeriod::__construct()call. (ilutov)
- Fixed leak on double
- DOM
- Fixed bug GH-23116 (Stack overflow when normalizing a deeply nested
DOMDocument). (Lazizbek Ergashev) - Fixed bug GH-23117 (Stack overflow when normalizing a deeply nested
Dom\XMLDocument). (Lazizbek Ergashev) - Fixed bug GH-22825 (
DOMElement::setAttribute()fails silently when the DTD declares a default value for the attribute). (iliaal) - Fixed bug GH-23120 (Stack overflow when comparing deeply nested DOM nodes with
DOMNode::isEqualNode()). (Weilin Du)
- Fixed bug GH-23116 (Stack overflow when normalizing a deeply nested
- Exif
- Fixed
exif_read_data()allocating a HEIF meta box larger than the file it came from. (iliaal)
- Fixed
- Intl
- Fixed
IntlListFormatter::__construct()leaving stale global error state after successful calls. (Weilin Du)
- Fixed
- Opcache
- Fixed GH-22693 (
DT_TEXTRELin JIT-generated TLS access on x86_64). (David Carlier) - Fixed bug GH-22763 (JIT fails to clear
ZREG_TYPE_ONLYafter setting reg). (Arnaud) - Fixed bug GH-22857 (Function JIT emits wrong code for
FETCH_OBJ_FUNC_ARGon a property hook getter, losing register-held variables). (Zhao Hao) - Fixed bug GH-22916 (Preserve parent regs in
zend_jit_deoptimizer_start()). (Arnaud)
- Fixed GH-22693 (
- OpenSSL
- Fix missing error check on invalid alpn protocols. (ndossche)
- MBString
- Fixed bug GH-22779 (
mb_strrpos()returns the wrong position for a negative offset in a non-UTF-8 encoding). (Eyüp Can Akman) - Fixed bug GH-21036 (
mb_ereg_search_getregs()crashes aftermb_eregi()invalidates the regex cache). (Matthias Goergens)
- Fixed bug GH-22779 (
- PCRE
- Fixed bug GH-21134 (Crash with
\C+ UTF-8). Using\Cin UTF-8 patterns is now forbidden. (Arnaud)
- Fixed bug GH-21134 (Crash with
- PDO_ODBC
- Fixed bug GH-23016 (
NULLvalues in long columns come back as garbage binary strings). (Calvin Buckley, iliaal)
- Fixed bug GH-23016 (
- PDO_PGSQL
- Fixed several lazy fetch (
PDO::ATTR_PREFETCH=> 0) defects: an infinite loop when cleaning up a fetch left in a COPY, a use-after-free when a statement with emulated or disabled prepares is destroyed, a connection left busy for the next fetch, and rows delivered from a result another statement took over. (KentarouTakeda)
- Fixed several lazy fetch (
- Reflection
- Fixed bug GH-22905 (Reflection exception messages truncate on null bytes). (DanielEScherzer)
- Fixed
ReflectionProperty::isLazy()andskipLazyInitialization()using the parent slot when a child class hooks an inherited property. (iliaal) - Fixed segfault in
ReflectionMethod::createFromMethodName()on an uninstantiable subclass. (iliaal)
- Session
- Fix corruption in
mod_mm. (ndossche) - Fixed bug GH-23043 (broken session id code can cause
zend_mm_heapcorrupted). (ndossche)
- Fix corruption in
- SimpleXML
- Fixed integer element offsets that cannot resolve aliasing an existing element. (iliaal)
- Fixed segfault when comparing uninitialized
SimpleXMLElementinstances. (iliaal)
- Sockets
- Fixed
socket_set_option()validation error messages forUDP_SEGMENTandSO_LINGERoptions. (Weilin Du) - Fixed various memory related issues in
ext/sockets. (David Carlier)
- Fixed
- SQLite
- Fix leak when trying to close db if blob stream is still open. (ndossche)
- Standard
- Fixed bug GH-23111 (Stack overflow in
array_walk_recursive()with deeply nested arrays). (Lazizbek Ergashev) - Fixed bug GH-23113 (Stack overflow in
array_replace_recursive()with deeply nested arrays). (Lazizbek Ergashev) - Fixed bug GH-23115 (Stack overflow in
compact()with deeply nested arrays). (Lazizbek Ergashev)
- Fixed bug GH-23111 (Stack overflow in
- Streams
- Fixed bug GH-15836 (Use-after-free when a user stream filter accesses
$this->streamduring the close flush). (iliaal)
- Fixed bug GH-15836 (Use-after-free when a user stream filter accesses
- XSL
- Fixed use-after-free when a
DOMDocumentsubclass__clone()retains the stylesheet copy made byXSLTProcessor::importStylesheet(). (iliaal)
- Fixed use-after-free when a
PHP 8.4.25
- Core
- Fixed bug GH-23088 (Stack overflow when comparing deeply nested arrays). (Lazizbek Ergashev)
- Date
- Fixed leak on double
DatePeriod::__construct()call. (ilutov)
- Fixed leak on double
- DOM
- Fixed bug GH-23116 (Stack overflow when normalizing a deeply nested
DOMDocument). (Lazizbek Ergashev) - Fixed bug GH-23117 (Stack overflow when normalizing a deeply nested
Dom\XMLDocument). (Lazizbek Ergashev) - Fixed bug GH-22825 (
DOMElement::setAttribute()fails silently when the DTD declares a default value for the attribute). (iliaal) - Fixed bug GH-22447 (UAF at
dom_objects_free_storagewhen setting an attribute node that collides by local name with a namespaced attribute). (David Carlier) - Fixed bug GH-23120 (Stack overflow when comparing deeply nested DOM nodes with
DOMNode::isEqualNode()). (Weilin Du)
- Fixed bug GH-23116 (Stack overflow when normalizing a deeply nested
- LibXML
- Fixed bug GH-22752 (Build failure with libxml 2.15). (David Carlier)
- MBString
- Fixed bug GH-22779 (
mb_strrpos()returns the wrong position for a negative offset in a non-UTF-8 encoding). (Eyüp Can Akman) - Fixed bug GH-21036 (
mb_ereg_search_getregs()crashes aftermb_eregi()invalidates the regex cache). (Matthias Goergens)
- Fixed bug GH-22779 (
- Opcache
- Fixed bug GH-22857 (Function JIT emits wrong code for
FETCH_OBJ_FUNC_ARGon a property hook getter, losing register-held variables). (Zhao Hao)
- Fixed bug GH-22857 (Function JIT emits wrong code for
- OpenSSL
- Fix missing error check on invalid alpn protocols. (ndossche)
- Opcache
- Fixed bug GH-22916 (Preserve parent regs in
zend_jit_deoptimizer_start()). (Arnaud)
- Fixed bug GH-22916 (Preserve parent regs in
- PCRE
- Fixed bug GH-21134 (Crash with
\C+ UTF-8). Using\Cin UTF-8 patterns is now forbidden. (Arnaud)
- Fixed bug GH-21134 (Crash with
- Reflection
- Fixed bug GH-22905 (Reflection exception messages truncate on null bytes). (DanielEScherzer)
- Fixed
ReflectionProperty::isLazy()andskipLazyInitialization()using the parent slot when a child class hooks an inherited property. (iliaal) - Fixed segfault in
ReflectionMethod::createFromMethodName()on an uninstantiable subclass. (iliaal)
- Readline
- Fixed class constant completion in the interactive shell. (Weilin Du)
- Zip
- Fixed bug GH-17787 (
ZipArchivestream stops reading early when the archive is freed while the stream is still open). (Eyüp Can Akman)
- Fixed bug GH-17787 (
- Session
- Fix corruption in
mod_mm. (ndossche) - Fixed bug GH-23043 (broken session id code can cause
zend_mm_heapcorrupted). (ndossche)
- Fix corruption in
- SimpleXML
- Fixed integer element offsets that cannot resolve aliasing an existing element. (iliaal)
- Fixed segfault when comparing uninitialized
SimpleXMLElementinstances. (iliaal)
- Sockets
- Fixed various memory related issues in
ext/sockets. (David Carlier)
- Fixed various memory related issues in
- SQLite
- Fix leak when trying to close db if blob stream is still open. (ndossche)
- Standard
- Fixed bug GH-23111 (Stack overflow in
array_walk_recursive()with deeply nested arrays). (Lazizbek Ergashev) - Fixed bug GH-23113 (Stack overflow in
array_replace_recursive()with deeply nested arrays). (Lazizbek Ergashev) - Fixed bug GH-23115 (Stack overflow in
compact()with deeply nested arrays). (Lazizbek Ergashev) - Fixed stack overflow in
count()withCOUNT_RECURSIVEand deeply nested arrays. (Lazizbek Ergashev)
- Fixed bug GH-23111 (Stack overflow in
- Streams
- Fixed bug GH-15836 (Use-after-free when a user stream filter accesses
$this->streamduring the close flush). (iliaal)
- Fixed bug GH-15836 (Use-after-free when a user stream filter accesses
- Sysvshm
- Fixed out-of-bounds write when
shm_attach()opens an existing segment with a size larger than the segment actually is. (David Carlier)
- Fixed out-of-bounds write when
- XSL
- Fixed use-after-free when a
DOMDocumentsubclass__clone()retains the stylesheet copy made byXSLTProcessor::importStylesheet(). (iliaal)
- Fixed use-after-free when a
- Zip
- Fixed
ZipArchive::addGlob()andZipArchive::addPattern()ignoring their default options when no options array is given. (David Carlier)
- Fixed