php 8.4.11 更新日志
原文地址:PHP: PHP 8 ChangeLog
2025年7月31日
日历模块:
- 修复
jewishtojd
函数中年份参数导致的溢出问题
核心模块:
- 修复GH-18833:弱映射(WeakMap)因销毁顺序导致的释放后使用(UAF)漏洞
- 修复GH-18907:钩子函数中创建循环引用导致的内存泄漏
- 修复OSS-Fuzz #427814456
- 修复OSS-Fuzz #428983568和#428760800
- 修复GH-17204:re2c生成的
-Wuseless-escape
编译器警告 - 修复GH-19064:Windows ARM64平台下未定义的
execute_ex
符号问题
cURL模块:
- 修复curl回调函数返回引用计数对象时的内存泄漏
- 移除错误的字符串释放操作
DOM模块:
- 修复GH-18979:
Dom\XMLDocument::createComment()
传入空字节导致的未定义行为
LDAP模块:
- 修复GH-18902:空请求OID触发的
ldap_exop/ldap_exop_sync
断言错误
多字节字符串模块:
- 修复GH-18901:
mb_split
函数中的整数溢出问题
Opcache模块:
- 修复GH-18639:内部类别名破坏预加载+JIT功能的问题
- 修复GH-18899:JIT函数在未设置操作码(opline)时发出未定义变量警告导致的崩溃
- 修复GH-14082:
ext/opcache/jit/zend_jit.c
中未知地址0x600000000018导致的段错误 - 修复GH-18898:属性钩子+预加载场景下的
zend_jit_op_array_hot
段错误(SEGV)
OpenSSL模块:
- 修复#80770:
stream_socket_server
无法获取客户端对等证书的问题
PCNTL模块:
- 修复GH-18958:
pcntl_rfork()
或pcntl_forkx()
配合zend-max-execution-timers
在关闭时触发的致命错误
Phar模块:
- 修复phar流对象的双重释放问题
- 修复
SplFileObject
导致的phar崩溃和文件损坏问题
SOAP模块:
- 修复GH-18990/#81029/#47314:SOAP HTTP套接字在对象销毁时未正确关闭的问题
- 修复重定向时URL解析失败导致的内存泄漏
SPL模块:
- 修复GH-19094:将无迭代器实现的类附加到
MultipleIterator
导致的崩溃
标准库模块:
- 修复
printf()
中误导性错误提示 - 修复数组函数中的RCN(资源竞争条件)违规问题
- 修复GH-18976:
pack()
函数使用h/H
格式和INT_MAX
重复值时的溢出问题
流模块:
- 修复GH-13264:
fgets()
和stream_get_line()
在过滤器致命错误时未返回false
的问题
Zip模块:
- 修复
ZipArchive::extractTo()
中路径过长导致的内存泄漏
术语说明:
- UAF: Use-After-Free(释放后使用漏洞)
- SEGV: Segmentation Fault(段错误)
- JIT: Just-In-Time Compilation(即时编译)
- OID: Object Identifier(对象标识符,LDAP术语)
- RCN: Race Condition Notation(资源竞争条件标注)