[web-php] master: Announce PHP 8.5.9

From: Date: Thu, 30 Jul 2026 11:50:27 +0000
Subject: [web-php] master: Announce PHP 8.5.9
Groups: php.webmaster 
Request: Send a blank email to php-webmaster+get-33909@lists.php.net to get a copy of this message
Author: Volker Dusch (edorian) Date: 2026-07-30T13:50:11+02:00 Commit: https://github.com/php/web-php/commit/35d7d39b90eadb21f8c9072e9b7ddf2c18d7e6cc Raw diff: https://github.com/php/web-php/commit/35d7d39b90eadb21f8c9072e9b7ddf2c18d7e6cc.diff Announce PHP 8.5.9 Changed paths: A archive/entries/2026-07-30-2.xml A releases/8_5_9.php M ChangeLog-8.php M archive/archive.xml M include/release-qa.php M include/releases.inc M include/version.inc Diff: diff --git a/ChangeLog-8.php b/ChangeLog-8.php index d5d830fffe..0f2a3ca77f 100644 --- a/ChangeLog-8.php +++ b/ChangeLog-8.php @@ -9,6 +9,133 @@ <a id="PHP_8_5"></a> +<section class="version" id="8.5.9"><!-- {{{ 8.5.9 --> +<h3>Version 8.5.9</h3> +<b><?php release_date('30-Jul-2026'); ?></b> +<ul><li>Core: +<ul> + <li>Fixed bug <?php githubissuel('php/php-src', 22290); ?> (AST pretty printing does not correctly handle strings containing NUL).</li> + <li>Fixed bug <?php githubissuel('php/php-src', 22206); ?> (missing return in global register detection).</li> + <li>Lock unmodified readonly properties for modification after clone-with.</li> +</ul></li> +<li>BCMath: +<ul> + <li>Fixed <?php githubsecurityl('php/php-src', 'x692-q9x7-8c3f'); ?> (Out-of-bounds write in bccomp()). (CVE-2026-17544)</li> +</ul></li> +<li>Calendar: +<ul> + <li>Fixed bug <?php githubissuel('php/php-src', 22602); ?> (gregoriantojd() and juliantojd() integer overflow with INT_MAX year).</li> +</ul></li> +<li>Date: +<ul> + <li>Update timelib to 2022.17.</li> + <li>Fixed bug <?php githubissuel('php/php-src', 19803); ?> (Parsing a string with a single white space does create an error).</li> + <li>Fixed Unix timestamps in February of the year 0 are misparsed with @-notation.</li> + <li>Fixed bug <?php githubissuel('php/php-src', 11310); ?> (__debugInfo does nothing on userland classes extending Date classes).</li> +</ul></li> +<li>DBA: +<ul> + <li>Fixed OOB read on malformed length field in dba flatfile handler.</li> +</ul></li> +<li>DOM: +<ul> + <li>Fixed bug <?php githubissuel('php/php-src', 22570); ?> (Stack overflow when serializing a deeply nested Dom\XMLDocument).</li> + <li>Fixed getElementsByClassName() item() returning the wrong element on random access.</li> +</ul></li> +<li>Exif: +<ul> + <li>Fixed bug <?php githubissuel('php/php-src', 11020); ?> (exif_read_data() emits a spurious "Illegal IFD size" warning when an IFD is not followed by a next-IFD offset).</li> +</ul></li> +<li>GD: +<ul> + <li>Upgrade libgd. (CVE-2026-9672)</li> +</ul></li> +<li>Hash: +<ul> + <li>Fixed bug <?php githubissuel('php/php-src', 18173); ?> (ext/hash relies on implementation-defined malloc alignment).</li> +</ul></li> +<li>ODBC: +<ul> + <li>Fixed bug <?php githubissuel('php/php-src', 22668); ?> (Heap buffer over-read when a column value exceeds the driver-reported display size).</li> +</ul></li> +<li>Opcache: +<ul> + <li>Fixed bug <?php githubissuel('php/php-src', 22158); ?> (Tracing JIT dispatches the observer begin handler through the wrong run_time_cache slot on megamorphic calls).</li> + <li>Fixed bug <?php githubissuel('php/php-src', 22443); ?> (Tracing JIT SIGSEGV on megamorphic dynamic calls from an undereferenced run_time_cache map_ptr offset).</li> + <li>Fixed bug <?php githubissuel('php/php-src', 21770); ?> (Infinite recursion in property hook getter in opcache preloaded trait).</li> +</ul></li> +<li>OpenSSL: +<ul> + <li>Fixed timeout for supplemental read at end of a blocking stream in SSL stream wrapper.</li> +</ul></li> +<li>Intl: +<ul> + <li>Fixed Locale::lookup() and locale_lookup() to return NULL instead of the fallback locale when a language tag cannot be canonicalized.</li> + <li>Fixed memory leaks when calling Collator::__construct() or Spoofchecker::__construct() twice.</li> + <li>Fixed memory leak when calling IntlListFormatter::__construct() twice.</li> + <li>Fixed IntlChar methods leaving stale global error state after successful calls.</li> +</ul></li> +<li>PDO_ODBC: +<ul> + <li>Fixed bug <?php githubissuel('php/php-src', 20726); ?> (Crash with ODBC connection pooling when the DSN carries no credentials).</li> + <li>Fixed bug <?php githubissuel('php/php-src', 22667); ?> (Heap buffer over-read when a column value exceeds the driver-reported display size).</li> + <li>Fixed bug <?php githubissuel('php/php-src', 22666); ?> (Heap buffer overflow when an output parameter value is longer than the declared maxlen).</li> + <li>Fixed bug <?php githubissuel('php/php-src', 22665); ?> (Out-of-bounds write when the ODBC driver reports a diagnostic message length beyond the error buffer).</li> +</ul></li> +<li>PGSQL: +<ul> + <li>Fixed <?php githubsecurityl('php/php-src', '7qpv-r5mr-78m4'); ?> (SQL injection via E'...' backslash breakout). (CVE-2026-17543)</li> +</ul></li> +<li>Phar: +<ul> + <li>Fixed inconsistent handling of the magic ".phar" directory. Paths such as "/.phar" remain protected, while non-magic paths that merely start with ".phar" are handled consistently across file and directory creation, copying, ArrayAccess, stream lookup, directory iteration and extraction.</li> + <li>Fixed <?php githubsecurityl('php/php-src', 'vc5h-9ppw-p5f3'); ?> (Crash via recursive symlinks). (CVE-2026-7260)</li> +</ul></li> +<li>PHPDBG: +<ul> + <li>Fixed bug <?php githubissuel('php/php-src', 17387); ?> (Trivial crash in phpdbg lexer).</li> + <li>Fixed fleaked lowercased lookup keys in phpdbg_resolve_opline_break.</li> + <li>Fixed off-by-one in phpdbg_safe_class_lookup() causing class lookups to always fail during phpdbg's signal-safe interruption path.</li> +</ul></li> +<li>Reflection: +<ul> + <li>Fixed bug <?php githubissuel('php/php-src', 22324); ?> (Ignore leading namespace separator in ReflectionParameter::__construct()).</li> + <li>Fixed bug <?php githubissuel('php/php-src', 22441); ?> (ReflectionClass::hasProperty() and getProperty() ignore dynamic properties shadowing a private parent property).</li> + <li>Fixed bug <?php githubissuel('php/php-src', 22658); ?> (ReflectionConstant::__toString() with a string value with null bytes truncates output).</li> + <li>Fixed bug <?php githubissuel('php/php-src', 22683); ?> (Reflection(Class)Constant::__toString() should not warn on NAN conversions).</li> + <li>Fixed bug <?php githubissuel('php/php-src', 22681); ?> (Reflection*::__toString() truncates on null bytes).</li> +</ul></li> +<li>Session: +<ul> + <li>Fixed bug <?php githubissuel('php/php-src', 21314); ?> (Different session garbage collector behavior between PHP 8.3 and PHP 8.5).</li> +</ul></li> +<li>SPL: +<ul> + <li>Fix class_parents for classes with leading slash in non-autoload mode.</li> + <li>Ignore leading back-slash in class_parents(), class_implements(), and class_uses().</li> + <li>Fixed bug <?php githubissuel('php/php-src', 16217); ?> (SplFileObject::fputcsv() on an uninitialized object segfaults).</li> +</ul></li> +<li>Standard: +<ul> + <li>Fixed bug <?php githubissuel('php/php-src', 22395); ?> (base_convert() outputs at most 64 characters).</li> + <li>Fixed bug <?php githubissuel('php/php-src', 22678); ?> (Use-after-free in array_multisort() when the comparator mutates the array being sorted).</li> +</ul></li> +<li>URI: +<ul> + <li>Fixed behavior of Uri\WhatWg\Url wither methods with regards to empty opaque hosts.</li> + <li>Fixed bug <?php githubissuel('php/php-src', 22628); ?> (Percent-encoding of caret in WHATWG URL paths is not performed).</li> + <li>Fixed bug <?php githubissuel('php/php-src', 22629); ?> (WHATWG Validation error incorrect with empty host and non-empty userinfo).</li> +</ul></li> +<li>Zip: +<ul> + <li>Fixed bug <?php githubissuel('php/php-src', 22649); ?> (ZipArchive::setCommentName() and setCommentIndex() could crash after overwriting an entry and resetting its inherited unchanged comment).</li> + <li>Fixed bug <?php githubissuel('php/php-src', 21705); ?> (ZipArchive::getFromIndex() ignores ZipArchive::FL_UNCHANGED for deleted entries).</li> +</ul></li> +</ul> +<!-- }}} --></section> + + + <section class="version" id="8.5.8"><!-- {{{ 8.5.8 --> <h3>Version 8.5.8</h3> <b><?php release_date('02-Jul-2026'); ?></b> diff --git a/archive/archive.xml b/archive/archive.xml index d086a6e346..dfcd9ebaaa 100644 --- a/archive/archive.xml +++ b/archive/archive.xml @@ -9,6 +9,7 @@ <uri>http://php.net/contact</uri> <email>php-webmaster@lists.php.net</email> </author> + <xi:include href="entries/2026-07-30-2.xml"/> <xi:include href="entries/2026-07-30-1.xml"/> <xi:include href="entries/2026-07-16-1.xml"/> <xi:include href="entries/2026-07-13-1.xml"/> diff --git a/archive/entries/2026-07-30-2.xml b/archive/entries/2026-07-30-2.xml new file mode 100644 index 0000000000..3c57d3c74d --- /dev/null +++ b/archive/entries/2026-07-30-2.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8"?> +<entry xmlns="http://www.w3.org/2005/Atom"> + <title>PHP 8.5.9 Released!</title> + <id>https://www.php.net/archive/2026.php#2026-07-30-2</id> + <published>2026-07-30T11:38:53+00:00</published> + <updated>2026-07-30T11:38:53+00:00</updated> + <link href="https://www.php.net/index.php#2026-07-30-2" rel="alternate" type="text/html"/> + <link href="https://www.php.net/archive/2026.php#2026-07-30-2" rel="via" type="text/html"/> + <category term="releases" label="New PHP release"/> + <category term="frontpage" label="PHP.net frontpage news"/> + <content type="xhtml"> + <div xmlns="http://www.w3.org/1999/xhtml"><p>The PHP development team announces the immediate availability of PHP 8.5.9. This is a security release.</p> + +<p>All PHP 8.5 users are encouraged to upgrade to this version.</p> + +<p>For source downloads of PHP 8.5.9 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, +Windows source and binaries can also be found <a href="https://www.php.net/downloads.php?os=windows&amp;version=8.5">there</a>. +The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.5.9">ChangeLog</a>. +</p> </div> + </content> +</entry> diff --git a/include/release-qa.php b/include/release-qa.php index ce44a7f7bd..35e5f8a450 100644 --- a/include/release-qa.php +++ b/include/release-qa.php @@ -88,10 +88,10 @@ 'active' => true, 'release' => [ 'type' => 'RC', - 'number' => 1, - 'sha256_bz2' => 'ce761a2347e2bd6bb9aab5a63d78a2e978df10665619632a8f903b1df3af9420', - 'sha256_gz' => 'eaeb7fc128cdce1ee4a16575f55e318a51554295b530dd914a03d08abc9023a3', - 'sha256_xz' => '3c4de9f98adda67400e2b52252f5d1c58328d26da64e3cdc8b3a6a3e5d49397b', + 'number' => 0, + 'sha256_bz2' => '', + 'sha256_gz' => '', + 'sha256_xz' => '', 'date' => '16 July 2026', 'baseurl' => 'https://downloads.php.net/~edorian/', ], diff --git a/include/releases.inc b/include/releases.inc index 62f3513d94..858db068b1 100644 --- a/include/releases.inc +++ b/include/releases.inc @@ -2,6 +2,43 @@ $OLDRELEASES = array ( 8 => array ( + '8.5.8' => + array ( + 'announcement' => + array ( + 'English' => '/releases/8_5_8.php', + ), + 'tags' => + array ( + 0 => 'security', + ), + 'date' => '02 Jul 2026', + 'source' => + array ( + 0 => + array ( + 'filename' => 'php-8.5.8.tar.gz', + 'name' => 'PHP 8.5.8 (tar.gz)', + 'sha256' => '6ebc55e52af4396385e689f7af0f28944fbbf966843433b573e9dc1dc03df539', + 'date' => '02 Jul 2026', + ), + 1 => + array ( + 'filename' => 'php-8.5.8.tar.bz2', + 'name' => 'PHP 8.5.8 (tar.bz2)', + 'sha256' => '22f938efc6c4eaa8bf2e40ae11466140309496aa5d5a19204272fb2596fd11dd', + 'date' => '02 Jul 2026', + ), + 2 => + array ( + 'filename' => 'php-8.5.8.tar.xz', + 'name' => 'PHP 8.5.8 (tar.xz)', + 'sha256' => '58910198d19e873048fe87cdfe16bc790025417ede3d1651bfa1c4b533d573f2', + 'date' => '02 Jul 2026', + ), + ), + 'museum' => false, + ), '8.2.32' => array ( 'announcement' => diff --git a/include/version.inc b/include/version.inc index 3e1cf68edd..38e3f36e9f 100644 --- a/include/version.inc +++ b/include/version.inc @@ -20,15 +20,15 @@ $RELEASES = (function () { /* PHP 8.5 Release */ $data['8.5'] = [ - 'version' => '8.5.8', - 'date' => '02 Jul 2026', + 'version' => '8.5.9', + 'date' => '30 Jul 2026', 'tags' => ['security'], // Set to ['security'] for security releases. 'sha256' => [ // WARNING: Order of SHA256 entries here is DIFFERENT from the // order in the manifest - 'tar.gz' => '6ebc55e52af4396385e689f7af0f28944fbbf966843433b573e9dc1dc03df539', - 'tar.bz2' => '22f938efc6c4eaa8bf2e40ae11466140309496aa5d5a19204272fb2596fd11dd', - 'tar.xz' => '58910198d19e873048fe87cdfe16bc790025417ede3d1651bfa1c4b533d573f2', + 'tar.gz' => 'd735459c2cbaeb0673d416c33d372d9ff261d562f6b29da48f3e6aeaeca083af', + 'tar.bz2' => '703c082ad9d2946ac647f3596812300d2c62b360d2f31a999021692a9b39476c', + 'tar.xz' => '0db7855f25bcd0ab1d592cdb35e284d6f6a5d2ae0f6f621122e364cc39b708f4', ] ]; diff --git a/releases/8_5_9.php b/releases/8_5_9.php new file mode 100644 index 0000000000..854553c793 --- /dev/null +++ b/releases/8_5_9.php @@ -0,0 +1,16 @@ +<?php +$_SERVER['BASE_PAGE'] = 'releases/8_5_9.php'; +include_once __DIR__ . '/../include/prepend.inc'; +site_header('PHP 8.5.9 Release Announcement'); +?> +<h1>PHP 8.5.9 Release Announcement</h1> + +<p>The PHP development team announces the immediate availability of PHP 8.5.9. This is a security release.</p> + +<p>All PHP 8.5 users are encouraged to upgrade to this version.</p> + +<p>For source downloads of PHP 8.5.9 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, +Windows source and binaries can also be found <a href="https://www.php.net/downloads.php?os=windows&amp;version=8.5">there</a>. +The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.5.9">ChangeLog</a>. +</p> +<?php site_footer();

« previous php.webmaster (#33909) next »