PHP 8.1.22 發佈!
2023 年 8 月 3 日
PHP 開發團隊宣佈 PHP 8.1.22 立即可用。這是一個安全性更新。
我們鼓勵所有 PHP 8.1 使用者升級到此版本。
如需 PHP 8.1.22 的來源下載,請造訪我們的下載頁面;Windows 的來源和二進位檔案可在 windows.php.net/download/ 找到。
ChangeLog
建置:
修正錯誤 GH-11522(使用 '-' 分隔符號的 PHP 版本檢查失敗)。
命令列介面(CLI):
修正中斷的 CLI 輸出導致程序退出的問題。
核心:
修正 oss-fuzz #60011(參考傳遞 nullsafe 運算子編譯錯誤)。
修正在 assert 上使用 ??= 時使用未初始化值的問題。
修正 FreeBSD 11.0 版本之前的建置問題。
Curl:
修正傳遞無效回調函數給 CURLMOPT_PUSHFUNCTION 時的崩潰。
日期:
修正錯誤 GH-11368(修改日期後返回無效的日期時間)。
DOM:
修正錯誤 GH-11625(DOMElement::replaceWith() 不會用 DOMDocumentFragment 替換節點,而只是刪除節點或根據 libxml2 版本導致包裹 <></>)。
檔案資訊(Fileinfo):
修正錯誤 GH-11298(對於 xz 檔案返回錯誤的 MIME 類型)。
FTP:
修正 "overwrite" 上下文選項的檢查。
修正錯誤 GH-10562(連續使用 ftp_nb_fget 導致內存洩漏和無效狀態)。
GD:
修正大部分外部 libgd 測試失敗的問題。
雜湊(Hash):
修正雜湊函數 hash_pbkdf2() 中使用未初始化值的問題,修正簽名中缺少 $options 參數的問題。
國際化(Intl):
修正失敗時 MessageFormatter::format() 的內存洩漏。
Libxml:
修正錯誤 GHSA-3qrf-m4j2-pcrr(在未啟用的情況下,XML 中的外部實體加載存在安全問題)。 (CVE-2023-3823)
多字節字串(MBString):
修正錯誤 GH-11300(授權問題:受限制的 Unicode 授權標頭)。
Opcache:
修正錯誤 GH-10914(使用 Enum 和 Callback 函數的 OPCache 導致分段錯誤)。
防止加速全局變數無法分配時潛在的死鎖。
進程控制(PCNTL):
修正錯誤 GH-11498(不始終從 proc_open 返回 SIGCHLD)。
PCRE:
使用 JIT 選項搗亂 PCRE 正則表達式緩存鍵。
PDO:
修正錯誤 GH-11587(在 PHP 8.1 後,當 PDO::ATTR_EMULATE_PREPARES 為 true,且 PDO::ATTR_STRINGIFY_FETCHES 為 true 時,小數零將不再被填充)。
PDO SQLite:
修正錯誤 GH-11492(測試失敗:ext/pdo_sqlite/tests/bug_42589.phpt)。
Phar:
在 phar util 中對 EVP_VerifyUpdate() 增加缺失的檢查。
修正錯誤 GHSA-jqcx-ccgc-xwhv(phar_dir_read() 中的緩衝區錯誤管理)。 (CVE-2023-3824)
PHPDBG:
修正錯誤 GH-9669(phpdbg 的 -h 選項未列出 -z 選項)。
Session:
移除傳輸會話 ID 的破損 URL 支援。
標準庫(Standard):
修正將 RC1 物件序列化後在物件圖中出現兩次的問題。
SQLite3:
修正 SQLite3Stmt::__construct 中替換的錯誤處理。
資料來源:https://www.php.net/archive/2023.php#2023-08-03-1