PHP 8.5.8 现已发布,这是一个安全更新版本。建议所有 PHP 8.5 用户升级到此版本。
- Core:
- 修复了 bug GH-22280(跳转到 try/finally 块之前的标签的编译错误不正确)。
- 修复了 bug GH-22112(在将 NaN 强制转换为 bool 或 string 时,错误处理程序抛出断言)。
- BCMath:
- 修复了 bcround() 和 BcMath\Number::round() 中分配过多内存和有符号溢出的问题。
- Date:
- 修复 DatePeriod::createFromISO8601String() 中不正确的 recurrence check。
- Exif:
- 读取 single 和 double tags 的正确值。
- GD:
- 修复了 bug GH-22121(溢出触发提前返回后 gdImageSetStyle() 中的双重释放)。
- Intl:
- 修复 transliterator_transliterate() 中无效起始/结束参数的错误参数位置。
- 修复了 IntlTimeZone::getDisplayName(),使其能够同步无效显示类型的对象错误状态。
- Lexbor:
- Opcache:
- 修复了 bug GH-22265(另一个 tailcall vm_interrupt 错误)。
- 修复了 bug GH-20469(具有可重入自动加载的不安全继承缓存重放)。
- 修复了 bug GH-21972(当类型化的按值返回包含引用包装器时,变量类型损坏)。
- OpenSSL:
- 修复了 bug GH-22187(使用 AES-WRAP-PAD 加密的 openssl_encrypt 函数中内存损坏(zend_mm_heap 损坏))。(CVE-2026-14355)
- Phar:
- 修复了 Phar::addEmptyDir() 中针对以“/.phar”开头的路径绕过 magic“.phar”目录保护的问题,同时允许仅共享“.phar”前缀的 non-magic 目录名称。
- Reflection:
- 在 ReflectionClass::getProperty() 错误消息和自动加载中保留类名大小写。
- SOAP:
- 修复了 bug GH-22218(当 $_SERVER 不是数组时,SoapServer::handle() 崩溃)。
- 修复了 bug GH-22285(Soap 服务器要求将原始输入传递给 $server->handle)。
- SQLite:
- URI:
- 在 Windows 上将 LEXBOR_STATIC 添加到 CFLAGS_URI,这样 ext/uri 在静态链接到 PHP 时就不会将 LXB_API 视为 __declspec(dllimport)。
- 在每次调用 Uri\WhatWg\Url wither 之前清除错误日志,以便下次抛出 UrlValidationError 时不会返回先前 wither 调用中的错误。
- Zip:
- 修复了与 error-related 内存泄漏问题。
- Zlib:
- 修复了 deflate 初始化失败且存在字典时发生的内存泄漏问题。
- 修复了 inflate_add() 中的内存泄漏问题。
更多详情可查看:https://www.php.net/ChangeLog-8.php#8.5.8