PHP 日本研討會 2024

PHP 8 更新日誌

8.4 | 8.3 | 8.2 | 8.1 | 8.0

版本 8.4.1

  • BcMath
    • [RFC] 將 bcfloor、bcceil 和 bcround 加入 BCMath。
    • 提升效能。
    • 調整 bcround() 的 $mode 參數,僅接受 RoundingMode 列舉。
    • 修正 BCMath ext 中的 LONG_MAX。
    • 修正 bcdiv() 除以一的問題。
    • [RFC] 支援 BCMath 中的物件型別。
    • bcpow() 效能提升。
    • ext/bcmath:檢查 scale 溢位。
    • [RFC] ext/bcmath:加入 bcdivmod。
    • 修正 GH-15968 (避免在運算子計算中將物件轉換為字串)。
    • 修正錯誤 GH-16265 (當結果為 0 時加入提前返回的情況) (Saki Takamachi)。
    • 修正錯誤 GH-16262 (修正 size_t 下溢的錯誤) (Saki Takamachi)。
    • 修正 GH-16236 (修正 BcMath\Number::pow() 和 bcpow() 在計算 0 的負次方時的錯誤) (Saki Takamachi)。
  • 核心
    • 為 NetBSD、DragonFlyBSD、Solaris 和 Haiku 加入 zend_call_stack_get 實作。
    • 從 12.x 版本開始,在 FreeBSD 上啟用 ifunc 檢查。
    • 將 PHP_DEBUG 和 PHP_ZTS 常數的型別變更為 bool。
    • 修正錯誤 GH-13142 (當變數名稱包含 \0 時,未定義的變數名稱會被縮短)。
    • 修正錯誤 GH-13178 (將壓縮陣列轉換為雜湊時,迭代器位置不正確)。
    • 修正 solaris 預設模式 (32 位元) 的 zend 纖程建置。
    • 修正 macOs/arm64 的 zend 呼叫堆疊大小。
    • 在 FreeBSD 上加入對 Zend 最大執行時間計時器的支援。
    • 確保纖程堆疊不以 THP 為後盾。
    • 實作 GH-13609 (在 WeakReference 類別中傾印封裝的物件)。
    • 為 zend 纖程加入 sparc64 架構組合語言支援。
    • 修正 GH-13581 在 NetBSD 上沒有可用的 TLS 空間。
    • 加入纖程 Sys-V loongarch64 支援。
    • 調整閉包名稱以包含父函式的名稱。
    • 提升上傳檔案名稱和 tempnam() 建立的檔案的隨機性。
    • 為 zend_mm 自訂處理常式加入 gc 和關閉回呼。
    • 修正錯誤 GH-14650 (在分配記憶體之前計算頁面大小)。
    • 修正錯誤 GH-11928 (—enable-re2c-cgoto 沒有加入 -g 旗標)。
    • 加入 #[\Deprecated] 屬性。
    • 修正 GH-11389 (允許在解構函式中暫停纖程)。
    • 修正錯誤 GH-14801 (修正 armv7 的建置)。
    • 實作屬性掛鉤 RFC。
    • 修正 GH-14978 (xmlreader 擴充功能 phpize 建置)。
    • 當在比較期間遇到遞迴時,擲回 Error 例外,而不是嚴重錯誤。
    • 為 C++ 建置加入遺失的 cstddef include。
    • 將建置系統指令碼 config.guess 更新至 2024-07-27,config.sub 更新至 2024-05-27。
    • 修正錯誤 GH-15240 (trait 掛鉤中的無限遞迴)。
    • 修正錯誤 GH-15140 (使用不對稱型別的抽象集合缺少變異檢查)。
    • 修正錯誤 GH-15181 (已停用的輸出處理常式再次被刷新)。
    • 現在不建議將 E_USER_ERROR 傳遞給 trigger_error()。
    • 修正錯誤 GH-15292 (動態 AVX 偵測在 MSVC 上損壞)。
    • 現在不建議使用 "_" 作為類別名稱。
    • 退出命名空間現在會清除已見到的符號。
    • exit (和 die) 語言結構現在的行為更像函式。它們可以像可呼叫物件一樣傳遞,受 strict_types 宣告陳述式影響,現在執行一般型別強制轉換,而不是將任何非整數值轉換為字串。因此,將無效型別傳遞給 exit/die 現在可能會導致擲回 TypeError。
    • 修正錯誤 GH-15438 (忽略建構函式提升屬性上沒有可見性的掛鉤)。
    • 修正錯誤 GH-15419 (唯讀類別缺少唯讀 + 掛鉤不相容檢查)。
    • 修正錯誤 GH-15187 (各種掛鉤物件迭代器問題)。
    • 修正錯誤 GH-15456 (get_class_vars() 在虛擬屬性上發生崩潰)。
    • 修正錯誤 GH-15501 (Windows HAVE_<header>_H 巨集定義為 1 或未定義)。
    • 實作屬性的不對稱可見性。
    • 修正錯誤 GH-15644 (不對稱可見性不適用於掛鉤)。
    • 實作延遲物件 RFC。
    • 修正錯誤 GH-15686 (使用外部 iconv 程式庫建置共用 iconv)。
    • 修正將不對稱可見性加入單方面虛擬屬性時遺失的錯誤。
    • 修正錯誤 GH-15693 (main.c 中不必要的 include 使二進位檔膨脹)。
    • 修正錯誤 GH-15731 (AllowDynamicProperties 驗證應針對列舉傳回錯誤)。
    • 修正錯誤 GH-16040 (在掛鉤中釋放物件的釋放後使用)。
    • 修正錯誤 GH-16026 (關閉期間重複使用 dtor 纖程)。
    • 修正錯誤 GH-15999 (zend_std_write_property() 延遲物件的判斷提示失敗)。
    • 修正錯誤 GH-15960 (延遲物件的 foreach 邊緣案例)。
    • 修正錯誤 GH-16185 (各種掛鉤物件迭代器問題)。
    • 修正錯誤 OSS-Fuzz #371445205 (attr_free 中的堆積使用後釋放)。
    • 修正將不對稱可見性加入靜態屬性時遺失的錯誤。
    • 修正錯誤 OSS-Fuzz #71407 (zend_lazy_object_clone 中 Null 取消參考 WRITE)。
    • 修正錯誤 GH-16574 (不正確的錯誤「未定義的方法」訊息)。
    • 修正錯誤 GH-16577 (EG(strtod_state).freelist 使用 opcache.preload 洩漏)。
    • 修正錯誤 GH-16615 (zend_std_read_property 中的判斷提示失敗)。
    • 修正錯誤 GH-16342 (加入 ReflectionProperty::isLazy())。
    • 修正錯誤 GH-16725 (掛鉤物件迭代器中非掛鉤屬性的存取檢查不正確)。
  • Curl
    • 已不建議使用 CURLOPT_BINARYTRANSFER 常數。
    • 將所需的 libcurl 版本提升至 7.61.0。
    • 為 curl_version() 回傳值加入 feature_list 金鑰。
    • 加入常數 CURL_HTTP_VERSION_3 (libcurl 7.66) 和 CURL_HTTP_VERSION_3ONLY (libcurl 7.88),作為 CURLOPT_HTTP_VERSION 的選項 (Ayesh Karunaratne)
    • 加入 CURLOPT_TCP_KEEPCNT 以設定捨棄連線前要傳送的探測數。
    • 加入 CURLOPT_PREREQFUNCTION Curl 選項,以便在建立連線後,執行請求之前設定自訂回呼。
    • 加入 CURLOPT_SERVER_RESPONSE_TIMEOUT,以前稱為 CURLOPT_FTP_RESPONSE_TIMEOUT。
    • 現在會靜默忽略 CURLOPT_DNS_USE_GLOBAL_CACHE 選項。
    • 加入 CURLOPT_DEBUGFUNCTION 作為 Curl 選項。
    • 修正錯誤 GH-16359 (使用 curl_setopt* CURLOPT_WRITEFUNCTION 時沒有 null 回呼會崩潰)。
    • 修正錯誤 GH-16723 (CURLMOPT_PUSHFUNCTION 問題)。
  • Date
    • 加入 DateTime[Immutable]::createFromTimestamp。
    • 加入 DateTime[Immutable]::[get|set]Microsecond。
    • 現在不建議使用常數 SUNFUNCS_RET_TIMESTAMP、SUNFUNCS_RET_STRING 和 SUNFUNCS_RET_DOUBLE。
    • 修正錯誤 GH-13773 (DatePeriod 未將結束日期的微秒數納入考量)。
  • DBA
    • 不建議將 null 或 false 傳遞給 dba_key_split()。
  • Debugging
    • 修正錯誤 GH-15923 (GDB:Python 例外 <class 'TypeError'>:例外必須衍生自 BaseException)。
  • DOM
    • 加入 DOMNode::compareDocumentPosition()。
    • 實作 #53655 (提升大型 XML 文件上的 DOMNode::C14N() 速度)。
    • 修正複製帶有命名空間的屬性時,命名空間消失的問題。
    • 實作 DOM HTML5 剖析和序列化 RFC。
    • 修正 DOMElement->使用空字串建立虛假字首的字首。
    • 更一致地處理 OOM。
    • 實作「改進 ext/dom 和 ext/xsl 中的回呼」RFC。
    • 加入 DOMXPath::quote() 靜態方法。
    • 實作選擇性加入的 ext/dom 規格相符性 RFC。
    • 修正錯誤 #79701 (getElementById 無法正確處理重複定義)。
    • 實作「PHP 8.4 中的新 ext-dom 功能」RFC。
    • 修正 GH-14698 (DOM 節點取消參考時的區段錯誤)。
    • 改善對範本元素支援。
    • 修正在 xpath 可呼叫物件中的跳板洩漏。
    • 在 (DOM)ParentNode 和 (DOM)ChildNode 中建立過長的文字節點時,不再靜默失敗,而是拋出例外。
    • 修正錯誤 GH-15192 (dom 擴充功能 (html5_serializer) 中的分段錯誤)。
    • 已棄用 DOM_PHP_ERR 常數。
    • 已移除 DOMImplementation::getFeature()。
    • 修正錯誤 GH-15331 (Element::$substitutedNodeValue 測試失敗)。
    • 修正錯誤 GH-15570 (ext/dom/html5_serializer.c 中的分段錯誤 (存取空指標))。
    • 修正錯誤 GH-13988 (在 PHP 8.1 中儲存 DOMElement 消耗的記憶體是 PHP 8.0 的 4 倍)。
    • 修正 XML 序列化器的錯誤:應允許 xmlns="" 序列化。
    • 修正錯誤 GH-15910 (ext/dom/element.c 中的斷言失敗)。
    • 修正取消設定 DOM 屬性的問題。
    • 修正錯誤 GH-16190 (使用反射呼叫 Dom\Node::__construct 會導致斷言失敗)。
    • 修正 DOM 解析解碼中的邊緣案例。
    • 修正錯誤 GH-16465 (DOMNode->getElementByTagName 中的堆積緩衝區溢位)。
    • 修正錯誤 GH-16594 (DOM -> before 中的斷言失敗)。
  • Fileinfo
    • 更新至 libmagic 5.45。
    • 修正錯誤 #65106 (PHP 無法編譯 ext/fileinfo)。
  • FPM
    • 實作 GH-12385 (當呼叫 flush() 時,在不含內文的情況下清除標頭)。
    • 已將 DragonFlyBSD 系統新增至將 FPM_BACKLOG_DEFAULT 設定為 SOMAXCONN 的清單中。
    • 已淘汰 Solaris/Illumos 設定的 /dev/poll 事件機制。
    • 已將記憶體峰值新增至計分板/狀態頁面。
  • FTP
    • 已移除已棄用的 inet_ntoa 呼叫支援。
    • 修正錯誤 #63937 (使用 PHP 上傳速度慢 10 倍)。
  • GD
    • 修正 imagecolorset() 的參數編號和遺失的 alpha 檢查。
    • imagepng/imagejpeg/imagewep/imageavif 現在會在品質參數無效時拋出例外。
    • 檢查 imagescale/imagefilter 的溢位/下溢。
    • 已將 gdImageClone 新增至綑綁的 libgd 中。
  • Gettext
    • bind_textdomain_codeset、textdomain 和 d(*)gettext 函式現在會在網域為空時拋出例外。
  • GMP
    • GMP 類別現在為 final,不能再被擴充。
    • RFC:變更 GMP 布林值轉換行為。
  • Hash
    • 已將 hash_update() 的傳回類型變更為 true。
    • 已新增 HashContext::__debugInfo()。
    • 已棄用將不正確的資料類型傳遞至 ext/hash 函式的選項。
    • 已新增 SHA-256 的 SSE2 和 SHA-NI 實作。
    • 修正 GH-15384 (在 Alpine / Musl for amd64 上建置失敗)。
    • 修正錯誤 GH-15742 (php_hash_sha.h 與 C++ 不相容)。
  • IMAP
    • 已移至 PECL。
  • Intl
    • 已新增 IntlDateFormatter::PATTERN 常數。
    • 修正當地區設定無效時的 Numberformatter::__construct,現在會拋出例外。
    • 已新增 NumberFormatter::ROUND_TOWARD_ZERO 和 ::ROUND_AWAY_FROM_ZERO 作為 ::ROUND_DOWN 和 ::ROUND_UP 的別名。
    • 已新增 NumberFormatter::ROUND_HALFODD。
    • 已新增 PROPERTY_IDS_UNARY_OPERATOR、PROPERTY_ID_COMPAT_MATH_START 和 PROPERTY_ID_COMPAT_MATH_CONTINUE 常數。
    • 已新增 IntlDateFormatter::getIanaID/intltz_get_iana_id 方法/函式。
    • 針對 icu 74 及更新版本設定為 C++17 標準。
    • resourcebundle_get()、ResourceBundle::get() 以及存取 ResourceBundle 物件的偏移量現在會拋出: - 無效的偏移量類型為 TypeError - 空字串為 ValueError - 如果整數索引不符合帶正負號的 32 位元整數,則為 ValueError
    • ResourceBundle::get() 現在具有暫定的傳回類型:ResourceBundle|array|string|int|null
    • 已新增新的 Grapheme 函式 grapheme_str_split。
    • 已新增 IntlDateFormatter::parseToCalendar。
    • 已新增 SpoofChecker::setAllowedChars 以設定 Unicode 字元範圍。
  • LDAP
    • 已新增 LDAP_OPT_X_TLS_PROTOCOL_MAX/LDAP_OPT_X_TLS_PROTOCOL_TLS1_3 常數。
  • LibXML
    • 已新增 LIBXML_RECOVER 常數。
    • libxml_set_streams_context() 現在會立即針對無效的內容拋出例外,而不是在使用位置。
    • 已新增 LIBXML_NO_XXE 常數。
  • MBString
    • 已新增 mb_trim、mb_ltrim 和 mb_rtrim。
    • 已新增 mb_ucfirst 和 mb_lcfirst。
    • 已將 Unicode 資料表更新至 Unicode 15.1。
    • 修正錯誤 GH-15824 (mb_detect_encoding(): 引數 $encodings 包含無效的編碼 "UTF8")。
    • 已將 Unicode 資料表更新至 Unicode 16.0。
  • Mysqli
    • mysqli_ping() 函式和 mysqli::ping() 方法現在已棄用,因為重新連線功能已在 PHP 8.2 中移除。
    • mysqli_kill() 函式和 mysqli::kill() 方法現在已棄用。如果需要此功能,則可以使用 SQL "KILL" 命令。
    • mysqli_refresh() 函式和 mysqli::refresh() 方法現在已棄用。如果需要此功能,則可以使用 SQL "FLUSH" 命令。
    • 已棄用將 $mode 參數明確傳遞至 mysqli_store_result()。由於 MYSQLI_STORE_RESULT_COPY_DATA 常數僅與此函式搭配使用,因此也已棄用。
  • MySQLnd
    • 修正錯誤 GH-13440 (PDO 引號瓶頸)。
    • 修正錯誤 GH-10599 (當在具有使用中 mysqli 連線的類別內使用自我參照匿名函式時,Apache 在 Windows 上當機)。
  • Opcache
    • 已新增 FreeBSD 的大型共用區段支援。
    • 如果已啟用 JIT,則如果 JIT 啟動初始化發生問題,PHP 現在會在啟動時以嚴重錯誤結束。
    • 在 64 位元架構上,已將 opcache.interned_strings_buffer 的最大值增加至 32767。
    • 修正錯誤 GH-13834 (在 zend_jit.c 中將非零偏移量 36 套用至空指標)。
    • 修正錯誤 GH-14361 (zend_cfg.c 中的深度遞迴導致分段錯誤)。
    • 修正錯誤 GH-14873 (PHP 8.4 min 函式在具類型整數上失敗)。
    • 修正錯誤 GH-15490 (建置呼叫圖會修改預先載入的符號)。
    • 修正錯誤 GH-15178 (在勾點上追蹤 JIT 時的斷言)。
    • 修正錯誤 GH-15657 (dasm_x86.h 中的分段錯誤)。
    • 已新增 opcache_jit_blacklist() 函式。
    • 修正錯誤 GH-16009 (無框架函式和未定義 CV 的分段錯誤)。
    • 修正錯誤 GH-16186 (Zend/zend_operators.c 中的斷言失敗)。
    • 修正錯誤 GH-16572 (低觸發 JIT 中反射的不正確結果)。
    • 修正 GH-16839 (在 Windows ARM64 上建置 Opcache JIT 時發生錯誤)。
  • OpenSSL
    • 修正錯誤 #80269 (OpenSSL 使用 extraattribs 參數將 Subject 設定錯誤)。
    • 實作要求 #48520 (openssl_csr_new - 允許 DN 中有多個值)。
    • 將新的 serial_hex 參數引入 openssl_csr_sign。
    • 已新增 X509_PURPOSE_OCSP_HELPER 和 X509_PURPOSE_TIMESTAMP_SIGN 常數。
    • 已將最低所需的 OpenSSL 版本提升至 1.1.1。
    • 已新增編譯時間選項 --with-openssl-legacy-provider 以啟用舊版提供者。
    • 已新增對基於 Curve25519 + Curve448 的金鑰的支援。
    • 修正錯誤 GH-13343 (openssl_x509_parse 不應允許 UTCTimes 中省略秒)。
    • 已將最低所需的 OpenSSL 版本提升至 1.1.0。
    • 實作 GH-13514 (來自 OpenSSL 3.2 的 PASSWORD_ARGON2)。
  • Output
    • 在處理常式初始化期間清除輸出處理常式的狀態旗標。
    • 修正 url_rewriter.hosts 未被 output_add_rewrite_var() 使用的錯誤。
  • PCNTL
    • 已針對 Linux 新增 pcntl_setns。
    • 已新增 pcntl_getcpuaffinity/pcntl_setcpuaffinity。
    • 已更新 pcntl_get_signal_handler 訊號 id 上限,使其更符合平台限制。
    • 已針對 Linux/FreeBSD/Solaris/Illumos 新增 pcntl_getcpu。
    • 已針對 macOs 新增 pcntl_getqos_class/pcntl_setqos_class。
    • 已針對 DragonFlyBSD 新增 SIGCKPT/SIGCKPTEXIT 常數。
    • 已將 FreeBSD 的 SIGTRAP 處理新增至 pcntl_siginfo_to_zval。
    • 已新增 POSIX pcntl_waitid。
    • 修正錯誤 GH-16769:(pcntl_sigwaitinfo 中止將訊號值作為參考)。
  • PCRE
    • 將綑綁的 pcre2lib 升級至 10.43 版。
    • 新增 "/r" 修飾符。
    • 將綑綁的 pcre2lib 升級至 10.44 版。
    • 修正 GH-16189 (偏移量引數上的下溢)。
    • 修正請求關閉後 PCRE 的 UAF 問題。
  • PDO
    • 修正 setAttribute 和 getAttribute。
    • 實作 PDO 驅動程式特定子類別 RFC。
    • 新增對 PDO 驅動程式特定 SQL 剖析器的支援。
    • 修正錯誤 GH-14792 (pdo_* 擴充功能的編譯失敗)。
    • mysqlnd:支援 ER_CLIENT_INTERACTION_TIMEOUT。
    • 不再安裝內部標頭 php_pdo_int.h;不應由 PDO 驅動程式使用。
    • 修正錯誤 GH-16167 (防止將 PDO 子類別與不同的 DSN 混合)。
    • 修正錯誤 GH-16314 (當開啟持續連線時,「Pdo\Mysql 物件未初始化」)。
  • PDO_DBLIB
    • 修正 setAttribute 和 getAttribute。
    • 已新增 Pdo\DbLib 類別。
  • PDO_Firebird
    • 修正 setAttribute 和 getAttribute。
    • 功能:將交易隔離層級和模式設定新增至 pdo_firebird。
    • 已新增 Pdo\Firebird 類別。
    • 已新增 Pdo\Firebird::ATTR_API_VERSION。
    • 已新增 getApiVersion() 並從 getAttribute() 中移除。
    • 支援 Firebird 4.0 資料類型。
    • 支援正確的時間區域類型格式。
    • 修正 GH-15604 (始終使輸入參數可為 null)。
  • PDO_MYSQL
    • 修正 setAttribute 和 getAttribute。
    • 已新增 Pdo\Mysql 類別。
    • 已新增自訂 SQL 剖析器。
    • 修正 GH-15949 (PDO_MySQL 未正確引用 PDO_PARAM_LOB 二進位資料)。
  • PDO_ODBC
    • 已新增 Pdo\Odbc 類別。
  • PDO_PGSQL
    • 修正 GH-12423,DSN 認證優先於使用者/密碼 PDO 建構函式引數。
    • 使用 pdo_pgsql 查詢結果修正原生浮點數支援。
    • 已新增 Pdo\Pgsql 類別。
    • 擷取查詢結果資源的記憶體使用量。
    • 已新增 Pdo\Pgsql::setNoticeCallBack 方法以接收資料庫通知。
    • 已新增自訂 SQL 剖析器。
    • 修正 GH-15986 (由於 Pdo\Pgsql::setNoticeCallback() 導致的雙重釋放)。
    • 修正 GH-12940(使用 PQclosePrepared(如果可用)而不是 DEALLOCATE 命令來釋放語句資源)。
    • 移除 PGSQL_ATTR_RESULT_MEMORY_SIZE 常數,因為新的 PDO 子類別 Pdo\Pgsql::ATTR_RESULT_MEMORY_SIZE 提供了此常數。
  • PDO_SQLITE
    • 新增 Pdo\Sqlite 類別。
    • 修正錯誤 #81227(當在交易中時,PDO::inTransaction 回報 false)。
    • 已新增自訂 SQL 剖析器。
  • PHPDBG
    • 處理 Windows 上用於區段錯誤處理常式的陣列超出範圍和堆疊溢位。
    • 修正錯誤 GH-16041(支援 phpdbg 中的堆疊限制)。
  • PGSQL
    • 新增 pg_select 可以沒有條件的可能性。
    • 持久連線支援 PGSQL_CONNECT_FORCE_RENEW 旗標。
    • 新增 pg_result_memory_size 以取得查詢結果的記憶體使用量。
    • 新增 pg_change_password 以變更使用者的密碼。
    • 新增 pg_put_copy_data/pg_put_copy_end 以傳送 COPY 命令並發出 COPY 結束的信號。
    • 新增 pg_socket_poll 以輪詢連線。
    • 新增 pg_jit 以取得伺服器 JIT 支援的資訊。
    • 新增 pg_set_chunked_rows_size 以逐區塊擷取結果。
    • pg_convert/pg_insert/pg_update/pg_delete;正規表示式現在會被快取。
  • Phar
    • 修正錯誤 GH-12532(從 zip 建立的 PharData 具有不正確的時間戳記)。
  • POSIX
    • 新增 POSIX_SC_CHILD_MAX 和 POSIX_SC_CLK_TCK 常數。
    • 更新 posix_isatty 以設定檔案描述器的錯誤編號。
  • PSpell
    • 已移至 PECL。
  • Random
    • 修正錯誤 GH-15094(php_random_default_engine() 不符合 C++ 規範)。
    • lcg_value() 現在已過時。
  • Readline
    • 修正 readline_info、rl_line_buffer_length/rl_len 全域變數的更新問題。
    • 修正錯誤 #51558(共用 readline 建置失敗)。
    • 修正 readline_info() 的 UAF 問題。
  • Reflection
    • 實作 GH-12908(在 ReflectionAttribute 傾印中顯示屬性名稱/類別)。
    • 讓 ReflectionGenerator::getFunction() 在產生器終止後合法。
    • 新增 ReflectionGenerator::isClosed()。
    • 修正錯誤 GH-15718(在動態屬性上使用 ReflectionProperty::get{Hook,Hooks}() 時發生區段錯誤)。
    • 修正錯誤 GH-15694(對已掛鉤的屬性而言,ReflectionProperty::isInitialized() 不正確)。
    • 新增遺失的 ReflectionProperty::hasHook[s]() 方法。
    • 新增遺失的 ReflectionProperty::isFinal() 方法。
    • 修正錯誤 GH-16122(對閉包而言,ReflectionFunction::getNamespaceName() 和 ReflectionFunction::inNamespace() 的傳回值不正確)。
    • 修正錯誤 GH-16162(沒有 ReflectionProperty::IS_VIRTUAL)(DanielEScherzer)
    • 修正 ReflectionClass::resetAsLazyGhost() 的第二個參數名稱。
  • Session
    • INI 設定 session.sid_length 和 session.sid_bits_per_character 現在已過時。
    • 針對 session.gc_divisor 的非正值和 session.gc_probability 的負值發出警告。
    • 修正錯誤 GH-16590(在 session_encode() 中發生 UAF)。
  • SimpleXML
    • 修正 simplexml_import_dom() 的簽名。
  • SNMP
    • 已移除已棄用的 inet_ntoa 呼叫支援。
  • SOAP
    • 新增類別映射中對命名空間的 Clark 標記法的支援。
    • 減輕 #51561(使用延伸類別且使用 session 的 SoapServer,會遺失 setPersistence())。
    • 修正錯誤 #49278(如果 wsdl 操作沒有輸出,則 SoapClient::__getLastResponseHeaders 會傳回 NULL)。
    • 修正錯誤 #44383(PHP DateTime 未轉換為 xsd:datetime)。
    • 修正錯誤 GH-11941(當「session」建置為共用物件時,具有 session 持續性的 soap 會無訊息地失敗)。
    • 現在不建議將 int 傳遞給 SoapServer::addFunction()。如果需要提供所有 PHP 函數,請展平 get_defined_functions() 傳回的陣列。
    • SOAP_FUNCTIONS_ALL 常數現在已過時。
    • 修正錯誤 #61525(SOAP 函數需要在 HTTP 標頭冒號後至少有一個空格)。
    • 實作請求 #47317(SoapServer::__getLastResponse())。
  • Sockets
    • 已移除已棄用的 inet_ntoa 呼叫支援。
    • 新增 SO_EXECLUSIVEADDRUSE Windows 常數。
    • 新增 SOCK_CONN_DGRAM/SOCK_DCCP netbsd 常數。
    • 新增 FreeBSD 上 IPv4 的多點傳播群組支援。
    • 新增 Linux 的 TCP_SYNCNT 常數,以設定從用戶端傳送 SYN 封包的嘗試次數。
    • 新增 illumos/solaris 上獨佔通訊端繫結的 SO_EXCLBIND 常數。
    • 將 socket_create_listen 後置引數的預設值更新為 SOMAXCONN。
    • 新增 SO_NOSIGPIPE 常數,以控制 macOs 和 FreeBSD 上 SIGPIPE 的產生。
    • 為 macOS 新增 SO_LINGER_SEC,與其他平台上的 SO_LINGER 真實等效。
    • 在 unix 上使用 socket_accept 建立的通訊端上新增 close-on-exec。
    • 為 BSD 系統新增 IP_PORTRANGE* 常數,以控制臨時埠範圍。
    • 為 socket_create 和 socket_create_pair 新增 SOCK_NONBLOCK/SOCK_CLOEXEC 常數,以將 O_NONBLOCK/O_CLOEXEC 旗標套用至新建立的通訊端。
    • 新增 SO_BINDTOIFINDEX 以將通訊端繫結至介面索引。
  • Sodium
    • 新增對 AEGIS-128L 和 AEGIS-256 的支援。
    • 在具有 ARM 加密擴充功能的 aarch64 上啟用 AES-GCM。
  • SPL
    • 為 SplObjectStorage 實作 SeekableIterator。
    • SplFixedArray::__wakeup() 方法已過時,因為它實作了 __serialize() 和 __unserialize(),需要改為覆寫。
    • 現在不建議為以下項目的 $escape 參數傳遞非空字串:- SplFileObject::setCsvControl() - SplFileObject::fputcsv() - SplFileObject::fgetcsv()。
  • Standard
    • 實作 GH-12188(在 phpinfo() 中指示 int 大小)。
    • 部分修正 GH-12143(0.49999999999999994 的 round() 結果不正確)。
    • 修正 GH-12252(round():驗證捨入模式)。
    • 將預設 BCrypt 成本增加至 12。
    • 修正錯誤 GH-12592(strcspn() 使用 NUL 位元組和空遮罩的奇異行為)。
    • 已移除已棄用的 inet_ntoa 呼叫支援。
    • 在 number_format 中將 int 範圍內的大型浮點數轉換為 int,這樣就不會遺失精確度。
    • 為 round() 函數新增 4 種新的捨入模式的支援。
    • debug_zval_dump() 現在會指示陣列是否為封裝的。
    • 修正 GH-12143(最佳化 round)。
    • 將 long2ip 的傳回類型從 string|false 變更為 string。
    • 修正 GH-12143(將 round 可以處理的最大精確度擴展一位數)。
    • 新增 http_get_last_response_headers() 和 http_clear_last_response_headers(),允許擷取與魔術變數 $http_response_header 相同的內容。
    • 新增 php_base64_encode_ex() API。
    • 實作「將零提升到負數的冪」RFC。
    • 新增 array_find()、array_find_key()、array_all() 和 array_any()。
    • 將 highlight_string() 和 print_r() 傳回類型變更為 string|true。
    • 修正 request_parse_body() 選項陣列中的參考。
    • 新增 RoundingMode 列舉。
    • 現在不建議還原序列化大寫「S」標記。
    • 在 OpenBSD 上啟用 crc32 輔助偵測。
    • 現在不建議為以下項目的 $escape 參數傳遞非空字串:- fputcsv() - fgetcsv() - str_getcsv()。
    • 當 $separator 和 $enclosure 引數不是一個位元組長,或者如果 $escape 不是一個位元組長或空字串時,str_getcsv() 函數現在會擲回 ValueErrors。這會使行為與 fputcsv() 和 fgetcsv() 的行為相同。
    • php_uname() 現在會針對無效輸入擲回 ValueErrors。
    • unserialize() 的「allowed_classes」選項如果不是類別名稱的陣列,現在會擲回 TypeErrors 和 ValueErrors。
    • 實作 GH-15685(改進 Windows 上的 proc_open 錯誤報告)。
    • 在 http_build_query() 中新增對受支援列舉的支援。
    • 修正錯誤 GH-15982(當牽涉到參考時,使用 array_find 時會發生判斷提示失敗)。
    • 將 fpow() 的參數名稱修正為與 pow() 相同。
  • Streams
    • 實作 GH-15155(當自訂串流封裝器被篩選時,會遺失串流內容)。
  • Tidy
    • 建構函式中的失敗現在會擲回例外狀況,而不是發出警告並擁有損壞的物件。
    • 新增 tidyNode::getNextSibling() 和 tidyNode::getPreviousSibling()。
  • Windows
    • 更新 Windows 可執行檔(例如 php.exe)的圖示。
    • 修正錯誤 GH-16199(GREP_HEADER() 已損壞)。
  • XML
    • 新增 XML_OPTION_PARSE_HUGE 剖析器選項。
    • 修正錯誤 #81481(在 64 位元組建置上,xml_get_current_byte_index 限制為 32 位元數字)。
    • xml_set_object() 函數已過時。
    • 現在不建議將不可呼叫的字串傳遞給 xml_set_*_handler() 函數。
  • XMLReader
    • 宣告類別常數類型。
    • 新增 XMLReader::fromStream()、XMLReader::fromUri()、XMLReader::fromString()。
    • 修正錯誤 GH-15123(var_dump 實際上無法在 XMLReader 上運作)。
  • XMLWriter
    • 新增 XMLWriter::toStream()、XMLWriter::toUri()、XMLWriter::toMemory()。
  • XSL
    • 實作請求 #64137(XSLTProcessor::setParameter() 應該允許使用兩種引號)。
    • 實作「改進 ext/dom 和 ext/xsl 中的回呼」RFC。
    • 新增 XSLTProcessor::$maxTemplateDepth 和 XSLTProcessor::$maxTemplateVars。
    • 修正在 xpath 可呼叫物件中的跳板洩漏。
  • Zip
    • 新增 libzip 1.11 中新增的 ZipArchive::ER_TRUNCATED_ZIP。

版本 8.3.14

  • CLI
    • 修正錯誤 GH-16373(在透過 shebang 啟動的 cli-server 中,不會略過路由器指令碼的 shebang)。
    • 修正錯誤 GHSA-4w77-75f9-2c8w(CLI SAPI 介面中 sapi_read_post_data 處理的堆積使用後釋放)。
  • COM
    • 修正對 SafeArray 資料的超出範圍寫入。
  • 核心
    • 修正錯誤 GH-16168(在 macOS 15 上使用 Xcode 16 clang 編譯時,php 8.1 和更早版本會立即崩潰)。
    • 修正錯誤 GH-16371(在 Zend/zend_weakrefs.c:646 中發生判斷提示失敗)。
    • 修正錯誤 GH-16515(呼叫跳板時,ZEND_ACC_RETURN_REFERENCE 的傳播不正確)。
    • 修正錯誤 GH-16509(函數重新宣告錯誤中的行號不正確)。
    • 修正錯誤 GH-16508(延遲早期繫結類別的繼承錯誤中的行號不正確)。
    • 修正錯誤 GH-16648(陣列排序期間的釋放後使用)。
  • Curl
    • 修正錯誤 GH-16302(如果 curl_multi_add_handle 失敗,CurlMultiHandle 會保留對 CurlHandle 的參考)。
  • Date
    • 修正錯誤 GH-16454(在 $utcOffset 很小的情況下,date_sunset() 中未處理的 INF)。
    • 修正錯誤 GH-14732(date_sun_info() 對於非有限值失敗)。
  • DBA
    • 修正錯誤 GH-16390(dba_open() 可以在「無路徑」串流中發生區段錯誤)。
  • DOM
    • 修正了錯誤 GH-16316 (DOMXPath 未正確初始化時會崩潰)。
    • 新增了 replaceChild 遺失的層級檢查。
    • 修正了錯誤 GH-16336 (屬性內部文件的管理不當)。
    • 修正了錯誤 GH-16338 (ext/dom/node.c 中的空指標取值)。
    • 修正了錯誤 GH-16473 (dom_import_simplexml 存根錯誤)。
    • 修正了錯誤 GH-16533 (當將屬性新增到非元素的父節點時發生 Segfault)。
    • 修正了錯誤 GH-16535 (當使用文件作為子節點時發生 UAF)。
    • 修正了錯誤 GH-16593 (DOM->replaceChild 中的斷言失敗)。
    • 修正了錯誤 GH-16595 (DOM -> cloneNode 中另一個 UAF)。
  • EXIF
    • 修正了錯誤 GH-16409 (當處理的不是真實檔案時,exif_thumbnail 會發生 Segfault)。
  • FFI
    • 修正了錯誤 GH-16397 (比較 FFI 物件時發生 Segmentation fault)。
  • Filter
    • 修正了錯誤 GH-16523 (FILTER_FLAG_HOSTNAME 接受結尾的連字符號)。
  • FPM
    • 修正了錯誤 GH-16628 (FPM 記錄檔因這個記錄陳述而損毀)。
  • GD
    • 修正了錯誤 GH-16334 (矩陣元素上的 imageaffine 溢位)。
    • 修正了錯誤 GH-16427 (未檢查的 libavif 回傳值)。
    • 修正了錯誤 GH-16559 (ext/gd/libgd/gd_interpolation.c:1007 中的 UBSan 中止)。
  • GMP
    • 修正了使用大型指數值時,gmp_pow 造成的浮點數異常錯誤。(David Carlier)。
    • 修正了錯誤 GH-16411 (gmp_export() 可能導致溢位)。
    • 修正了錯誤 GH-16501 (gmp_random_bits() 可能導致溢位)。
    • 修正了具有大型基數/指數的 gmp_pow() 溢位錯誤。
    • 修正了與 GMP 物件運算符多載相關的 Segfault 和其他問題。
  • LDAP
  • MBstring
    • 修正了錯誤 GH-16361 (mb_substr 在 start/length 參數上的溢位)。
  • MySQLnd
    • 修正了錯誤 GHSA-h35g-vwh6-m678 (透過堆積緩衝區過度讀取洩漏堆積的部分內容)。 (CVE-2024-8929)
  • Opcache
    • 修正了錯誤 GH-16408 (在最佳化器中發出陣列轉字串轉換警告)。
  • OpenSSL
    • 修正了錯誤 GH-16357 (openssl 可能會修改憑證陣列的成員類型)。
    • 修正了錯誤 GH-16433 (openssl_csr_sign() $days 的大型值溢位)。
    • 修正了 openssl_x509_parse() 中錯誤條件下的各種記憶體洩漏。
  • PDO DBLIB
    • 修正了錯誤 GHSA-5hqh-c84r-qjcv (dblib 引號器中的整數溢位導致 OOB 寫入)。 (CVE-2024-11236)
  • PDO Firebird
    • 修正了錯誤 GHSA-5hqh-c84r-qjcv (firebird 引號器中的整數溢位導致 OOB 寫入)。 (CVE-2024-11236)
  • PDO ODBC
    • 修正了錯誤 GH-16450 (PDO_ODBC 可以將垃圾資料注入欄位值)。
  • Phar
    • 修正了錯誤 GH-16406 (ext/phar/phar.c:2808 中的斷言失敗)。
  • PHPDBG
    • 修正了錯誤 GH-16174 (空字串對 ev 而言是無效的表達式)。
  • Reflection
    • 修正了錯誤 GH-16601 (Reflection 建構函式中的記憶體洩漏)。
  • Session
    • 修正了錯誤 GH-16385 (session_set_cookie_params 回傳非預期的 null)。
    • 修正了錯誤 GH-16290 (cookie_lifetime ini 值溢位)。
  • SOAP
    • 修正了錯誤 GH-16318 (遞迴陣列導致 soap 編碼發生 Segfault)。
    • 修正了錯誤 GH-16429 (在 SoapClient 中存取空指標時發生 Segmentation fault)。
  • Sockets
    • 修正了 socket_recvfrom $length 參數的溢位錯誤。
  • SPL
    • 修正了錯誤 GH-16337 (SplHeap 中的 use-after-free)。
    • 修正了錯誤 GH-16464 (SplDoublyLinkedList::offsetSet() 中的 use-after-free)。
    • 修正了錯誤 GH-16479 (SplObjectStorage::setInfo() 中的 use-after-free)。
    • 修正了錯誤 GH-16478 (SplFixedArray::unset() 中的 use-after-free)。
    • 修正了錯誤 GH-16588 (Observer->serialize 中的 UAF)。
    • 修正了 GH-16477 (在 SplFileObject::__constructor 失敗後呼叫 __debugInfo() 時發生 Segmentation fault)。
    • 修正了錯誤 GH-16589 (SplDoublyLinked->serialize() 中的 UAF)。
    • 修正了錯誤 GH-14687 (SplObjectIterator 實例上的 segfault)。
    • 修正了錯誤 GH-16604 (SPL 建構函式中的記憶體洩漏)。
    • 修正了錯誤 GH-16646 (ArrayObject::unset() 和 ArrayObject::exchangeArray() 中的 UAF)。
  • Standard
    • 修正了錯誤 GH-16293 (在啟用 bail 的情況下,於 assert() 回呼中拋出例外時發生斷言失敗)。
  • Streams
    • 修正了錯誤 GHSA-c5f2-jwm7-mmq2 (在 stream 上下文中設定 Proxy 可能允許在 URI 中進行 CRLF 注入)。 (CVE-2024-11234)
    • 修正了錯誤 GHSA-r977-prxv-hc43 (使用 convert.quoted-printable-decode 篩選器進行單一位元組過度讀取)。 (CVE-2024-11233)
  • SysVMsg
    • 修正了錯誤 GH-16592 (當類型未正確序列化時,msg_send() 會崩潰)。
  • SysVShm
    • 修正了錯誤 GH-16591 (shm_put_var 中的斷言錯誤)。
  • XMLReader
    • 修正了錯誤 GH-16292 (ext/xmlreader/php_xmlreader.c 中的 Segmentation fault)。
  • Zlib
    • 修正了錯誤 GH-16326 (不良字典的記憶體管理已損壞。) (cmb)

版本 8.3.13

  • Calendar
    • 修正了 GH-16240:jdtounix 在引數值上的溢位。
    • 修正了 GH-16241:easter_days/easter_date 在年份引數上的溢位。
    • 修正了 GH-16263:jddayofweek 溢位。
    • 修正了 GH-16234:jewishtojd 溢位。
  • CLI
    • 修正了錯誤 GH-16137:用戶端多次設定時出現重複的 HTTP 標頭。
  • 核心
    • 修正了錯誤 GH-16054 (在新增時調整雜湊表迭代器清單大小會發生 Segmentation fault)。
    • 修正了錯誤 GH-15905 (TRACK_VARS_SERVER 的斷言失敗)。
    • 修正了錯誤 GH-15907 (當將 Serialize 棄用升級為例外時發生斷言失敗)。
    • 修正了錯誤 GH-15851 (在清理巢狀產生器框架期間列印回溯追蹤時發生 Segfault)。
    • 修正了錯誤 GH-15866 (Zend/zend_generators.c 中發生核心傾印)。
    • 修正了錯誤 GH-16188 (Zend/zend_exceptions.c 中的斷言失敗)。
    • 修正了錯誤 GH-16233 (透過 trampoline 在內部函式中呼叫使用者函式時發生 Observer segfault)。
  • DOM
    • 修正了錯誤 GH-16039 (ext/dom/parentnode/tree.c 中發生 Segmentation fault (存取空指標))。
    • 修正了錯誤 GH-16149 (DOMElement->getAttributeNames() 中的空指標取值)。
    • 修正了錯誤 GH-16151 (ext/dom/parentnode/tree.c 中的斷言失敗)。
    • 修正了錯誤 GH-16150 (php_dom.c 中的 use-after-free)。
    • 修正了錯誤 GH-16152 (DOMProcessingInstruction/DOMDocument 中的記憶體洩漏)。
  • JSON
    • 修正了錯誤 GH-15168 (json_encode() 中的堆疊溢位)。
  • GD
    • 修正了錯誤 GH-16232 (讀取 wbmp 檔案內容時發生位元移位溢位/修正上游的回溯移植)。
    • 修正了錯誤 GH-12264 (imagerotate 度數值的溢位/下溢) (David Carlier)
    • 修正了錯誤 GH-16274 (imagescale 在 RBG 通道上的下溢/修正上游的回溯移植)。
  • LDAP
    • 修正了錯誤 GH-16032 (ldap_modify_batch() 中的各種 NULL 指標取值)。
    • 修正了錯誤 GH-16101 (當 LDAPs 陣列不是清單時,ldap_list()、ldap_read() 和 ldap_search() 中發生 Segfault)。
    • 修正了 GH-16132 (php_ldap_do_modify() 嘗試釋放非 ZMM 配置的指標)。
    • 修正了 GH-16136 (當條目不是正確的字典時,php_ldap_do_modify() 中的記憶體洩漏)。
  • MBString
    • 修正了錯誤 GH-16261 (mb_convert_variables() 中斷的參考不變量)。
  • OpenSSL
    • 修正了 openssl_csr_new 的存根。
  • PCRE
    • 修正了錯誤 GH-16189 (offset 引數上的下溢)。
    • 修正了錯誤 GH-16184 (ext/pcre/php_pcre.c 中溢位的 UBSan 位址)。
  • PHPDBG
    • 修正了錯誤 GH-15901 (phpdbg:i 函式上的斷言失敗)。
    • 修正了錯誤 GH-16181 (phpdbg:例外處理常式中的 exit 會報告致命錯誤)。
  • Reflection
    • 修正了錯誤 GH-16187 (ext/reflection/php_reflection.c 中的斷言失敗)。
  • SAPI
    • 修正了錯誤 GH-15395 (php-fpm:zend_mm_heap 因 cgi-fcgi 要求而損毀)。
  • SimpleXML
    • 修正了錯誤 GH-15837 (ext/simplexml/simplexml.c 中的 Segmentation fault)。
  • Sockets
    • 修正了錯誤 GH-16267 (socket_strerror 在 errno 引數上的溢位)。
  • SOAP
    • 修正了錯誤 #73182 (PHP SOAPClient 不支援陣列形式的 stream 上下文 HTTP 標頭)。
    • 修正了錯誤 #62900 (xsd 匯入錯誤訊息上的錯誤命名空間)。
    • 修正了錯誤 GH-15711 (SoapClient 無法將 BackedEnum 轉換為純量值)。
    • 修正了錯誤 GH-16237 (在複製 SoapServer 時發生 Segmentation fault)。
    • 修正了 Soap 在錯誤時洩漏 http_msg 的問題。
    • 修正了錯誤 GH-16256 (ext/soap/php_encoding.c:460 中的斷言失敗)。
    • 修正了錯誤 GH-16259 (當 classmap 實例化失敗時,Soap 發生 segfault)。
  • SPL
    • 修正了錯誤 GH-15918 (ext/spl/spl_fixedarray.c 中的斷言失敗)。
  • Standard
    • 修正了錯誤 GH-16053 (Zend/zend_hash.c 中的斷言失敗)。
    • 修正了錯誤 GH-15169 (在 ext/standard/var 中序列化變數時發生堆疊溢位)。
  • Streams
    • 修正了錯誤 GH-15908GH-15026 (streams.c 中的洩漏/斷言失敗)。
    • 修正了錯誤 GH-15980 (main/streams/streams.c 中的帶號整數溢位)。
  • TSRM
    • 防止關閉不相關的控制代碼。
  • Windows
    • 修正了最低 Windows 版本。

版本 8.3.12

  • CGI
    • 修正了錯誤 GHSA-p99j-rfp4-xqvq (繞過 CVE-2024-4577,參數注入漏洞)。 (CVE-2024-8926)
    • 修正了錯誤 GHSA-94p6-54jq-9mwp (由於環境變數衝突,cgi.force_redirect 設定可被繞過)。 (CVE-2024-8927)
  • 核心
    • 修正了錯誤 GH-15408 (zend_max_execution_timer 上的 MSan 誤報)。
    • 修正了錯誤 GH-15515 (Configure 錯誤 grep 非法選項 q)。
    • 修正了錯誤 GH-15514 (Configure 錯誤:genif.sh:語法錯誤)。
    • 修正了錯誤 GH-15565 (編譯期間 --disable-ipv6 產生錯誤 EAI_SYSTEM not found)。
    • 修正了錯誤 GH-15587 (在 arm 32 位元上發生 CRC32 API 建置錯誤)。
    • 修正了錯誤 GH-15330 (不要掃描產生器框架超過一次)。
    • 修正了內部列舉常數 AST 中未初始化的 lineno。
  • Curl
    • 修正了錯誤 GH-15547 (curl_multi_select 在 timeout 引數上的溢位)。
  • DOM
    • 修正了錯誤 GH-15551 (ext/dom/xml_common.h 中發生 Segmentation fault (存取空指標))。
    • 修正了錯誤 GH-15654 (ext/dom/nodelist.c 中的帶號整數溢位)。
  • Fileinfo
    • 修正了錯誤 GH-15752 (使用空檔名引數呼叫 finfo_file 的錯誤訊息不正確)。
  • FPM
  • MySQLnd
    • 修正了錯誤 GH-15432 (查詢向量時發生堆積損壞)。
  • Opcache
    • 修正了錯誤 GH-15661 (存取 Zend/Optimizer/zend_inference.c 中的空指標)。
    • 修正了錯誤 GH-15658 (Zend/zend_vm_execute.h 中發生區段錯誤)。
  • SAPI
  • Standard
    • 修正了錯誤 GH-15552 (ext/standard/scanf.c 中帶號整數溢位)。
  • Streams
    • 修正了錯誤 GH-15628 (php_stream_memory_get_buffer() 未以零結尾)。

版本 8.3.11

  • 核心
    • 修正了錯誤 GH-15020 (Zend/Optimizer/escape_analysis.c 中的記憶體洩漏)。
    • 修正了錯誤 GH-15023 (Zend/zend_ini.c 中的記憶體洩漏)。
    • 修正了錯誤 GH-13330 (有條件地附加 -Wno-implicit-fallthrough 旗標)。
    • 修正在 network.c 中未初始化的記憶體。
    • 修正了錯誤 GH-15108 (關閉期間銷毀產生器時發生區段錯誤)。
    • 修正了錯誤 GH-15275 (暫停產生器委派的 GC 期間發生崩潰)。
  • Curl
    • 修正了 curl_error 傳回空字串的情況。
  • DOM
    • 修正了在移除 doctype 並使用 foreach 迭代時發生的 UAF。
  • FFI
    • 修正了錯誤 GH-14286 (ffi 列舉型別 (當列舉沒有名稱時) 造成記憶體洩漏)。
  • Hash
    • 修正在 xxh3 中轉換 shm 中的陣列資料時發生崩潰。
  • Intl
    • 修正了錯誤 GH-15087 (IntlChar::foldCase() 的 $option 不是可選的)。
  • Opcache
    • 修正了錯誤 GH-13817 (在第 4 次傳遞後為已啟用觀察器時發生區段錯誤)。
    • 修正了錯誤 GH-13775 (可能與 opcache SHM 位置相關的記憶體洩漏)。
  • Output
    • 修正了錯誤 GH-15179 (ext/standard/url_scanner_ex.re 中發生區段錯誤 (空指標取消引用))。
  • PDO_Firebird
    • 修正了 firebird_handle_get_attribute() 中的虛假 fallthrough 路徑。
  • PHPDBG
    • 修正了錯誤 GH-13199 (使用 libedit/readline 時,phpdbg 本機主控台模式中 EOF 發出多餘的提示)。
    • 修正了錯誤 GH-15268 (phpdbg 中堆積緩衝區溢位 (zend_hash_num_elements() Zend/zend_hash.h))。
    • 修正了錯誤 GH-15210 (在觀察點配置上使用後釋放)。
  • Soap
    • 修正了錯誤 #55639 (Digest 驗證無法運作)。
    • 修正 SoapFault 屬性銷毀。
    • 修正了錯誤 GH-15252 (自 PHP 8.3.9 起,使用 classmap 建構子選項時,SOAP XML 損毀)。
  • Standard
    • 修正了在 stream 函式中傳遞非有限逾時值。
    • 修正了 GH-14780 p(f)sockopen 逾時溢位。
  • Streams
    • 修正了錯誤 GH-15028 (ext/phar/stream.c 中的記憶體洩漏)。
    • 修正了錯誤 GH-15034 (檔案大於 2GB 時,stream_notification_callback byte_max 參數上的整數溢位)。
    • 還原了 GH-14930 的修正 (自訂串流包裝函式 dir_readdir 輸出截斷為 255 個字元)。
  • Tidy
    • 修正 ext/tidy basedir 限制程式碼中的記憶體洩漏。

版本 8.3.10

  • 核心
    • 修正了錯誤 GH-13922 (修正 sysconf(_SC_GETPW_R_SIZE_MAX) == -1 的系統支援)。
    • 修正了錯誤 GH-14626 (修正大型區塊的 is_zend_ptr())。
    • 修正了錯誤 GH-14590 (FPM 測試 gh13563-conf-bool-env.phpt 中的記憶體洩漏)。
    • 修正了 OSS-Fuzz #69765。
    • 修正了錯誤 GH-14741 (Zend/zend_types.h 中的區段錯誤)。
    • 修正了錯誤 GH-14969 (使用 __toString() 的屬性強制轉換中發生使用後釋放)。
  • Dom
    • 修正了錯誤 GH-14702 (DOMDocument::xinclude() 崩潰)。
  • Fileinfo
    • 修正了錯誤 GH-14888 (README.REDIST.BINS 參照不存在的 LICENSE)。
  • Gd
    • ext/gd/tests/gh10614.phpt:如果沒有 PNG 支援,則跳過。
    • 恢復警告而不是致命錯誤。
  • LibXML
    • 修正了錯誤 GH-14563 (使用 libxml2 v2.13.0 時建置失敗)。
  • Opcache
    • 修正了錯誤 GH-14550 (當啟用 Zend DTrace 時,沒有警告訊息指出 opcache.jit 被隱式停用)。
  • Output
    • 修正了錯誤 GH-14808 (Zend/zend_string.h 中,使用空的輸出緩衝區時發生意外的空指標)。
  • PDO
    • 修正了錯誤 GH-14712 (使用 PDORow 存取空屬性時發生崩潰)。
  • Phar
    • 修正了錯誤 GH-14603 (zip 條目中的空字串)。
  • PHPDBG
    • 修正了錯誤 GH-14596 (使用 ASAN 和 ZEND_RC_DEBUG=1 時發生崩潰)。
    • 修正了錯誤 GH-14553 (echo 輸出在 NULL 位元組處被截斷)。
  • Shmop
    • 修正了錯誤 GH-14537 (shmop Windows 11 造成處理程序崩潰)。
  • SPL
    • 修正了錯誤 GH-14639 (ext/spl/spl_observer.c 中空指標內的成員存取)。
  • Standard
    • 修正了錯誤 GH-14775 (帶有負 step 引數的範圍函式溢位)。
    • 修正了 32 位元 wordwrap 測試失敗。
    • 修正了錯誤 GH-14774 (time_sleep_until 溢位)。
  • Streams
    • 修正了錯誤 GH-14930 (自訂串流包裝函式 dir_readdir 輸出在 PHP 8.3 中被截斷為 255 個字元)。
  • Tidy
    • 修正了 tidy_repair_file() 中的記憶體洩漏。
  • Treewide
    • 修正了與 libxml2 2.13.2 的相容性。
  • XML
    • 從即將被棄用的 libxml 欄位移開。
    • 修正了錯誤 GH-14834 (使用 --with-pear 時安裝 PHP 時發生錯誤)。

版本 8.3.9

  • 核心
    • 修正了錯誤 GH-14315 (不相容的指標型別警告)。
    • 修正了錯誤 GH-12814 (在 Apple Silicon 上執行時,macOS 14 上太早達到 max_execution_time)。
    • 修正了錯誤 GH-14387 (在 Generator->throw() 期間,從值中產生值的解構函式中進行堆疊走訪時發生崩潰)。
    • 修正了錯誤 GH-14456 (嘗試使用私有建構子初始化類別會呼叫解構函式)。
    • 修正了錯誤 GH-14510 (由於缺少 pthread_attr_destroy() 呼叫而導致的記憶體洩漏)。
    • 修正了錯誤 GH-14549 (fclose 的不相容函式指標型別)。
  • BCMatch
    • 修正了錯誤 (當 mod = -1 時,bcpowmod() 傳回 1,而必須是 0)。
  • Curl
    • 修正了錯誤 GH-14307 (測試 curl_basic_024 在 curl 8.8.0 中失敗)。
  • DOM
    • 修正了錯誤 GH-14343 (xml 和 dom 中的記憶體洩漏)。
  • FPM
    • 修正了錯誤 GH-14037 (PHP-FPM ping.path 和 ping.response 設定變數在狀態池中被忽略)。
  • GD
    • 修正了 imagecolorset() 的參數編號。
  • Intl
    • 修正了 SpoofChecker 中的參考處理。
  • MySQLnd
    • 部分修正了錯誤 GH-10599 (當在具有作用中 mysqli 連線的類別中使用自參考匿名函式時,Windows 上發生 Apache 崩潰)。
  • Opcache
    • 修正了錯誤 GH-14267 (opcache.jit=off 不允許在執行階段啟用 JIT)。
    • 修正了 FreeBSD/amd64 上 JIT 中的 TLS 存取。
    • 修正了錯誤 GH-11188 (在 ARM64 中建置 TSRM 時發生錯誤)。
  • PDO ODBC
    • 修正了錯誤 GH-14367 (與 iODBC 不相容的 SDWORD 型別)。
  • PHPDBG
    • 修正了錯誤 GH-13681 (在新增觀察點失敗時發生區段錯誤)。
  • Soap
    • 修正了錯誤 #47925 (PHPClient 無法解壓縮回應)。
    • 修正了遺失的錯誤還原程式碼。
    • 修正了呼叫 SoapServer::setObject() 兩次時的記憶體洩漏。
    • 修正了呼叫 SoapServer::setClass() 兩次時的記憶體洩漏。
    • 修正了在 ext-soap 中讀取 zlib ini 設定。
    • 修正了字串函式名稱查閱中的記憶體洩漏。
    • 修正了錯誤 #69280 (SoapClient classmap 不支援完整限定類別名稱)。
    • 修正了錯誤 #76232 (SoapClient Cookie 標頭分號)。
    • 修正了呼叫 SoapFault::__construct() 兩次時的記憶體洩漏。
  • Sodium
    • 修正了在某些函式失敗時,ext/sodium 中的記憶體洩漏。
  • SPL
    • 修正了錯誤 GH-14290 (擴充功能 spl 中空指標內的成員存取)。
  • Standard
    • 修正了錯誤 GH-14483 (修正了檢查抽象命名空間 Unix socket 長度的 off-by-one 錯誤)。
  • Streams
    • 修正了錯誤 GH-11078 (PHP 嚴重錯誤會觸發指標被釋放但未配置的錯誤,以及 ptr 的 malloc:雙重釋放錯誤)。

版本 8.3.8

  • CGI
    • 修正了 Windows 上的緩衝區限制,將讀取呼叫的使用取代為 _read。
    • 修正了錯誤 GHSA-3qgc-jrrr-25jv (繞過 CVE-2012-1823,PHP-CGI 中的引數注入)。 (CVE-2024-4577)
  • CLI
    • 修正了錯誤 GH-14189 (PHP 互動式 Shell 輸入狀態錯誤地處理引用的 heredoc 字面值)。
  • 核心
    • 修正了錯誤 GH-13970 (對於非編譯時期運算式,#[Attribute] 旗標型別的驗證不正確)。
  • DOM
    • 修正了在移除實體宣告時,仍然有實體參考時發生的崩潰。
    • 修正了在 C14N 中未正確處理的參考。
    • 修正了在迭代器耗盡時呼叫 childNodes next() 時發生的崩潰。
    • 修正了在處理包含文字節點的片段時,ParentNode::append() 中的崩潰。
  • Filter
    • 修正了錯誤 GHSA-w8qr-v226-r27w (filter_var FILTER_VALIDATE_URL 中的篩選器繞過)。 (CVE-2024-5458)
  • FPM
    • 修正了錯誤 GH-14175 (在 systemd 狀態中顯示十進位數字而不是科學符號)。
  • Hash
    • ext/hash:交換 `__has_builtin` 和 `__GNUC__` 的檢查順序 (Saki Takamachi)
  • Intl
    • 修正了在沒有 C++17 編譯器的系統上發生的建置迴歸。
  • MySQLnd
    • 修正了錯誤 GH-14255 (mysqli_fetch_assoc 回報來自巢狀查詢的錯誤)。
  • Opcache
    • 修正了錯誤 GH-14109 (修正了 shm 中意外持續存在的內部類別常數)。
  • OpenSSL
    • PHP 中的 openssl_private_decrypt 函式,當使用 PKCS1 填補時 (OPENSSL_PKCS1_PADDING,這是預設值),除非它與包含此提取要求變更的 OpenSSL 版本一起使用:https://github.com/openssl/openssl/pull/13817 (rsa_pkcs1_implicit_rejection),否則容易受到 Marvin 攻擊。這些變更屬於 OpenSSL 3.2 的一部分,並且也已向後移植到各種 Linux 發行版的穩定版本,以及自上次發佈以來為 Windows 提供的 PHP 建置版本。所有發行者和建置者都應確保使用此版本以防止 PHP 容易受到攻擊。
  • Standard
    • 修正了錯誤 GHSA-9fcc-425m-g385 (繞過 CVE-2024-1874)。 (CVE-2024-5585)
  • XML
    • 修正了錯誤 GH-14124 (在特定記憶體限制下,XML 擴充功能發生區段錯誤)。
  • XMLReader
    • 修正了錯誤 GH-14183 (XMLReader::open() 無法覆寫)。

版本 8.3.7

  • 核心
    • 修正了在沒有執行緒支援的情況下,使用 Linux/uclibc-ng 建置的 zend_call_stack。
    • 修正了錯誤 GH-13772 (當啟用 JIT 時,觀察器 fcall 處理程式中的 execute_data->opline 指標無效)。
    • 修正錯誤 GH-13931 (在 Zend/zend_opcode.c 中對空指標應用零偏移)。
    • 修正錯誤 GH-13942 (使 zend-max-execution-timers 的行為與其他逾時實作一致)。
    • 修正錯誤 GH-14003 (使用可呼叫轉換參數時,未完成呼叫的清理中斷)。
    • 修正錯誤 GH-14013 (在 configure 中附加錯誤的 dnl)。
    • 修正錯誤 GH-10232 (如果在常數解析期間發生自動載入,則檔案名稱和行號會被錯誤地識別)。
    • 修正錯誤 GH-13727 (缺少 void 關鍵字)。
  • 纖程
    • 修正錯誤 GH-13903 (執行 copy() 時,ASAN 誤報下溢)。
  • Fileinfo
    • 修正錯誤 GH-13795 (在 big-endian PPC 上,ext/fileinfo/tests/bug78987.phpt 中的測試失敗)。
  • FPM
    • 修正錯誤 GH-13563 (在 FPM 設定中透過 env 設定布林值失敗)。
  • Intl
    • 修正 icu 74 及更高版本的建置。
  • MySQLnd
    • 修正 32 位元非快速路徑平台上超出範圍的位移。
  • Opcache
    • 修正錯誤 GH-13433 (使用 opcache.preload 時,zend_class_init_statics 中的分段錯誤)。
    • 修正跨編譯單元的靜態呼叫的不正確假設。
  • OpenSSL
    • 修正錯誤 GH-10495 (OpenSSL 串流上的 feof 無限期掛起)。
  • PDO SQLite
    • 修正 GH-13984 (現在在 memcmp 之前會檢查緩衝區大小)。
    • 修正 GH-13998 (正確管理 agg_context->val 的參考計數)。
  • Phar
    • 修正錯誤 GH-13836 (將 Phar 中的檔案重新命名為已存在的檔案名稱會導致 NULL 指標解引用)。
    • 修正錯誤 GH-13833 (在 zend_hash.c 中對空指標應用零偏移)。
    • 修正在呼叫 EVP_SignInit 之前的潛在 NULL 指標解引用。
  • PHPDBG
    • 修正錯誤 GH-13827 (phpdbg_frame 中 'zval' 類型的空指標存取)。
  • Posix
    • 修正 ext/posix 中可重入函數的使用。
  • Session
    • 修正錯誤 GH-13856 (在 ext/session/mod_files.c 中,'ps_files' 類型的空指標內的成員存取)。
    • 修正錯誤 GH-13891 (使用 ini_set 和 session.trans_sid_hosts 時的記憶體洩漏和分段錯誤)。
    • 修正在 windows 上檔案模式的緩衝區 _read/_write 大小限制。
  • Streams
    • 修正 Windows 上 file_get_contents() 失敗,並顯示「errno=22 無效參數」的問題。
    • 修正錯誤 GH-13264 (第 1 部分 - 串流篩選失敗時的記憶體洩漏)。
    • 修正錯誤 GH-13860 (ext/openssl/xp_ssl.c 中不正確的 PHP_STREAM_OPTION_CHECK_LIVENESS 情況 - 導致使用已失效的 Socket)。
    • 修正錯誤 GH-11678 (在 musl 1.2.4 上建置失敗 - lfs64)。
  • Treewide
    • 修正 gcc-14 Wcalloc-transposed-args 警告。

版本 8.3.6

  • 核心
    • 修正 GH-13569 (掃描 WeakMaps 時,GC 緩衝區不必要地增長到 GC_MAX_BUF_SIZE)。
    • 修正錯誤 GH-13612 (具有弱參考的解構函數中的損毀記憶體)。
    • 修正錯誤 GH-13446 (在完成後還原例外處理常式)。
    • 修正錯誤 GH-13784 (AX_GCC_FUNC_ATTRIBUTE 失敗)。
    • 修正錯誤 GH-13670 (當解構函數中建立大量物件時,GC 無法良好擴展)。
  • DOM
    • 新增一些遺失的 ZPP 檢查。
    • 修正 XPath 評估結果中潛在的記憶體洩漏。
  • FPM
    • 修正 GH-11086 (FPM:在守護進程模式下,設定測試會執行兩次)。
    • 修正 fpm_shm_free() 中不正確的檢查。
  • GD
    • 修正錯誤 GH-12019 (在功能測試中新增 GDLIB_CFLAGS)。
  • Gettext
    • 修正當 gettext 0.22.5 的類別設定為 LC_ALL 時,使用 dcgettext/dcngettext 呼叫引發的 sigabrt。
  • MySQLnd
    • 修正 GH-13452 (修正交握回應 [mysqlnd])。
    • 修正 check_mb_eucjpms() 中不正確的字元集長度。
  • Opcache
    • 修正 GH-13508 (當 op1 為 null 時,JIT 編譯的 QM_ASSIGN 可能會被最佳化掉)。
    • 修正 GH-13712 (當載入 opcache 時,呼叫內部 trait 的 trait 方法時,已啟用觀察器會發生分段錯誤)。
  • Random
    • 修正錯誤 GH-13544 (針對具有未知模式的 mt_srand 的 Pre-PHP 8.2 相容性)。
    • 修正錯誤 GH-13690 (當使用 MT_RAND_PHP 時,請求之間未正確重設全域 Mt19937)。
  • Session
    • 修正錯誤 GH-13680 (session_decode 和編譯錯誤的分段錯誤)。
  • SPL
    • 修正錯誤 GH-13685 (zend_string.h 中出現非預期的空指標)。
  • Standard
    • 修正錯誤 GH-11808 (測試修改的即時檔案系統)。
    • 修正 GH-13402 (在 mail() 的 $additional_headers 中新增 `\n` 的驗證)。
    • 修正錯誤 GH-13203 (在 Windows 上,file_put_contents 在超過 4GB 的字串上失敗)。
    • 修正錯誤 GHSA-pc52-254m-w9w7 (透過 proc_open 的陣列式 $command 參數進行命令注入)。(CVE-2024-1874)
    • 修正錯誤 GHSA-wpj3-hf5j-x4v4 (由於部分 CVE-2022-31629 修復,__Host-/__Secure- Cookie 繞過)。(CVE-2024-2756)
    • 修正錯誤 GHSA-h746-cjrr-wfmr (password_verify 可能會錯誤地傳回 true,開啟 ATO 風險)。(CVE-2024-3096)
    • 修正錯誤 GHSA-fjp9-9hwx-59fq (mb_encode_mimeheader 對某些輸入無限期執行)。(CVE-2024-2757)
    • 修正錯誤 GH-13932 (嘗試修正 Windows 建置上的 mbstring) (msvc)。

版本 8.3.4

  • 核心
    • 修正在關閉時 ZTS 持久資源崩潰的問題。
  • Curl
    • 修正由於 libcurl 8.6.0 中的字串變更而導致的測試失敗。
  • DOM
    • 修正當具有極深樹狀結構時,移除命名空間時不太可能發生的記憶體洩漏。
    • 修正 DOMNodeList 和 DOMNodeMap 維度中的參考存取。
  • Fileinfo
    • 修正錯誤 GH-13344 (finfo::buffer(): 無法識別資料 0:(null),回溯)。
  • FPM
    • 修正錯誤 #75712 (php-fpm 中的 getenv 不應讀取 $_ENV, $_SERVER)。
  • GD
    • 修正錯誤 GH-12019 (在系統 gd 函式庫中偵測影像格式)。
  • MySQLnd
    • 修正錯誤 GH-11950 ([mysqlnd] 如果已設定 CR_SERVER_GONE_ERROR,則修正為不將 CR_MALFORMED_PACKET 設定為錯誤)。
  • PDO
    • 修正各種 PDORow 錯誤。
  • PGSQL
    • 修正錯誤 GH-13354 (pg_execute/pg_send_query_params/pg_send_execute 透過引用傳遞 null 值)。
  • SPL
    • 修正錯誤 GH-13531 (在 PHP 8.2.15 中取消序列化後,無法調整 SplfixedArray 的大小)。
  • Standard
    • 修正錯誤 GH-13279 (在 uksort 中就地修改期間,陣列不穩定)。
    • 修正第二個運算元緩衝區大小(雖然目前未使用)的陣列鍵作為雜湊到字串(不區分大小寫)比較中的錯字。
  • XML
    • 修正錯誤 GH-13517 (使用 --with-expat 建置時,多個測試失敗)。

版本 8.3.3

  • 核心
    • 修正 zend-max-execution-timers 建置中的計時器洩漏。
    • 修正錯誤 GH-12349 (在 ARM 上使用 mold 時的連結失敗)。
    • 修正錯誤 GH-13097 (在 trigger_error / 拋出例外中匿名類別參考)。
    • 修正錯誤 GH-13177 (PHP 8.3.2:在 trait 中使用時,不允許最終私有建構子)。
    • 修正錯誤 GH-13215 (GCC 14 建置失敗)。
  • Curl
    • 修正 curl_multi_init() 中遺失的錯誤檢查。
  • FPM
    • 修正錯誤 GH-12996 (當路徑中有加號時,使用 Apache ProxyPassMatch 的不正確 SCRIPT_NAME)。
  • GD
    • 修正錯誤 GH-10344 (imagettfbbox(): 無法找到/開啟字型 UNC 路徑)。
    • 修正錯誤 GH-10614 (當旋轉 90 度時,imagerotate 會將圖片全部變黑)。
  • LibXML
    • 修正實體參考和預定義實體的崩潰。
  • MySQLnd
    • 修正錯誤 GH-12107 (當執行兩次傳回結果集的預存程序時,PHP 會崩潰)。
  • Opcache
    • 修正錯誤 GH-13145 (strtok() 不是編譯時間)。
    • 修正 range() 的類型推斷。
    • 修正錯誤 GH-13232 (當 JIT 關閉但 JIT_debug 仍開啟時,將會報告分段錯誤)。
  • OpenSSL
    • 修正在未設定 OPENSSL_NO_ENGINE 時,LibreSSL 未定義參考的問題。(David Carlier)。
  • PDO_Firebird
    • 修正 GH-13119 (已變更為使用 `H` 格式將浮點數和雙精度值轉換為字串)。
  • Phar
    • 修正錯誤 #71465 (PHAR 不知道 litespeed)。
    • 修正錯誤 GH-13037 (PharData 錯誤地解壓縮 zip 檔案)。
  • Random
    • 修正錯誤 GH-13138 (Randomizer::pickArrayKeys() 未偵測到損壞的引擎)。
  • Session
    • 修正錯誤 GH-12504 (當自動載入器中發生嚴重錯誤時,會寫入損毀的 session)。
  • Standard
    • 修正錯誤 GH-13094 (range(9.9, '0') 會導致分段錯誤)。
  • Streams
    • 修正錯誤 GH-13071 (使用可 mmap 的來源串流複製大型檔案可能會耗盡可用記憶體並失敗)。

版本 8.3.2

  • 核心
    • 修正錯誤 GH-12953 (當載入具有超過 11k 個元素的 composer classmaps 時,SSA 完整性驗證失敗的誤報)。
    • 修正錯誤 GH-12999 (當 strnlen 不支援時,建置 zend_strnlen)。
    • 修正錯誤 GH-12966 (缺少交叉編譯的第三個引數,因此 Autoconf 不會發出警告)。
    • 修正錯誤 GH-12854 (8.3 - 作為最終 trait 使用的方法,無法在 Reflection 中正確報告可見性)。
  • Cli
    • 修正當使用路由器指令碼和 max_input_time 時,內建網路伺服器中的不正確逾時。
  • DOM
    • 修正錯誤 GH-12870 (建立 xmlns 屬性會導致 DOMException)。
    • 修正當在沒有文件的情況下使用 toggleAttribute() 時發生的崩潰。
    • 修正在 adoptNode 中帶有屬性參考的崩潰。
    • 修正錯誤 GH-13012 (當屬性順序不同時,DOMNode::isEqualNode() 不正確)。
  • FFI
    • 修正錯誤 GH-9698 (stream_wrapper_register 會在 FFI\CData 中崩潰)。
    • 修正錯誤 GH-12905 (FFI::new 與觀察者互動不佳)。
  • Intl
    • 修正 GH-12943 (IntlDateFormatter::__construct 接受 'C' 作為有效地區設定)。
  • Hash
    • 修正錯誤 GH-12936 (如果使用 sha512 處理 >= 4GiB 的字串,hash() 函數會無限期掛起)。
  • ODBC
    • 修正具有持續連線時,Apache 關閉時的崩潰。
  • Opcache
    • 修正 oss-fuzz #64727 (當 DIM 與結果變數相同時,JIT 未定義的陣列鍵警告可能會使用 NULL 覆寫 DIM)。
    • 新增針對 SELinux mprotect execheap 問題的解決方案。請參閱 https://bugzilla.kernel.org/show_bug.cgi?id=218258。
  • OpenSSL
    • 修正錯誤 GH-12987 (openssl_csr_sign 可能會在錯誤時洩漏新憑證)。
  • PDO
    • 修正 GH-12969 (修正 PDO::getAttribute() 以取得 PDO::ATTR_STRINGIFY_FETCHES)。
  • PDO_ODBC
    • 修正錯誤 GH-12767 (無法使用 setAttribute() 開啟自動提交模式)。
  • PGSQL
    • 修正 auto_reset_persistent 處理和 allow_persistent 類型。
    • 修正錯誤 GH-12974 (當使用 pg_pconnect() 時,Apache 在關閉時崩潰)。
  • Phar
    • 修正錯誤 #77432 (包含 phar 檔案時的分段錯誤)。
  • PHPDBG
    • 修正錯誤 GH-12962 (phpdbg_prompt.c 中 init_file 的雙重釋放)。
  • SimpleXML
    • 修復取得 SimpleXMLElement 未初始化屬性的位址導致崩潰的問題。
    • 修正錯誤 GH-12929 (使用 stream_wrapper_register 的 SimpleXMLElement 可能會導致分段錯誤)。
  • Tidy
    • 修正錯誤 GH-12980 (tidynode.props.attribute 缺少「布林屬性」和空屬性)。

版本 8.3.1

  • 核心
    • 修正錯誤 GH-12758 / GH-12768 (ZEND_FUNC_GET_ARGS 和 ZEND_BIND_STATIC 內的 OOM 處理器中存在無效的 opline)。
    • 修正多個遺失的 NULL 檢查。
    • 修正錯誤 GH-12835 (內部 __call 上的 call->extra_named_params 洩漏)。
    • 修正錯誤 GH-12826 (巢狀迴圈中出現奇怪的指標問題)。
  • FPM
    • 修正錯誤 GH-12705 (fpm_status_export_to_zval 中發生分段錯誤)。
  • FTP
    • 修正錯誤 GH-9348 (FTP 與 SSL 工作階段重複使用)。
  • LibXML
    • 修正 libxml2 2.12.0 的測試失敗。
  • MySQLnd
    • 避免使用未初始化的結構。
    • 修正錯誤 GH-12791 (MySQLnd 偵錯程式碼中可能對 NULL 進行取值)。
  • Opcache
    • 修正 JIT 錯誤 (函數 JIT 在發出無效偏移錯誤的同時發出「未初始化的字串偏移」警告)。
    • 修正 JIT 錯誤 (JIT 在擲出錯誤的同時發出「嘗試指派非物件的屬性」警告)。
  • PDO PGSQL
    • 修正 PDO::pgsqlGetNotify() 中 $fetchMode 的預設值 (kocsismate)
  • SOAP
    • 修正錯誤 GH-12838 ([SOAP] 未刪除暫時 WSDL 快取檔案)。
  • Standard
    • 修正 GH-12745 (http_build_query() 的 $arg_separator 預設 null 引數被隱式強制轉換為字串)。

版本 8.3.0

  • Bcmath
    • 修正 GH-11761 (從數字中移除尾隨零) (jorgsowa)
  • CLI
    • 在內建伺服器中新增 pdeathsig,以便在主要程序被終止時終止工作者。
    • 修正錯誤 GH-11104 (對於沒有腳本的 CLI,STDIN/STDOUT/STDERR 無法使用)。
    • 實作 GH-10024 (使用 php -l 支援一次檢查多個檔案)。
  • 核心
    • 修正 GH-11388 (從 trait 匯入方法時允許 "final" 修飾詞)。
    • 修正錯誤 GH-11406 (使用解封裝和魔術方法閉包時發生分段錯誤)。
    • 修正錯誤 GH-9388 (改進 unset 屬性和 __get 類型不相容錯誤訊息)。
    • 現在為訊號處理常式設定 SA_ONSTACK,以更方便其他處理程序中的程式碼,例如 Go 的 cgo。
    • 現在在停用訊號時設定 SA_ONSTACK。
    • 修正 GH-9649:訊號處理常式現在會執行無操作,而不是在非 TSRM 管理的執行緒上執行時當機。
    • 新增纖程的陰影堆疊支援。
    • 修正錯誤 GH-9965 (修正具有副作用的預設引數意外快取)。
    • 實作 GH-10217 (使用 strlen() 來判斷 class_name 長度)。
    • 修正錯誤 GH-8821 (改進常數運算式中錯誤的行號)。
    • 修正錯誤 GH-10083 (允許在 & 和參數之間使用註解)。
    • 現在預設為 Linux 上的 ZTS 組建啟用 Zend 最大執行計時器。
    • 修正錯誤 GH-10469 (不允許在執行時間設定的 open_basedir 路徑中使用 ..)。
    • 修正錯誤 GH-10168GH-10582 (使用解構函式和 VM 傳回值的各種分段錯誤)。
    • 修正錯誤 GH-10935 (如果類別從其父類別繼承了靜態屬性,則使用 trait 不會重新宣告靜態屬性)。
    • 修正錯誤 GH-11154 (空陣列上的負索引不會影響下一個選取的索引)。
    • 修正錯誤 GH-8846 (為沒有父類別的類別實作延遲早期繫結)。
    • 修正錯誤 #79836 (concat_function 中的分段錯誤)。
    • 修正錯誤 #81705 (在帶有串連運算的 set_error_handler 上出現類型混淆/UAF)。
    • 修正 GH-11348 (從魔術方法建立的閉包不接受具名引數)。
    • 修正 GH-11388 (從 trait 匯入方法時允許 "final" 修飾詞)。
    • 修正錯誤 GH-11406 (使用解封裝和魔術方法閉包時發生分段錯誤)。
    • 修正錯誤 GH-11507 (8.3 中字串串連效能降低)。
    • 修正 GH-11488 (在 union null 類型上遺失「必要參數之前的選用參數」棄用)。
    • 實作 #[\Override] 屬性 RFC。
    • 修正錯誤 GH-11601 (不正確處理解除堆疊和正常結束例外)。
    • 為 OpenBSD 新增 zend_call_stack_get 實作。
    • 在 zend_eval_const_expr() 中新增堆疊限制檢查。
    • 在 gc_status() 中公開收集循環所花費的時間。
    • 移除僅可透過項目值存取的 WeakMap 項目。
    • 在 INI 更新時解析 open_basedir 路徑。
    • 修正 oss-fuzz #60741 (open_basedir 中的洩漏)。
    • 修正因 OOM 錯誤而釋放某些未完整初始化物件期間的分段錯誤 (PDO、SPL、XSL)。
    • 引入 Zend 保護遞迴保護以修正 __debugInfo 問題。
    • 修正 oss-fuzz #61712 (二元運算期間,錯誤處理常式出現判斷提示失敗)。
    • 修正 GH-11847 (已啟用 DTrace 的組建已損壞)。
    • 修正 OSS Fuzz #61865 (在錯誤處理常式中針對未設定的宣告屬性使用 ++/-- 時出現未定義的變數)。
    • 修正檢查使用者串流是否可轉換時發出的警告。
    • 修正錯誤 GH-12123 (在 MacOS 上使用 C++ 擴充功能時,使用 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX 會產生編譯錯誤)。
    • 修正錯誤 GH-12189 (trait 中的 #[Override] 屬性不會檢查父類別實作)。
    • 修正 OSS Fuzz #62294 (在字串變數上使用 ++/-- 後,取消設定變數時發出警告)。
    • 修正編譯記憶化運算式時發生的緩衝區下溢。
    • 修正 oss-fuzz #63802 (後置遞增/遞減的錯誤路徑中的 OP1 洩漏)。
  • Curl
    • 新增 Curl 選項和常數至 (包含) 版本 7.87。
  • Date
    • 實作更適合的日期/時間例外 RFC。
  • DOM
    • 修正錯誤 GH-8388 (DOMAttr 解除逸出字元參考)。
    • 修正錯誤 GH-11308 (getElementsByTagName() 為 O(N^2))。
    • 修正 #79700 (libxml oldNs 的錯誤使用會導致效能問題)。
    • 修正 #77894 (即使在正規化之後,DOMNode::C14N() 在產生的 DOMDocument 上速度非常慢)。
    • 還原對 DOMAttr::$value 和 DOMAttr::$nodeValue 擴充的變更。
    • 修正錯誤 GH-11500 (在 createElementNS() 中重複使用命名空間會產生錯誤的輸出)。
    • 實作 DOMDocument::adoptNode()。先前這總是擲出「尚未實作」例外。
    • 修正錯誤 GH-9628 (從 \DOMDocument 隱式移除節點會中斷現有參考)。
    • 新增 DOMNode::contains() 和 DOMNameSpaceNode::contains()。
    • 新增 DOMElement::getAttributeNames()。
    • 新增 DOMNode::getRootNode()。
    • 新增 DOMElement::className 和 DOMElement::id。
    • 新增 DOMParentNode::replaceChildren()。
    • 新增 DOMNode::isConnected 和 DOMNameSpaceNode::isConnected。
    • 新增 DOMNode::parentElement 和 DOMNameSpaceNode::parentElement。
    • 新增 DOMNode::isEqualNode()。
    • 新增 DOMElement::insertAdjacentElement() 和 DOMElement::insertAdjacentText()。
    • 新增 DOMElement::toggleAttribute()。
    • 修正錯誤 GH-11792 (LIBXML_NOXMLDECL 未實作或已損壞)。
    • adoptNode 現在會遵循嚴格的錯誤檢查屬性。
    • 使 DOMChildNode 父項檢查與規格一致。
    • 修正錯誤 #80927 (建立屬性節點後移除 documentElement:可能的使用後釋放)。
    • 修正各種命名空間前置詞衝突解析錯誤。
    • 修正不使用前置詞呼叫 createAttributeNS() 而導致元素預設命名空間變更的問題。
    • 修正 GH-11952 (透過 libxml_set_external_entity_loader 封鎖實體載入時出現混淆的警告)。
    • 修正已解除配置並重新配置的文件節點中損壞的快取失效。
    • 修正在 C++ 中包含 php_libxml.h 標頭時發生的編譯錯誤。
    • 修正錯誤 #47531 (無法移除多餘的 xmlns: 宣告)。
  • Exif
    • 移除 exif_process_TIFF_in_JPEG() 中不必要的程式碼路徑。
  • FFI
    • 實作 GH-11934 (允許將 CData 傳遞至結構和/或聯集欄位)。
  • Fileinfo
    • 將捆綁的 libmagic 升級至 5.43。
    • 修正 GH-11408 (無法組建 PHP 8.3.0 alpha 1 / fileinfo 擴充功能)。
  • FPM
    • status.listen 共用集區現在使用與其共用集區相同的 php_values (包括 expose_php) 和 php_admin_value。
    • 在 fpm 通訊端未在預期路徑上註冊時,新增寫入記錄檔的警告。
    • 修正錯誤 #76067 (system() 函式呼叫會洩漏 php-fpm 接聽通訊端)。
    • 修正 GH-12077 (PHP 8.3.0RC1 損壞 socket-close-on-exec.phpt)。
  • GD
    • 移除 imagerotate "ignore_transparent" 引數,因為它沒有任何效果。
  • Intl
    • 為 numfmt_set_pattern 新增樣式格式錯誤資訊。
    • 為 Spoofchecker 的類別新增 MIXED_NUMBERS 和 HIDDEN_OVERLAY 常數。
    • 更新 datefmt_set_timezone/IntlDateformatter::setTimezone 傳回類型。(David Carlier)。
    • 更新 IntlBreakInterator::setText 傳回類型。
    • 更新 IntlChar::enumCharNames 傳回類型。
    • 移除 IntlDateFormatter::construct 在使用無效的地區設定時擲出例外的 BC 中斷。
  • JSON
    • 新增 json_validate()。
  • LDAP
    • 棄用使用個別主機名稱和連接埠呼叫 ldap_connect()。
  • LibXML
    • 修正使用 -Werror=incompatible-function-pointer-types 和舊版 libxml2 時的編譯錯誤。
  • MBString
    • mb_detect_encoding 能夠更好地識別土耳其文字的正確編碼。
    • mb_detect_encoding 的「非嚴格」模式現在的行為與文件中所述一致。先前,如果輸入字串的相同位元組 (例如,第一個位元組) 在所有候選編碼中都無效,它會傳回 false。更廣泛地說,當看到無效位元組時,它會從考慮中移除候選編碼,如果相同的輸入位元組從考慮中移除所有剩餘的編碼,它會傳回 false。另一方面,如果除了其中一個之外的所有候選編碼都從考慮中移除,它會傳回最後剩餘的一個編碼,而不考慮稍後在字串中可能遇到多少編碼錯誤。這與文件中所述的行為不同,該文件指出:「如果將 strict 設定為 false,則會傳回最接近的符合編碼。」(Alex Dowad)
    • mb_strtolower、mb_strtotitle 和 mb_convert_case 為希臘字母 sigma 實作條件式大小寫規則。對於 mb_convert_case,條件式大小寫僅適用於 MB_CASE_LOWER 和 MB_CASE_TITLE 模式,不適用於 MB_CASE_LOWER_SIMPLE 和 MB_CASE_TITLE_SIMPLE。
    • mb_detect_encoding 能夠更好地識別帶有位元組順序標記的 UTF-8 和 UTF-16 字串。
    • mb_decode_mimeheader 依照 RFC 2047 的規定,將 QPrint 編碼 MIME 編碼文字中的底線解譯為空格;它們會轉換為空格。底線必須在此類 MIME 編碼文字中編碼為 "=5F"。
    • mb_encode_mimeheader 不再於 QPrint 編碼輸入字串時捨棄 NUL (零) 位元組。先前這會導致某些文字編碼 (尤其是 UTF-16 和 UTF-32) 中的字串被 mb_encode_mimeheader 損壞。
    • 實作 mb_str_pad() RFC。
    • 修正錯誤 GH-11514 (啟用 --enable-mbstring 時,PHP 8.3 組建失敗)。
    • 修正 mb_list_encodings() 傳回值的使用後釋放。
    • 修正錯誤 GH-11992 (utf_encodings.phpt 在 Windows 32 位元系統上失敗)。
  • mysqli
    • mysqli_fetch_object 會拋出 ValueError 而不是 Exception。
  • Opcache
    • 在 opcache 的 phpinfo 區段中新增啟動、重新啟動和強制重新啟動時間。
    • 修正 GH-9139:當 opcache.preload_user=root 時,允許 FFI 在 opcache.preload 中使用。
    • 在 cli 和 phpdbg SAPI 中,使 opcache.preload_user 始終為選填選項。
    • 允許在 FreeBSD 上建立頁面時設定 W/X 位元,即使系統設定不允許。
    • 在 Linux 上,為 zend_shared_alloc_create_lock() 新增 memfd API 的使用,以建立 opcache 鎖的抽象匿名檔案。
    • 避免從多個進程/執行緒重設 JIT 計數器處理常式。
    • 修正參考的 COPY_TMP 型別推斷。
  • OpenSSL
    • 新增 OPENSSL_CMS_OLDMIMETYPE 和 PKCS7_NOOLDMIMETYPE 常數,以切換 MIME 內容類型。
    • 修正 GH-11054:使用 PEM 公鑰時重設 OpenSSL 錯誤。
    • 在 openssl_pkey_new 中新增對其他 EC 參數的支援。
  • PCNTL
    • 現在 pcntl_signal 會設定 SA_ONSTACK。
    • 新增 SIGINFO 常數。
  • PCRE
    • 更新綁定的 libpcre2 至 10.42。
  • PGSQL
    • pg_fetch_object 會拋出 ValueError 而不是 Exception。
    • pg_cancel 使用執行緒安全的 PQcancel API 取代。
    • pg_trace 新增 PGSQL_TRACE_SUPPRESS_TIMESTAMPS/PGSQL_TRACE_REGRESS_MODE 常數支援。
    • pg_set_error_verbosity 新增 PGSQL_ERRORS_STATE 常數。
    • 在型別錯誤時,pg_convert/pg_insert 的 E_WARNING 已轉換為 ValueError/TypeError 例外。
    • 新增 pg_set_error_context_visibility 以設定錯誤訊息中 context 的可見性。
  • Phar
    • 修正 phar_rename_archive() 中的記憶體洩漏。
  • POSIX
    • 新增 posix_sysconf。
    • 新增 posix_pathconf。
    • 新增 posix_fpathconf。
    • 修正 zend_parse_arg_long 的布林指標引數賦值。
    • 新增 posix_eaccess。
  • Random
    • 新增 Randomizer::getBytesFromString()。
    • 新增 Randomizer::nextFloat()、::getFloat() 和 IntervalBoundary。
    • 為 NetBSD (10.x 起) 啟用 getrandom()。
    • 棄用 MT_RAND_PHP。
    • 修正 Randomizer::getFloat() 在某些情況下返回不正確結果的問題。
  • Reflection
    • 修正 GH-9470 (ReflectionMethod 建構子不應找到私有父類方法)。
    • 修正 GH-10259 (ReflectionClass::getStaticProperties 不需要 null 返回型別)。
  • SAPI
    • 修正 GH-11141 (無法開啟輸入檔案:應傳送到 stderr)。
  • Session
    • 修正錯誤 GH-11529 (處理 Apache 請求後發生崩潰)。
  • SimpleXML
    • 修正錯誤 GH-12192 (在 foreach 中呼叫 getName() 時,SimpleXML 會產生無限迴圈)。
    • 修正錯誤 GH-12208 (在 foreach 中使用型別轉換時,SimpleXML 會產生無限迴圈)。
    • 修正錯誤 #55098 (SimpleXML 迭代會產生無限迴圈)。
  • Sockets
    • 新增 SO_ATTACH_REUSEPORT_CBPF socket 選項,以便更嚴格地控制 CPU 核心的 socket 繫結。
    • 為 cbpf 過濾器新增 SKF_AD_QUEUE。
    • 如果 send/recv 需要使用 MSG_OOB,則新增 socket_atmark。
    • 新增 TCP_QUICKACK 常數,以便更嚴格地控制 ACK 延遲。
    • 為路徑 MTU 探索目的新增 DONTFRAGMENT 支援。
    • 為 divert 連接埠的原始 socket 新增 AF_DIVERT。
    • 為 updlite 協定支援新增 SOL_UPDLITE、UDPLITE_RECV_CSCOV 和 UDPLITE_SEND_CSCOV。
    • 新增 SO_RERROR、SO_ZEROIZE 和 SO_SPLICE netbsd 和 openbsd 常數。
    • 新增 TCP_REPAIR 以靜默關閉連線。
    • 新增 SO_REUSEPORT_LB freebsd 常數。
    • 新增 IP_BIND_ADDRESS_NO_PORT。
  • SPL
    • 修正 GH-11573 (RecursiveDirectoryIterator::hasChildren 速度很慢)。
  • Standard
    • unserialize() 發出的 E_NOTICE 已提升為 E_WARNING。
    • 如果輸入包含未使用的位元組,unserialize() 現在會發出新的 E_WARNING。
    • 使 array_pad 的 $length 警告訊息更不令人困惑。
    • 當開始標記化時,如果未提供這兩個引數,strtok 會發出 E_WARNING。
    • 如果 salt 產生失敗,password_hash() 現在會將原始 RandomException 鏈結到 ValueError。
    • 修正 GH-10239 (proc_get_status 之後的 proc_close 總是返回 -1)。
    • 改善 unpack() 在未提供足夠值時的警告訊息。
    • 修正 GH-11010 (當指定 INI_SCANNER_TYPED 旗標時,parse_ini_string() 現在會保留以數字開頭的未加引號字串的格式)。
    • 修正 GH-10742 (當標頭已傳送時,http_response_code 不會發出錯誤)。
    • 在 number_format() 中新增對負數位置四捨五入的支援。
    • 防止在 number_format() 中格式化十進位整數時發生精確度損失。
    • 新增在作業系統支援時,為 proc_open 使用 posix_spawn。
    • 為 strrchr() 新增 $before_needle 引數。
    • 修正 GH-11982 (str_getcsv 為未終止的封閉符號返回空位元組)。
    • 修正 "1" 上的 str_decrement()。
  • Streams
    • 修正錯誤 #51056:即使有資料可用,阻塞的 fread() 仍會阻塞。
    • 新增儲存用於開啟 xport 串流的原始路徑。
    • 實作 GH-8641 (透過 HTTP 永遠不會發出 STREAM_NOTIFY_COMPLETED)。
    • 修正錯誤 GH-10406 (PHP 8.3 上 redis socket 連線上的 fgets 失敗)。
    • 實作 GH-11242 (_php_stream_copy_to_mem:允許指定最大長度,而不分配該大小的緩衝區)。
    • 修正錯誤 #52335 (記憶體串流上的 fseek() 行為與檔案不同)。
    • 修正錯誤 #76857 (可以讀取「不存在」的檔案)。
  • XSLTProcessor
    • 修正錯誤 #69168 (DomNode::getNodePath() 返回無效路徑)。
  • ZIP
    • libzip 1.10.0 的 zip 擴充功能版本 1.22.0。
    • 新增新的錯誤巨集 (ER_DATA_LENGTH 和 ER_NOT_ALLOWED)。
    • 新增新的封存全域旗標 (ER_AFL_*)。
    • 新增 ZipArchive::setArchiveFlag 和 ZipArchive::getArchiveFlag 方法。

版本 8.2.26

  • CLI
    • 修正錯誤 GH-16373(在透過 shebang 啟動的 cli-server 中,不會略過路由器指令碼的 shebang)。
    • 修正錯誤 GHSA-4w77-75f9-2c8w(CLI SAPI 介面中 sapi_read_post_data 處理的堆積使用後釋放)。
  • COM
    • 修正對 SafeArray 資料的超出範圍寫入。
  • 核心
    • 修正錯誤 GH-16168(在 macOS 15 上使用 Xcode 16 clang 編譯時,php 8.1 和更早版本會立即崩潰)。
    • 修正錯誤 GH-16371(在 Zend/zend_weakrefs.c:646 中發生判斷提示失敗)。
    • 修正錯誤 GH-16515(呼叫跳板時,ZEND_ACC_RETURN_REFERENCE 的傳播不正確)。
    • 修正錯誤 GH-16509(函數重新宣告錯誤中的行號不正確)。
    • 修正錯誤 GH-16508(延遲早期繫結類別的繼承錯誤中的行號不正確)。
    • 修正錯誤 GH-16648(陣列排序期間的釋放後使用)。
  • Curl
    • 修正錯誤 GH-16302(如果 curl_multi_add_handle 失敗,CurlMultiHandle 會保留對 CurlHandle 的參考)。
  • Date
    • 修正錯誤 GH-16454(在 $utcOffset 很小的情況下,date_sunset() 中未處理的 INF)。
    • 修正錯誤 GH-16037 (ext/date/php_date.c 中的斷言失敗)。
    • 修正錯誤 GH-14732(date_sun_info() 對於非有限值失敗)。
  • DBA
    • 修正錯誤 GH-16390(dba_open() 可以在「無路徑」串流中發生區段錯誤)。
  • DOM
    • 修正了錯誤 GH-16316 (DOMXPath 未正確初始化時會崩潰)。
    • 修正了錯誤 GH-16473 (dom_import_simplexml 存根錯誤)。
    • 修正了錯誤 GH-16533 (當將屬性新增到非元素的父節點時發生 Segfault)。
    • 修正了錯誤 GH-16535 (當使用文件作為子節點時發生 UAF)。
    • 修正了錯誤 GH-16593 (DOM->replaceChild 中的斷言失敗)。
    • 修正了錯誤 GH-16595 (DOM -> cloneNode 中另一個 UAF)。
  • EXIF
    • 修正了錯誤 GH-16409 (當處理的不是真實檔案時,exif_thumbnail 會發生 Segfault)。
  • FFI
    • 修正了錯誤 GH-16397 (比較 FFI 物件時發生 Segmentation fault)。
  • Filter
    • 修正了錯誤 GH-16523 (FILTER_FLAG_HOSTNAME 接受結尾的連字符號)。
  • FPM
    • 修正了錯誤 GH-16628 (FPM 記錄檔因這個記錄陳述而損毀)。
  • GD
    • 修正了錯誤 GH-16334 (矩陣元素上的 imageaffine 溢位)。
    • 修正了錯誤 GH-16427 (未檢查的 libavif 回傳值)。
    • 修正了錯誤 GH-16559 (ext/gd/libgd/gd_interpolation.c:1007 中的 UBSan 中止)。
  • GMP
    • 修正了使用大型指數值時,gmp_pow 造成的浮點數異常錯誤。(David Carlier)。
    • 修正了錯誤 GH-16411 (gmp_export() 可能導致溢位)。
    • 修正了錯誤 GH-16501 (gmp_random_bits() 可能導致溢位)。
    • 修正了具有大型基數/指數的 gmp_pow() 溢位錯誤。
    • 修正了與 GMP 物件運算符多載相關的 Segfault 和其他問題。
  • LDAP
  • MBstring
    • 修正了錯誤 GH-16361 (mb_substr 在 start/length 參數上的溢位)。
  • MySQLnd
    • 修正了錯誤 GHSA-h35g-vwh6-m678 (透過堆積緩衝區過度讀取洩漏堆積的部分內容)。 (CVE-2024-8929)
  • OpenSSL
    • 修正了錯誤 GH-16357 (openssl 可能會修改憑證陣列的成員類型)。
    • 修正了錯誤 GH-16433 (openssl_csr_sign() $days 的大型值溢位)。
    • 修正了 openssl_x509_parse() 中錯誤條件下的各種記憶體洩漏。
  • PDO DBLIB
    • 修正了錯誤 GHSA-5hqh-c84r-qjcv (dblib 引號器中的整數溢位導致 OOB 寫入)。 (CVE-2024-11236)
  • PDO Firebird
    • 修正了錯誤 GHSA-5hqh-c84r-qjcv (firebird 引號器中的整數溢位導致 OOB 寫入)。 (CVE-2024-11236)
  • PDO ODBC
    • 修正了錯誤 GH-16450 (PDO_ODBC 可以將垃圾資料注入欄位值)。
  • Phar
    • 修正了錯誤 GH-16406 (ext/phar/phar.c:2808 中的斷言失敗)。
  • PHPDBG
    • 修正了錯誤 GH-16174 (空字串對 ev 而言是無效的表達式)。
  • Reflection
    • 修正了錯誤 GH-16601 (Reflection 建構函式中的記憶體洩漏)。
  • Session
    • 修正了錯誤 GH-16385 (session_set_cookie_params 回傳非預期的 null)。
    • 修正了錯誤 GH-16290 (cookie_lifetime ini 值溢位)。
  • SOAP
    • 修正了錯誤 GH-16429 (在 SoapClient 中存取空指標時發生 Segmentation fault)。
  • Sockets
    • 修正了 socket_recvfrom $length 參數的溢位錯誤。
  • SPL
    • 修正了錯誤 GH-16337 (SplHeap 中的 use-after-free)。
    • 修正了錯誤 GH-16464 (SplDoublyLinkedList::offsetSet() 中的 use-after-free)。
    • 修正了錯誤 GH-16479 (SplObjectStorage::setInfo() 中的 use-after-free)。
    • 修正了錯誤 GH-16478 (SplFixedArray::unset() 中的 use-after-free)。
    • 修正了錯誤 GH-16588 (Observer->serialize 中的 UAF)。
    • 修正了 GH-16477 (在 SplFileObject::__constructor 失敗後呼叫 __debugInfo() 時發生 Segmentation fault)。
    • 修正了錯誤 GH-16589 (SplDoublyLinked->serialize() 中的 UAF)。
    • 修正了錯誤 GH-14687 (SplObjectIterator 實例上的 segfault)。
    • 修正了錯誤 GH-16604 (SPL 建構函式中的記憶體洩漏)。
    • 修正了錯誤 GH-16646 (ArrayObject::unset() 和 ArrayObject::exchangeArray() 中的 UAF)。
  • Standard
    • 修正了錯誤 GH-16293 (在啟用 bail 的情況下,於 assert() 回呼中拋出例外時發生斷言失敗)。
  • Streams
    • 修正了錯誤 GHSA-c5f2-jwm7-mmq2 (在 stream 上下文中設定 Proxy 可能允許在 URI 中進行 CRLF 注入)。 (CVE-2024-11234)
    • 修正了錯誤 GHSA-r977-prxv-hc43 (使用 convert.quoted-printable-decode 篩選器進行單一位元組過度讀取)。 (CVE-2024-11233)
  • SysVMsg
    • 修正了錯誤 GH-16592 (當類型未正確序列化時,msg_send() 會崩潰)。
  • SysVShm
    • 修正了錯誤 GH-16591 (shm_put_var 中的斷言錯誤)。
  • XMLReader
    • 修正了錯誤 GH-16292 (ext/xmlreader/php_xmlreader.c 中的 Segmentation fault)。
  • Zlib
    • 修正了錯誤 GH-16326 (不良字典的記憶體管理已損壞。) (cmb)

版本 8.2.25

  • Calendar
    • 修正了 GH-16240:jdtounix 在引數值上的溢位。
    • 修正了 GH-16241:easter_days/easter_date 在年份引數上的溢位。
    • 修正了 GH-16263:jddayofweek 溢位。
    • 修正了 GH-16234:jewishtojd 溢位。
  • CLI
    • 修正了錯誤 GH-16137:用戶端多次設定時出現重複的 HTTP 標頭。
  • 核心
    • 修正錯誤 GH-15712:在大型值上設定精確度 INI 時,zend_strtod 會溢位。
    • 修正了錯誤 GH-15905 (TRACK_VARS_SERVER 的斷言失敗)。
    • 修正了錯誤 GH-15907 (當將 Serialize 棄用升級為例外時發生斷言失敗)。
    • 修正了錯誤 GH-15851 (在清理巢狀產生器框架期間列印回溯追蹤時發生 Segfault)。
    • 修正了錯誤 GH-15866 (Zend/zend_generators.c 中發生核心傾印)。
    • 修正了錯誤 GH-16188 (Zend/zend_exceptions.c 中的斷言失敗)。
    • 修正了錯誤 GH-16233 (透過 trampoline 在內部函式中呼叫使用者函式時發生 Observer segfault)。
  • Date
    • 修正錯誤 GH-15582:未呼叫 DateTimeZone 的父類建構子時發生崩潰。
    • 修正使用 DateTimeInterface::modify() 函式時,在剖析帶正負號的整數時,忽略第一個正負號之後的符號的迴歸錯誤。
  • DOM
    • 修正了錯誤 GH-16039 (ext/dom/parentnode/tree.c 中發生 Segmentation fault (存取空指標))。
    • 修正了錯誤 GH-16151 (ext/dom/parentnode/tree.c 中的斷言失敗)。
  • GD
    • 修正了錯誤 GH-16232 (讀取 wbmp 檔案內容時發生位元移位溢位/修正上游的回溯移植)。
    • 修正了錯誤 GH-12264 (imagerotate 度數值的溢位/下溢) (David Carlier)
    • 修正了錯誤 GH-16274 (imagescale 在 RBG 通道上的下溢/修正上游的回溯移植)。
  • LDAP
    • 修正了錯誤 GH-16032 (ldap_modify_batch() 中的各種 NULL 指標取值)。
    • 修正了錯誤 GH-16101 (當 LDAPs 陣列不是清單時,ldap_list()、ldap_read() 和 ldap_search() 中發生 Segfault)。
    • 修正了 GH-16132 (php_ldap_do_modify() 嘗試釋放非 ZMM 配置的指標)。
    • 修正了 GH-16136 (當條目不是正確的字典時,php_ldap_do_modify() 中的記憶體洩漏)。
  • MBString
    • 修正了錯誤 GH-16261 (mb_convert_variables() 中斷的參考不變量)。
  • OpenSSL
    • 修正了 openssl_csr_new 的存根。
  • PCRE
    • 修正了錯誤 GH-16189 (offset 引數上的下溢)。
    • 修正了錯誤 GH-16184 (ext/pcre/php_pcre.c 中溢位的 UBSan 位址)。
  • PHPDBG
    • 修正了錯誤 GH-15901 (phpdbg:i 函式上的斷言失敗)。
    • 修正了錯誤 GH-16181 (phpdbg:例外處理常式中的 exit 會報告致命錯誤)。
  • Reflection
    • 修正了錯誤 GH-16187 (ext/reflection/php_reflection.c 中的斷言失敗)。
  • SAPI
    • 修正了錯誤 GH-15395 (php-fpm:zend_mm_heap 因 cgi-fcgi 要求而損毀)。
  • SimpleXML
    • 修正了錯誤 GH-15837 (ext/simplexml/simplexml.c 中的 Segmentation fault)。
  • Sockets
    • 修正了錯誤 GH-16267 (socket_strerror 在 errno 引數上的溢位)。
  • SOAP
    • 修正了錯誤 #62900 (xsd 匯入錯誤訊息上的錯誤命名空間)。
    • 修正了錯誤 GH-16237 (在複製 SoapServer 時發生 Segmentation fault)。
    • 修正了 Soap 在錯誤時洩漏 http_msg 的問題。
    • 修正了錯誤 GH-16256 (ext/soap/php_encoding.c:460 中的斷言失敗)。
    • 修正了錯誤 GH-16259 (當 classmap 實例化失敗時,Soap 發生 segfault)。
  • Standard
    • 修正錯誤 GH-15613 (unpack 呼叫十六進位字串重複器時發生溢位)。
    • 修正錯誤 GH-15937 (串流逾時選項值發生溢位)。
    • 修正了錯誤 GH-16053 (Zend/zend_hash.c 中的斷言失敗)。
  • Streams
    • 修正了錯誤 GH-15908GH-15026 (streams.c 中的洩漏/斷言失敗)。
    • 修正了錯誤 GH-15980 (main/streams/streams.c 中的帶號整數溢位)。
  • TSRM
    • 防止關閉不相關的控制代碼。
  • XML
    • 修正錯誤 GH-15868 (發生例外後,xml_parse_into_struct 中的斷言失敗)。

版本 8.2.24

  • CGI
    • 修正錯誤 GHSA-p99j-rfp4-xqvq (繞過 CVE-2024-4577,參數注入漏洞)。(CVE-2024-8926)
    • 修正錯誤 GHSA-94p6-54jq-9mwp (由於環境變數衝突,可以繞過 cgi.force_redirect 設定)。(CVE-2024-8927)
  • 核心
    • 修正了錯誤 GH-15408 (zend_max_execution_timer 上的 MSan 誤報)。
    • 修正了錯誤 GH-15515 (Configure 錯誤 grep 非法選項 q)。
    • 修正了錯誤 GH-15514 (Configure 錯誤:genif.sh:語法錯誤)。
    • 修正了錯誤 GH-15565 (編譯期間 --disable-ipv6 產生錯誤 EAI_SYSTEM not found)。
    • 修正了錯誤 GH-15587 (在 arm 32 位元上發生 CRC32 API 建置錯誤)。
    • 修正了錯誤 GH-15330 (不要掃描產生器框架超過一次)。
    • 修正了內部列舉常數 AST 中未初始化的 lineno。
  • Curl
    • 修正了錯誤 GH-15547 (curl_multi_select 在 timeout 引數上的溢位)。
  • DOM
    • 修正了錯誤 GH-15551 (ext/dom/xml_common.h 中發生 Segmentation fault (存取空指標))。
  • Fileinfo
    • 修正了錯誤 GH-15752 (使用空檔名引數呼叫 finfo_file 的錯誤訊息不正確)。
  • FPM
    • 修正錯誤 GHSA-865w-9rf3-2wh5 (可以變更子進程的記錄)。(CVE-2024-9026)
  • MySQLnd
    • 修正了錯誤 GH-15432 (查詢向量時發生堆積損壞)。
  • Opcache
    • 修正了錯誤 GH-15661 (存取 Zend/Optimizer/zend_inference.c 中的空指標)。
    • 修正了錯誤 GH-15658 (Zend/zend_vm_execute.h 中發生區段錯誤)。
  • SAPI
    • 修正錯誤 GHSA-9pqp-7h25-4f32 (多部分表單資料的錯誤剖析)。(CVE-2024-8925)
  • SOAP
    • 修正了錯誤 #73182 (PHP SOAPClient 不支援陣列形式的 stream 上下文 HTTP 標頭)。
  • Standard
    • 修正了錯誤 GH-15552 (ext/standard/scanf.c 中帶號整數溢位)。
  • Streams
    • 修正了錯誤 GH-15628 (php_stream_memory_get_buffer() 未以零結尾)。

版本 8.2.23

  • 核心
    • 修正了錯誤 GH-15020 (Zend/Optimizer/escape_analysis.c 中的記憶體洩漏)。
    • 修正了錯誤 GH-15023 (Zend/zend_ini.c 中的記憶體洩漏)。
    • 修正了錯誤 GH-13330 (有條件地附加 -Wno-implicit-fallthrough 旗標)。
    • 修正在 network.c 中未初始化的記憶體。
    • 修正了錯誤 GH-15108 (關閉期間銷毀產生器時發生區段錯誤)。
    • 修正了錯誤 GH-15275 (暫停產生器委派的 GC 期間發生崩潰)。
  • Curl
    • 修正了 curl_error 傳回空字串的情況。
  • DOM
    • 修正了在移除 doctype 並使用 foreach 迭代時發生的 UAF。
  • FFI
    • 修正了錯誤 GH-14286 (ffi 列舉型別 (當列舉沒有名稱時) 造成記憶體洩漏)。
  • Hash
    • 修正在 xxh3 中轉換 shm 中的陣列資料時發生崩潰。
  • Intl
    • 修正了錯誤 GH-15087 (IntlChar::foldCase() 的 $option 不是可選的)。
  • Opcache
    • 修正了錯誤 GH-13817 (在第 4 次傳遞後為已啟用觀察器時發生區段錯誤)。
    • 修正了錯誤 GH-13775 (可能與 opcache SHM 位置相關的記憶體洩漏)。
  • Output
    • 修正了錯誤 GH-15179 (ext/standard/url_scanner_ex.re 中發生區段錯誤 (空指標取消引用))。
  • PDO_Firebird
    • 修正了 firebird_handle_get_attribute() 中的虛假 fallthrough 路徑。
  • PHPDBG
    • 修正了錯誤 GH-13199 (使用 libedit/readline 時,phpdbg 本機主控台模式中 EOF 發出多餘的提示)。
    • 修正了錯誤 GH-15268 (phpdbg 中堆積緩衝區溢位 (zend_hash_num_elements() Zend/zend_hash.h))。
    • 修正了錯誤 GH-15210 (在觀察點配置上使用後釋放)。
  • Soap
    • 修正了錯誤 #55639 (Digest 驗證無法運作)。
    • 修正 SoapFault 屬性銷毀。
    • 修正了錯誤 GH-15252 (自 PHP 8.3.9 起,使用 classmap 建構子選項時,SOAP XML 損毀)。
  • Standard
    • 修正了在 stream 函式中傳遞非有限逾時值。
    • 修正了 GH-14780 p(f)sockopen 逾時溢位。
  • Streams
    • 修正了錯誤 GH-15028 (ext/phar/stream.c 中的記憶體洩漏)。
    • 修正了錯誤 GH-15034 (檔案大於 2GB 時,stream_notification_callback byte_max 參數上的整數溢位)。
  • Tidy
    • 修正 ext/tidy basedir 限制程式碼中的記憶體洩漏。

版本 8.2.22

  • 核心
    • 修正了錯誤 GH-13922 (修正 sysconf(_SC_GETPW_R_SIZE_MAX) == -1 的系統支援)。
    • 修正了錯誤 GH-14626 (修正大型區塊的 is_zend_ptr())。
    • 修正了錯誤 GH-14590 (FPM 測試 gh13563-conf-bool-env.phpt 中的記憶體洩漏)。
    • 修正了 OSS-Fuzz #69765。
    • 修正了錯誤 GH-14741 (Zend/zend_types.h 中的區段錯誤)。
    • 修正了錯誤 GH-14969 (使用 __toString() 的屬性強制轉換中發生使用後釋放)。
  • Dom
    • 修正了錯誤 GH-14702 (DOMDocument::xinclude() 崩潰)。
  • Gd
    • ext/gd/tests/gh10614.phpt:如果沒有 PNG 支援,則跳過。
    • 恢復警告而不是致命錯誤。
  • LibXML
    • 修正了錯誤 GH-14563 (使用 libxml2 v2.13.0 時建置失敗)。
  • Opcache
    • 修正了錯誤 GH-14550 (當啟用 Zend DTrace 時,沒有警告訊息指出 opcache.jit 被隱式停用)。
  • Output
    • 修正了錯誤 GH-14808 (Zend/zend_string.h 中,使用空的輸出緩衝區時發生意外的空指標)。
  • PDO
    • 修正了錯誤 GH-14712 (使用 PDORow 存取空屬性時發生崩潰)。
  • Phar
    • 修正了錯誤 GH-14603 (zip 條目中的空字串)。
  • PHPDBG
    • 修正了錯誤 GH-14596 (使用 ASAN 和 ZEND_RC_DEBUG=1 時發生崩潰)。
    • 修正了錯誤 GH-14553 (echo 輸出在 NULL 位元組處被截斷)。
  • Shmop
    • 修正了錯誤 GH-14537 (shmop Windows 11 造成處理程序崩潰)。
  • SimpleXML
    • 修正錯誤 GH-14638 (XML 剖析失敗後發生的 null 取值)。
  • SPL
    • 修正了錯誤 GH-14639 (ext/spl/spl_observer.c 中空指標內的成員存取)。
  • Standard
    • 修正了 32 位元 wordwrap 測試失敗。
    • 修正了錯誤 GH-14774 (time_sleep_until 溢位)。
  • Tidy
    • 修正了 tidy_repair_file() 中的記憶體洩漏。
  • Treewide
    • 修正了與 libxml2 2.13.2 的相容性。
  • XML
    • 從即將被棄用的 libxml 欄位移開。
    • 修正了錯誤 GH-14834 (使用 --with-pear 時安裝 PHP 時發生錯誤)。

版本 8.2.21

  • 核心
    • 修正了錯誤 GH-14315 (不相容的指標型別警告)。
    • 修正了錯誤 GH-12814 (在 Apple Silicon 上執行時,macOS 14 上太早達到 max_execution_time)。
    • 修正了錯誤 GH-14387 (在 Generator->throw() 期間,從值中產生值的解構函式中進行堆疊走訪時發生崩潰)。
    • 修正了錯誤 GH-14456 (嘗試使用私有建構子初始化類別會呼叫解構函式)。
    • 修正了錯誤 GH-14549 (fclose 的不相容函式指標型別)。
  • BCMatch
    • 修正了錯誤 (當 mod = -1 時,bcpowmod() 傳回 1,而必須是 0)。
  • Curl
    • 修正了錯誤 GH-14307 (測試 curl_basic_024 在 curl 8.8.0 中失敗)。
  • DOM
    • 修正了錯誤 GH-14343 (xml 和 dom 中的記憶體洩漏)。
  • FPM
    • 修正了錯誤 GH-14037 (PHP-FPM ping.path 和 ping.response 設定變數在狀態池中被忽略)。
  • GD
    • 修正了 imagecolorset() 的參數編號。
  • Intl
    • 修正了 SpoofChecker 中的參考處理。
  • MySQLnd
    • 部分修正了錯誤 GH-10599 (當在具有作用中 mysqli 連線的類別中使用自參考匿名函式時,Windows 上發生 Apache 崩潰)。
  • Opcache
    • 修正了錯誤 GH-14267 (opcache.jit=off 不允許在執行階段啟用 JIT)。
    • 修正了 FreeBSD/amd64 上 JIT 中的 TLS 存取。
    • 修正了錯誤 GH-11188 (在 ARM64 中建置 TSRM 時發生錯誤)。
  • PDO ODBC
    • 修正了錯誤 GH-14367 (與 iODBC 不相容的 SDWORD 型別)。
  • PHPDBG
    • 修正了錯誤 GH-13681 (在新增觀察點失敗時發生區段錯誤)。
  • Soap
    • 修正了錯誤 #47925 (PHPClient 無法解壓縮回應)。
    • 修正了遺失的錯誤還原程式碼。
    • 修正了呼叫 SoapServer::setObject() 兩次時的記憶體洩漏。
    • 修正了呼叫 SoapServer::setClass() 兩次時的記憶體洩漏。
    • 修正了在 ext-soap 中讀取 zlib ini 設定。
    • 修正了字串函式名稱查閱中的記憶體洩漏。
    • 修正了錯誤 #69280 (SoapClient classmap 不支援完整限定類別名稱)。
    • 修正了錯誤 #76232 (SoapClient Cookie 標頭分號)。
    • 修正了呼叫 SoapFault::__construct() 兩次時的記憶體洩漏。
  • Sodium
    • 修正了在某些函式失敗時,ext/sodium 中的記憶體洩漏。
  • SPL
    • 修正了錯誤 GH-14290 (擴充功能 spl 中空指標內的成員存取)。
  • Standard
    • 修正了錯誤 GH-14483 (修正了檢查抽象命名空間 Unix socket 長度的 off-by-one 錯誤)。
  • Streams
    • 修正了錯誤 GH-11078 (PHP 嚴重錯誤會觸發指標被釋放但未配置的錯誤,以及 ptr 的 malloc:雙重釋放錯誤)。

版本 8.2.20

  • CGI
    • 修正了 Windows 上的緩衝區限制,將讀取呼叫的使用取代為 _read。
    • 修正了錯誤 GHSA-3qgc-jrrr-25jv (繞過 CVE-2012-1823,PHP-CGI 中的引數注入)。 (CVE-2024-4577)
  • CLI
    • 修正了錯誤 GH-14189 (PHP 互動式 Shell 輸入狀態錯誤地處理引用的 heredoc 字面值)。
  • 核心
    • 修正了錯誤 GH-13970 (對於非編譯時期運算式,#[Attribute] 旗標型別的驗證不正確)。
    • 修正錯誤 GH-14140 (Apple Silicon 硬體上範圍運算的浮點數錯誤)。
  • DOM
    • 修正了在移除實體宣告時,仍然有實體參考時發生的崩潰。
    • 修正了在 C14N 中未正確處理的參考。
    • 修正了在迭代器耗盡時呼叫 childNodes next() 時發生的崩潰。
    • 修正了在處理包含文字節點的片段時,ParentNode::append() 中的崩潰。
  • FFI
    • 修正錯誤 GH-14215 (無法在 apache2handler 上使用 CRLF 標頭檔案的 FFI::load)。
  • Filter
    • 修正了錯誤 GHSA-w8qr-v226-r27w (filter_var FILTER_VALIDATE_URL 中的篩選器繞過)。 (CVE-2024-5458)
  • FPM
    • 修正了錯誤 GH-14175 (在 systemd 狀態中顯示十進位數字而不是科學符號)。
  • Hash
    • ext/hash:交換 `__has_builtin` 和 `__GNUC__` 的檢查順序 (Saki Takamachi)
  • Intl
    • 修正了在沒有 C++17 編譯器的系統上發生的建置迴歸。
  • Ini
    • 修正錯誤 GH-14100 (修正 php.ini 檔案中的拼寫錯誤)。
  • MySQLnd
    • 修正了錯誤 GH-14255 (mysqli_fetch_assoc 回報來自巢狀查詢的錯誤)。
  • Opcache
    • 修正了錯誤 GH-14109 (修正了 shm 中意外持續存在的內部類別常數)。
  • OpenSSL
    • PHP 中的 openssl_private_decrypt 函式,當使用 PKCS1 填補時 (OPENSSL_PKCS1_PADDING,這是預設值),除非它與包含此提取要求變更的 OpenSSL 版本一起使用:https://github.com/openssl/openssl/pull/13817 (rsa_pkcs1_implicit_rejection),否則容易受到 Marvin 攻擊。這些變更屬於 OpenSSL 3.2 的一部分,並且也已向後移植到各種 Linux 發行版的穩定版本,以及自上次發佈以來為 Windows 提供的 PHP 建置版本。所有發行者和建置者都應確保使用此版本以防止 PHP 容易受到攻擊。
  • Standard
    • 修正了錯誤 GHSA-9fcc-425m-g385 (繞過 CVE-2024-1874)。 (CVE-2024-5585)
  • XML
    • 修正了錯誤 GH-14124 (在特定記憶體限制下,XML 擴充功能發生區段錯誤)。
  • XMLReader
    • 修正了錯誤 GH-14183 (XMLReader::open() 無法覆寫)。

版本 8.2.19

  • 核心
    • 修正了錯誤 GH-13772 (當啟用 JIT 時,觀察器 fcall 處理程式中的 execute_data->opline 指標無效)。
    • 修正錯誤 GH-13931 (在 Zend/zend_opcode.c 中對空指標應用零偏移)。
    • 修正錯誤 GH-13942 (使 zend-max-execution-timers 的行為與其他逾時實作一致)。
    • 修正錯誤 GH-14003 (使用可呼叫轉換參數時,未完成呼叫的清理中斷)。
    • 修正錯誤 GH-14013 (在 configure 中附加錯誤的 dnl)。
    • 修正錯誤 GH-10232 (如果在常數解析期間發生自動載入,則檔案名稱和行號會被錯誤地識別)。
    • 修正錯誤 GH-13727 (缺少 void 關鍵字)。
  • 纖程
    • 修正錯誤 GH-13903 (執行 copy() 時,ASAN 誤報下溢)。
  • FPM
    • 修正錯誤 GH-13563 (在 FPM 設定中透過 env 設定布林值失敗)。
  • Intl
    • 修正 icu 74 及更高版本的建置。
  • MySQLnd
    • 修正 32 位元非快速路徑平台上超出範圍的位移。
  • Opcache
    • 修正跨編譯單元的靜態呼叫的不正確假設。
  • OpenSSL
    • 修正錯誤 GH-10495 (OpenSSL 串流上的 feof 無限期掛起)。
  • PDO SQLite
    • 修正 GH-13984 (現在在 memcmp 之前會檢查緩衝區大小)。
    • 修正 GH-13998 (正確管理 agg_context->val 的參考計數)。
  • Phar
    • 修正錯誤 GH-13836 (將 Phar 中的檔案重新命名為已存在的檔案名稱會導致 NULL 指標解引用)。
    • 修正錯誤 GH-13833 (在 zend_hash.c 中對空指標應用零偏移)。
    • 修正在呼叫 EVP_SignInit 之前的潛在 NULL 指標解引用。
  • PHPDBG
    • 修正錯誤 GH-13827 (phpdbg_frame 中 'zval' 類型的空指標存取)。
  • Posix
    • 修正 ext/posix 中可重入函數的使用。
  • Session
    • 修正錯誤 GH-13856 (在 ext/session/mod_files.c 中,'ps_files' 類型的空指標內的成員存取)。
    • 修正錯誤 GH-13891 (使用 ini_set 和 session.trans_sid_hosts 時的記憶體洩漏和分段錯誤)。
    • 修正在 windows 上檔案模式的緩衝區 _read/_write 大小限制。
  • Streams
    • 修正 Windows 上 file_get_contents() 失敗,並顯示「errno=22 無效參數」的問題。
    • 修正錯誤 GH-13264 (第 1 部分 - 串流篩選失敗時的記憶體洩漏)。
    • 修正錯誤 GH-13860 (ext/openssl/xp_ssl.c 中不正確的 PHP_STREAM_OPTION_CHECK_LIVENESS 情況 - 導致使用已失效的 Socket)。
    • 修正錯誤 GH-11678 (在 musl 1.2.4 上建置失敗 - lfs64)。
  • Treewide
    • 修正 gcc-14 Wcalloc-transposed-args 警告。

版本 8.2.18

  • 核心
    • 修正錯誤 GH-13612 (具有弱參考的解構函數中的損毀記憶體)。
    • 修正錯誤 GH-13784 (AX_GCC_FUNC_ATTRIBUTE 失敗)。
    • 修正錯誤 GH-13670 (當解構函數中建立大量物件時,GC 無法良好擴展)。
  • DOM
    • 新增一些遺失的 ZPP 檢查。
    • 修正 XPath 評估結果中潛在的記憶體洩漏。
    • 修正 DOMDocument load 方法的 phpdoc。
  • FPM
    • 修正 fpm_shm_free() 中不正確的檢查。
  • GD
    • 修正錯誤 GH-12019 (在功能測試中新增 GDLIB_CFLAGS)。
  • Gettext
    • 修正當 gettext 0.22.5 的類別設定為 LC_ALL 時,使用 dcgettext/dcngettext 呼叫引發的 sigabrt。
  • MySQLnd
    • 修正 GH-13452 (修正交握回應 [mysqlnd])。
    • 修正 check_mb_eucjpms() 中不正確的字元集長度。
  • Opcache
    • 修正 GH-13508 (當 op1 為 null 時,JIT 編譯的 QM_ASSIGN 可能會被最佳化掉)。
    • 修正 GH-13712 (當載入 opcache 時,呼叫內部 trait 的 trait 方法時,已啟用觀察器會發生分段錯誤)。
  • PDO
    • 修正各種 PDORow 錯誤。
  • Random
    • 修正錯誤 GH-13544 (針對具有未知模式的 mt_srand 的 Pre-PHP 8.2 相容性)。
    • 修正錯誤 GH-13690 (當使用 MT_RAND_PHP 時,請求之間未正確重設全域 Mt19937)。
  • Session
    • 修正錯誤 GH-13680 (session_decode 和編譯錯誤的分段錯誤)。
  • Sockets
    • 修正錯誤 GH-13604 (socket_getsockname 在 socket 名稱結尾返回隨機字元)。
  • SPL
    • 修正錯誤 GH-13531 (在 PHP 8.2.15 中取消序列化後,無法調整 SplfixedArray 的大小)。
    • 修正錯誤 GH-13685 (zend_string.h 中出現非預期的空指標)。
  • Standard
    • 修正錯誤 GH-11808 (測試修改的即時檔案系統)。
    • 修正 GH-13402 (在 mail() 的 $additional_headers 中新增 `\n` 的驗證)。
    • 修正錯誤 GH-13203 (在 Windows 上,file_put_contents 在超過 4GB 的字串上失敗)。
    • 修正錯誤 GHSA-pc52-254m-w9w7 (透過 proc_open 的陣列式 $command 參數進行命令注入)。(CVE-2024-1874)
    • 修正錯誤 GHSA-wpj3-hf5j-x4v4 (由於部分 CVE-2022-31629 修復,__Host-/__Secure- Cookie 繞過)。(CVE-2024-2756)
    • 修正錯誤 GHSA-h746-cjrr-wfmr (password_verify 可能會錯誤地傳回 true,開啟 ATO 風險)。(CVE-2024-3096)
  • XML
    • 修正錯誤 GH-13517 (使用 --with-expat 建置時,多個測試失敗)。

版本 8.2.17

  • 核心
    • 修正在關閉時 ZTS 持久資源崩潰的問題。
  • Curl
    • 修正由於 libcurl 8.6.0 中的字串變更而導致的測試失敗。
  • DOM
    • 修正 DOMNodeList 和 DOMNodeMap 維度中的參考存取。
  • Fileinfo
    • 修正錯誤 GH-13344 (finfo::buffer(): 無法識別資料 0:(null),回溯)。
  • FPM
    • 修正錯誤 #75712 (php-fpm 中的 getenv 不應讀取 $_ENV, $_SERVER)。
  • GD
    • 修正錯誤 GH-12019 (在系統 gd 函式庫中偵測影像格式)。
  • MySQLnd
    • 修正錯誤 GH-11950 ([mysqlnd] 如果已設定 CR_SERVER_GONE_ERROR,則修正為不將 CR_MALFORMED_PACKET 設定為錯誤)。
  • PGSQL
    • 修正錯誤 GH-13354 (pg_execute/pg_send_query_params/pg_send_execute 透過引用傳遞 null 值)。
  • Standard
    • 修正第二個運算元緩衝區大小(雖然目前未使用)的陣列鍵作為雜湊到字串(不區分大小寫)比較中的錯字。

版本 8.2.16

  • 核心
    • 修正 zend-max-execution-timers 建置中的計時器洩漏。
    • 修正錯誤 GH-12349 (在 ARM 上使用 mold 時的連結失敗)。
    • 修正錯誤 GH-13097 (在 trigger_error / 拋出例外中匿名類別參考)。
    • 修正錯誤 GH-13215 (GCC 14 建置失敗)。
  • Curl
    • 修正 curl_multi_init() 中遺失的錯誤檢查。
  • FPM
    • 修正錯誤 GH-12996 (當路徑中有加號時,使用 Apache ProxyPassMatch 的不正確 SCRIPT_NAME)。
  • GD
    • 修正錯誤 GH-10344 (imagettfbbox(): 無法找到/開啟字型 UNC 路徑)。
    • 修正錯誤 GH-10614 (當旋轉 90 度時,imagerotate 會將圖片全部變黑)。
  • MySQLnd
    • 修正錯誤 GH-12107 (當執行兩次傳回結果集的預存程序時,PHP 會崩潰)。
  • Opcache
    • 修正錯誤 GH-13232 (當 JIT 關閉但 JIT_debug 仍開啟時,將會報告分段錯誤)。
  • OpenSSL
    • 修正在未設定 OPENSSL_NO_ENGINE 時,LibreSSL 未定義參考的問題。(David Carlier)。
  • PDO_Firebird
    • 修正 GH-13119 (已變更為使用 `H` 格式將浮點數和雙精度值轉換為字串)。
  • Phar
    • 修正錯誤 #71465 (PHAR 不知道 litespeed)。
    • 修正錯誤 GH-13037 (PharData 錯誤地解壓縮 zip 檔案)。
  • Random
    • 修正錯誤 GH-13138 (Randomizer::pickArrayKeys() 未偵測到損壞的引擎)。
  • Session
    • 修正錯誤 GH-12504 (當自動載入器中發生嚴重錯誤時,會寫入損毀的 session)。
  • Streams
    • 修正錯誤 GH-13071 (使用可 mmap 的來源串流複製大型檔案可能會耗盡可用記憶體並失敗)。

版本 8.2.15

  • 核心
    • 修正錯誤 GH-12953 (當載入具有超過 11k 個元素的 composer classmaps 時,SSA 完整性驗證失敗的誤報)。
    • 修正錯誤 GH-12966 (缺少交叉編譯的第三個引數,因此 Autoconf 不會發出警告)。
  • Cli
    • 修正當使用路由器指令碼和 max_input_time 時,內建網路伺服器中的不正確逾時。
  • FFI
    • 修正錯誤 GH-9698 (stream_wrapper_register 會在 FFI\CData 中崩潰)。
    • 修正錯誤 GH-12905 (FFI::new 與觀察者互動不佳)。
  • Intl
    • 修正 GH-12943 (IntlDateFormatter::__construct 接受 'C' 作為有效地區設定)。
  • Hash
    • 修正錯誤 GH-12936 (如果使用 sha512 處理 >= 4GiB 的字串,hash() 函數會無限期掛起)。
  • ODBC
    • 修正具有持續連線時,Apache 關閉時的崩潰。
  • Opcache
    • 修正 oss-fuzz #64727 (當 DIM 與結果變數相同時,JIT 未定義的陣列鍵警告可能會使用 NULL 覆寫 DIM)。
    • 新增針對 SELinux mprotect execheap 問題的解決方案。請參閱 https://bugzilla.kernel.org/show_bug.cgi?id=218258。
  • OpenSSL
    • 修正錯誤 GH-12987 (openssl_csr_sign 可能會在錯誤時洩漏新憑證)。
  • PDO
    • 修正 GH-12969 (修正 PDO::getAttribute() 以取得 PDO::ATTR_STRINGIFY_FETCHES)。
  • PDO_ODBC
    • 修正錯誤 GH-12767 (無法使用 setAttribute() 開啟自動提交模式)。
  • PGSQL
    • 修正 auto_reset_persistent 處理和 allow_persistent 類型。
    • 修正錯誤 GH-12974 (當使用 pg_pconnect() 時,Apache 在關閉時崩潰)。
  • Phar
    • 修正錯誤 #77432 (包含 phar 檔案時的分段錯誤)。
  • PHPDBG
    • 修正錯誤 GH-12962 (phpdbg_prompt.c 中 init_file 的雙重釋放)。
  • SimpleXML
    • 修復取得 SimpleXMLElement 未初始化屬性的位址導致崩潰的問題。
  • Tidy
    • 修正錯誤 GH-12980 (tidynode.props.attribute 缺少「布林屬性」和空屬性)。

版本 8.2.14

  • 核心
    • 修正 oss-fuzz #54325 (使用惡意錯誤處理常式在變數-變數中釋放名稱後使用)。
    • 修正 oss-fuzz #64209 (在 php_message_handler_for_zend 中就地修改檔案名稱)。
    • 修正錯誤 GH-12758 / GH-12768 (ZEND_FUNC_GET_ARGS 和 ZEND_BIND_STATIC 內的 OOM 處理器中存在無效的 opline)。
    • 修正多個遺失的 NULL 檢查。
    • 修正錯誤 GH-12835 (內部 __call 上的 call->extra_named_params 洩漏)。
  • Date
    • 修正剖析非常大 (或非常小) 的 Unix 時間戳記時發生的不太可能的整數溢位。
  • DOM
    • 修正錯誤 GH-12616 (DOM:移除 XMLNS 命名空間節點會產生無效的預設:前綴)。
  • FPM
    • 修正錯誤 GH-12705 (fpm_status_export_to_zval 中發生分段錯誤)。
  • FTP
    • 修正錯誤 GH-9348 (FTP 與 SSL 工作階段重複使用)。
  • Intl
    • 修正錯誤 GH-12635 (使用 ICU 74.1 時,Test bug69398.phpt 失敗)。
  • LibXML
    • 修正錯誤 GH-12702 (從 src 建置 libxml2 2.12.0 的問題)。
    • 修正 libxml2 2.12.0 的測試失敗。
  • MySQLnd
    • 避免使用未初始化的結構。
    • 修正錯誤 GH-12791 (MySQLnd 偵錯程式碼中可能對 NULL 進行取值)。
  • Opcache
    • 修正 JIT 錯誤 (函數 JIT 在發出無效偏移錯誤的同時發出「未初始化的字串偏移」警告)。
    • 修正 JIT 錯誤 (JIT 在擲出錯誤的同時發出「嘗試指派非物件的屬性」警告)。
  • OpenSSL
    • 修正錯誤 #50713 (openssl_pkcs7_verify() 可能會忽略不受信任的 CA)。
  • PCRE
    • 修正錯誤 GH-12628 (gh11374 測試在 Alpinelinux 上失敗)。
  • PDO PGSQL
    • 修正 PDO::pgsqlGetNotify() 中 $fetchMode 的預設值 (kocsismate)
  • PGSQL
    • 修正錯誤 GH-12763 (pg_untrace 的引數型別錯誤)。
  • PHPDBG
    • 修正錯誤 GH-12675 (phpdbg_prompt.c 中的 MEMORY_LEAK)。
  • SOAP
    • 修正錯誤 GH-12838 ([SOAP] 未刪除暫時 WSDL 快取檔案)。
  • SPL
    • 修正錯誤 GH-12721 (SplFileInfo::getFilename() 與 GlobIterator 和無目錄分隔符號組合時發生區段錯誤)。
  • SQLite3
    • 修正錯誤 GH-12633 (sqlite 3.44.0 時,sqlite3_defensive.phpt 失敗)。
  • Standard
    • 修正 syslog 裝置處理中的記憶體洩漏。
    • 修正錯誤 GH-12621 (在 vhost 中設定時,browscap 區段錯誤)。
    • 修正錯誤 GH-12655 (proc_open() 不會將描述符陣列中的參考納入考量)。
  • Streams
    • 修正錯誤 #79945 (imagecreatefrompng 中的串流包裝函式會造成區段錯誤)。
  • Zip
    • 修正錯誤 GH-12661 (ZipArchive::addGlob remove_path 選項行為中的不一致)。

版本 8.2.13

  • 核心
    • 修正非保留列舉案例名稱的重複釋放。
    • 修正錯誤 GH-12457 (stripos 使用單一字元針的結果不正確)。
    • 修正錯誤 GH-12468 (透過 trait 覆寫靜態屬性時 doc_comment 重複釋放)。
    • 修正 FFI 物件的弱參考造成的區段錯誤。
    • 修正 max_execution_time:不要刪除未初始化的計時器。
    • 修正錯誤 GH-12558 (如果類別名稱以 N 開頭,Arginfo 使用命名空間類別返回型別時會軟中斷)。
  • DOM
    • 修正註冊具有抽象類別的 registerNodeClass 時發生崩潰。
    • 新增遺失的 NULL 指標錯誤檢查。
    • 修正 php:function() 回呼的驗證邏輯。
  • Fiber
    • 修正錯誤 GH-11121 (ReflectionFiber 區段錯誤)。
  • FPM
    • 修正錯誤 GH-9921 (在 FPM 設定中載入 ext 不會註冊模組處理常式)。
    • 修正錯誤 GH-12232 (FPM:動態載入沒有 opcache 的擴充功能時發生區段錯誤)。
    • 修正錯誤 #76922 (FastCGI 在 FCGI_GET_VALUES 之後終止連線)。
  • Intl
    • 移除 IntlDateFormatter::construct 在使用無效的地區設定時擲出例外的 BC 中斷。
  • Opcache
    • 新增無法啟用 JIT 時的警告訊息。
    • 修正錯誤 GH-8143 (由於磁碟快取損毀,升級至 8.1.3 後,zend_accel_inheritance_cache_find 中發生崩潰)。
  • OpenSSL
    • 修正錯誤 GH-12489 (openssl_cms_verify 中遺失 sigbio 建立檢查)。
  • PCRE
    • 修正錯誤 GH-11374 (回溯上游修正,使用 -d pcre.jit=0 時,preg_match 結果不同)。
  • SOAP
    • 修正錯誤 GH-12392 (SoapClient::__getTypes 發生區段錯誤)。
    • 修正錯誤 #66150 (SOAP WSDL 快取競爭條件造成區段錯誤)。
    • 修正錯誤 #67617 (SOAP 在 ENOSPC 時留下不完整的快取檔案)。
    • 修正 SOAP 快取中的 URI 檢查不正確的問題。
    • 修正具有參考計數屬性和陣列時發生的區段錯誤和斷言失敗。
    • 修正在持久編碼器的邊緣案例中可能發生的崩潰。
    • 修正錯誤 #75306 (SoapClient 中的記憶體洩漏)。
  • Streams
    • 修正錯誤 #75708 (在 StreamWrappers 上使用「&$imageinfo」的 getimagesize 失敗)。
  • XMLReader
    • 新增遺失的 NULL 指標錯誤檢查。
  • XMLWriter
    • 新增遺失的 NULL 指標錯誤檢查。
  • XSL
    • 新增遺失的模組相依性。
    • 修正 php:function() 回呼的驗證邏輯。

版本 8.2.12

  • 核心
    • 修正錯誤 GH-12207 (類別使用具有 doc 區塊的 trait 時發生記憶體洩漏)。
    • 修正錯誤 GH-12215 (正在覆寫的模組項目會在 ext/dom 中造成型別錯誤)。
    • 修正錯誤 GH-12273 (__builtin_cpu_init 檢查)。
    • 修正錯誤 #80092 (ZTS + preload = 關機時發生區段錯誤)。
  • CLI
    • 確保存在單一 Date 標頭。
  • CType
    • 修正了 GH-11997 錯誤 (ctype_alnum 在 PHP 8.1 或更高版本中速度慢 5 倍)。
  • DOM
    • 恢復舊的命名空間協調行為。
    • 修正了 GH-8996 錯誤 (在 PHP ^8.1 上進行 DOMNode 序列化)。
  • Fileinfo
    • 修正了 GH-11891 錯誤 (fileinfo 為某些 svg 檔案返回 text/xml)。
  • Filter
    • 修正了帶有 FILTER_CALLBACK 的明確 FILTER_REQUIRE_SCALAR (ilutov)
  • Hash
    • 修正了 GH-12186 錯誤 (複製/克隆已最終化的 HashContext 時發生區段錯誤)。
  • Intl
    • 修正了 GH-12243 錯誤 (在 IntlDateFormatter::construct 上發生區段錯誤)。
    • 修正了 GH-12282 錯誤 (IntlDateFormatter::construct 應該在無效的 locale 上拋出例外)。
  • MySQLnd
    • 修正了 GH-12297 錯誤 (PHP Startup: 在 Unknown 行中出現無效的函式庫 (可能不是 PHP 函式庫) 'mysqlnd.so')。
  • Opcache
    • 修正了已刪除檔案上的 opcache_invalidate()。
    • 修正了 GH-12380 錯誤 (JIT+閉包內部的私有陣列屬性存取會存取子類別中的私有屬性)。
  • PCRE
    • 修正了 GH-11956 錯誤 (回溯上游修正,啟用 JIT 的 PCRE 正規表示式會產生不同的結果)。
  • SimpleXML
    • 修正了 GH-12170 錯誤 (無法在 SimpleXML 中使用帶有註解的 xpath)。
    • 修正了 GH-12223 錯誤 (實體參照在 var_dump/print_r 中產生無限迴圈)。
    • 修正了 GH-12167 錯誤 (無法在 SimpleXML 中取得處理指令內容)。
    • 修正了 GH-12169 錯誤 (無法在 SimpleXML 中取得註解內容)。
  • Streams
    • 修正了 GH-12190 錯誤 (以位址和連接埠皆為 0 的方式繫結 ipv4 位址)。
  • XML
    • 修正了 xml_parse_into_struct() stub 的回傳類型。
    • 修正了兩次呼叫 xml_parse_into_struct() 時的記憶體洩漏。
  • XSL
    • 修正了帶有 SimpleXML 的 XSLTProcessor::transformToDoc 回傳值的類型錯誤。

版本 8.2.11

  • 核心
    • 修正了 GH-11937 錯誤 (包含物件的常數 AST)。
    • 修正了 GH-11790 錯誤 (在 riscv64 上,如果實際需要才需要 libatomic)。
    • 修正了 GH-11876 錯誤:ini_parse_quantity() 接受無效的數量。
    • 修正了 GH-12073 錯誤 (釋放未完全初始化的閉包時發生區段錯誤)。
    • 修正了 GH-12060 錯誤 (內部迭代器倒帶處理常式被呼叫兩次)。
    • 修正了 GH-12102 錯誤 (在函式呼叫中使用 TMP 值上的陣列存取時,發生不正確的編譯錯誤)。
  • DOM
    • 修正了設定無效 DOMDocument 編碼時的記憶體洩漏。
  • Iconv
    • 修正了仍然使用舊版 iconv 簽章的 NetBSD 建置。
  • Intl
    • 修正了 GH-12020 錯誤 (在 MessageFormatter::formatMessage() 失敗後,intl_get_error_message() 損壞)。
  • MySQLnd
    • 修正了 GH-10270 錯誤 (透過 SSL 連線失敗時出現無效的錯誤訊息:「嘗試透過 (null) 連線」)。
  • ODBC
    • 修正了失敗的 SQLPrepare 的記憶體洩漏。
    • 修正了未關閉的持續程序性 ODBC 連線。
  • SimpleXML
    • 修正了 #52751 錯誤 (不支援 XPath processing-instruction() 函式)。
  • SPL
    • 修正了 GH-11972 錯誤 (8.1.18 中的 RecursiveCallbackFilterIterator 回歸)。
  • SQLite3
    • 修正了 GH-11878 錯誤 (帶有可呼叫陣列的 SQLite3 回呼函式會導致記憶體洩漏)。

版本 8.2.10

  • CLI
    • 修正了 GH-11716 錯誤 (使用 ZEND_RC_DEBUG=1 編譯時,cli 伺服器在 SIGINT 時當機)。
    • 修正了 GH-10964 錯誤 (改善關於內建伺服器的人工頁面)。
  • Date
    • 修正了 GH-11416 錯誤 (在傳入未初始化的物件時,DatePeriod 會當機)。
  • 核心
    • 修正了設定時 strerror_r 的偵測。
    • 修正了使用 DNF 類型的不正確繫結的特性類型屬性。
    • 修正了從內部特性複製時,未配置在 arena 中的特性屬性類型。
    • 修正了在延遲類別載入期間,屬性 DNF 類型的深層複製。
    • 修正了非 arena 配置類型的 DNF 類型的記憶體釋放。
  • DOM
    • 修正了 DOMEntity 欄位 getter 錯誤。
    • 修正了 DOMElement::setAttributeNodeNS 中不正確的屬性存在檢查。
    • 修正了與自身使用的 DOMCharacterData::replaceWith()。
    • 修正了 DOMParentNode 方法的空引數案例。
    • 修正了 GH-11791 錯誤 (DOMDocument::xmlStandalone 的錯誤預設值)。
    • 修正了 DOMDocument 上的 json_encode 結果。
    • 修正了在 DOM 類別上手動呼叫 __construct()。
    • 修正了 GH-11830 錯誤 (ParentNode 方法應該預先執行其檢查)。
    • 修正了 replaceWith 的可行下一個兄弟搜尋。
    • 修正了在子項目消失時呼叫 DOMParentNode::prepend() 會發生的區段錯誤。
  • FFI
    • 修正了在使用 FFI::cdef()->new(...) 時洩漏的定義。
  • Hash
    • 修正了 hash_pbkdf2() 中使用未初始化的值,並修正了簽章中遺失的 $options 參數。
  • MySQLnd
    • 修正了 GH-11440 錯誤 (使用 SSL 時,使用 sha256_password 帳戶進行驗證會失敗)。
    • 修正了 GH-11438 錯誤 (mysqlnd 無法使用長度超過 19 個字元的密碼來驗證 sha256_password 帳戶)。
    • 修正了 GH-11550 錯誤 (當回應欄位變更時,MySQL 語句會產生空的查詢結果,並且也會發生區段錯誤)。
    • 修正了連線中斷時出現的無效錯誤訊息「封包格式錯誤」。
  • Opcache
    • 修正了 GH-11715 錯誤 (opcache.interned_strings_buffer 沒有效果,或 opcache_get_status() / phpinfo() 不正確)。
    • 避免在重新啟動正在進行時,從 shm 載入指令碼時加入不必要的讀取鎖定。
  • PCNTL
    • 將接收 SIGCHLD 訊號的行為還原為 8.1.22 之前的行為。
  • SPL
    • 修正了 #81992 錯誤 (SplFixedArray::setSize() 導致使用後釋放)。
  • Standard
    • 防止 number_format 中 $decimals 上的整數溢位。
    • 修正了 GH-11870 錯誤 (修正截斷 tempnam 前置詞時的差一錯誤) (athos-ribeiro)

版本 8.2.9

  • 建置
    • 修正了 GH-11522 錯誤 (PHP 版本檢查使用 '-' 分隔符號會失敗)。
  • CLI
    • 修正了導致程序結束的中斷 CLI 輸出。
  • 核心
    • 修正了 oss-fuzz #60011 (by-reference nullsafe 運算子的錯誤編譯)。
    • 修正了 else 區塊上 JMP 指令的行號。
    • 修正了在 assert 上使用 ??= 時使用未初始化的值。
    • 修正了 oss-fuzz #60411 (修正箭頭函式的雙重編譯)。
    • 修正了 11.0 版本之前的 FreeBSD 建置。
  • Curl
    • 修正了將無效的回呼函式傳遞至 CURLMOPT_PUSHFUNCTION 時發生的當機。
  • Date
    • 修正了 GH-11368 錯誤 (Date modify 返回無效的日期時間)。
    • 修正了 GH-11600 錯誤 (無法剖析包含 (窄) 不斷行空格字元的時間字串)。
    • 修正了 GH-11854 錯誤 (DateTime:createFromFormat 停止剖析帶有多餘空格的日期時間)。
  • DOM
    • 修正了 GH-11625 錯誤 (DOMElement::replaceWith() 不會以 DOMDocumentFragment 取代節點,而只會根據 libxml2 版本刪除節點或導致包裝 <></>)。
  • Fileinfo
    • 修正了 GH-11298 錯誤 (finfo 為 xz 檔案返回錯誤的 mime 類型)。
  • FTP
    • 修正了「覆寫」的內容選項檢查。
    • 修正了 GH-10562 錯誤 (連續 ftp_nb_fget 時的記憶體洩漏和無效狀態)。
  • GD
    • 修正了大多數外部 libgd 測試失敗。
  • Intl
    • 修正了失敗時 MessageFormatter::format() 中的記憶體洩漏。
  • Libxml
    • 修正了 GHSA-3qrf-m4j2-pcrr 錯誤 (在未啟用 XML 的情況下,於 XML 中載入外部實體的安全性問題)。(CVE-2023-3823)
  • MBString
    • 修正了 GH-11300 錯誤 (授權問題:受限的 Unicode 授權標頭)。
  • Opcache
    • 修正了 GH-10914 錯誤 (帶有列舉和回呼函式的 OPCache 會導致區段錯誤)。
    • 如果無法配置加速的全域變數,則防止潛在的死結。
  • PCNTL
    • 修正了 GH-11498 錯誤 (SIGCHLD 不一定會從 proc_open 返回)。
  • PDO
    • 修正了 GH-11587 錯誤 (在 php8.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 物件的序列化。
  • Streams
    • 修正了 GH-11735 錯誤 (從自身取消註冊使用者串流包裝函式時發生使用後釋放)。
  • SQLite3
    • 修正了 SQLite3Stmt::__construct 中已取代的錯誤處理。
  • XMLReader
    • 修正了 GH-11548 錯誤 (當觀察者啟用時,以非靜態方式呼叫 XMLReader::open 或 XMLReader::XML 時發生引數損毀)。

版本 8.2.8

  • CLI
    • 修正了 GH-11246 錯誤 (cli/get_set_process_title 在 MacOS 上失敗)。
  • 核心
    • 修正了 riscv64 架構/GCC 12 的建置。
  • Curl
    • 修正了 GH-11433 錯誤 (無法將 CURLOPT_ACCEPT_ENCODING 設定為 NULL)。
  • Date
    • 修正了 GH-11455 錯誤 (帶有自訂物件日期屬性的區段錯誤)。
  • DOM
    • 修正了 GH-11288GH-11289GH-11290GH-9142 錯誤 (帶有 replaceWith 的 DOMExceptions 和區段錯誤)。
    • 修正了 GH-10234 錯誤 (設定 DOMAttr::textContent 會導致屬性值為空)。
    • 修正了 DOMNodeList::item stub 檔案中的回傳值。
    • 修正了 DOMDocument::getElementsByTagNameNS 的 '*' 命名空間的規格符合錯誤。
    • 修正了 DOMElement::append() 和 DOMElement::prepend() 階層檢查。
    • 修正了 GH-11347 錯誤 (在 xpath 查詢中呼叫靜態方法時發生記憶體洩漏)。
    • 修正了 #67440 錯誤 (DOMDocumentFragment 的 append_node 不會協調命名空間)。
    • 修正了 #81642 錯誤 (使用自身取代節點時,DOMChildNode::replaceWith() 錯誤)。
    • 修正了 #77686 錯誤 (getElementbyId 仍然返回已移除的元素)。
    • 修正了 #70359 錯誤 (DOMAttr 上的 print_r() 會導致 php_libxml_node_free_list() 中的區段錯誤)。
    • 修正了 #78577 錯誤 (DOMNameSpace 偵錯資訊處理常式中的當機)。
    • 修正了 getAttributeNodeNS() 的存留期問題。
    • 修正了已複製命名空間宣告的「無效狀態錯誤」。
    • 修正了 #55294 和 #47530 和 #47847 錯誤 (各種命名空間協調問題)。
    • 修正了 #80332 錯誤 (使用 DOMNamedNodeMap 的完全損壞陣列存取功能)。
  • Opcache
    • 修正了 zend_shared_alloc_startup() 中的配置迴圈。
    • 使用 ALLOC_FALLBACK 時 smm_shared_globals 上的存取違規。
    • 修正了 GH-11336 錯誤 (php 仍然嘗試使用 opcache.file_cache_only=1 解鎖共享記憶體 ZendSem,但它從未被鎖定)。
  • OpenSSL
    • 修正了 GH-9356 錯誤 (subjectAltNames 中 IPv6 位址欄位的不完整驗證) (James Lucas, Jakub Zelenka)。
  • PCRE
    • 修正了 preg_replace_callback_array() 模式驗證。
  • PGSQL
    • 修正了 pg_trace 間歇性的區段錯誤。
  • Phar
    • 修正了 FreeBSD phar 生成中的交叉編譯檢查。
  • SPL
    • 修正了 GH-11338 錯誤 (SplFileInfo 以多個斜線為空 getBasename)。
  • Standard
    • 修正了 array_merge_recursive() 中 NULL 指標的存取。
    • 修正了 array_multisort() 中的例外處理。
  • SQLite3
    • 修正了 GH-11451 錯誤 (包含重複鍵的無效關聯陣列)。

版本 8.2.7

  • 核心
    • 修正了 GH-11152 錯誤 (無法為包含保留類別名稱的命名空間設定別名)。
    • 修正了 GH-9068 錯誤 (條件跳躍或移動依賴於未初始化的值)。
    • 修正了 GH-11189 錯誤 (zend_hash_do_resize 中超出記憶體限制會使陣列處於無效狀態)。
    • 修正了 GH-11063 錯誤 (在舊版 GCC 上的編譯錯誤)。
    • 修正了 GH-11222 錯誤 (by-ref foreach 可能會在重新雜湊期間跳過索引鍵)。
  • Date
    • 修正錯誤 GH-11281 (DateTimeZone::getName() 在偏移量中未包含秒數)。
  • Exif
    • 修正錯誤 GH-10834 (exif_read_data() 無法讀取較小的串流封裝器區塊大小)。
  • FPM
    • 修正錯誤 GH-10461 (PHP-FPM 因使用子進程的 child->ev_std(out|err) 釋放後的記憶體而發生分段錯誤)。
    • 修正錯誤 #64539 (FPM 狀態頁面:query_string 未正確進行 JSON 編碼)。
    • 修正無效主要腳本檔案句柄的記憶體洩漏問題。
  • Hash
    • 修正錯誤 GH-11180 (hash_file() 似乎僅限於 3 個參數)。
  • LibXML
    • 修正錯誤 GH-11160 (使用新的 libxml 2.11.0 建置時,少數測試失敗)。
  • MBString
    • 修正錯誤 GH-11217 (當使用負偏移量和 ASCII 編碼時,mb_strrpos / mb_strripos 發生分段錯誤)。
  • Opcache
    • 修正錯誤 GH-11134 (不正確的預設分支最佳化)。
    • 修正過於寬鬆的 OR 和 AND 範圍推斷。
    • 修正啟用 OPcache 時遺失的類別重新宣告錯誤。
    • 修正錯誤 GH-11245 (在某些特定情況下,具有一個預設語句的 SWITCH 會導致分段錯誤)。
  • PCNTL
    • 修正 pcntl_forkx() 的最大參數計數。
  • PGSQL
    • 修正 pg_lo_export() 的參數解析。
  • Phar
    • 修正錯誤 GH-11099 (在交叉編譯期間無法產生 phar.php)。
  • Soap
    • 修正錯誤 GHSA-76gg-c692-v2mw (SOAP 的 HTTP Digest 驗證中遺失錯誤檢查且隨機位元組不足)。(CVE-2023-3247)
    • 修正錯誤 GH-8426 (建置 soap 擴展時 make test 失敗)。
  • SPL
    • 修正錯誤 GH-11178 (spl_array_it_get_current_data 中發生分段錯誤 (PHP 8.1.18))。
  • Standard
    • 修正錯誤 GH-11138 (move_uploaded_file() 對於來源檔案發出 open_basedir 警告)。
    • 修正錯誤 GH-11274 (在 HTTP 308 重新導向後,POST/PATCH 請求切換為 GET)。
  • Streams
    • 修正錯誤 GH-10031 ([串流] STREAM_NOTIFY_PROGRESS 對於最後一塊資料不規則地發出 HTTP 訊號)。
    • 修正錯誤 GH-11175 (串流 Socket 超時)。
    • 修正錯誤 GH-11177 (當 timeout = -1 傳遞至 stream_socket_accept/stream_socket_client 時,發生 ASAN UndefinedBehaviorSanitizer)。

版本 8.2.6

  • 核心
    • 修正常數表達式中不一致的浮點數負數運算。
    • 修正錯誤 GH-8841 (php-cli 呼叫格式不正確的函數時發生核心傾印)。
    • 修正錯誤 GH-10737 (PHP 8.1.16 在 sapi/apache2handler/sapi_apache2.c 的第 597 行發生分段錯誤)。
    • 修正錯誤 GH-11028 (zval_undefined_cv 中的堆積緩衝區溢位)。
    • 修正錯誤 GH-11108 (在 ??= 中中止後,不正確的 CG(memoize_mode) 狀態)。
  • Date
    • 修正在與時區識別符號相關的日期/時間的 DST 轉換時,diff() 方法不會傳回正確結果的錯誤。
    • 修正在 LONG_MIN unix 時間戳記周圍來回轉換時,超出範圍的錯誤。
  • DOM
    • 修正錯誤 #80602 (使用 DOMChildNode::before() 時發生分段錯誤)。
    • 修正 dom_zvals_to_fragment() 中不正確的錯誤處理。
  • Exif
    • 修正錯誤 GH-9397 (exif 讀取:警告和錯誤:潛在的無效位元組序、非法 IFD 大小和未定義索引)。
  • Intl
    • 修正錯誤 GH-11071 (不再顯示 TZData 版本)。
  • PCRE
    • 修正錯誤 GH-10968 (preg_replace_callback_array() 中發生分段錯誤)。
  • Reflection
    • 修正錯誤 GH-10983 (ReflectionObject::getProperties 中與狀態相關的分段錯誤)。
  • SPL
    • 處理間接 zval 並在 SplFixedArray::__serialize 中使用最新的屬性。
  • Standard
    • 修正錯誤 GH-10990 (mail() 在透過引用迭代 $additional_headers 陣列後,擲回 TypeError)。
    • 修正錯誤 GH-9775 (當使用列舉時,array_unique 會傳回重複項)。
  • Streams
    • 修正錯誤 GH-10406 (基於 UNIX 的 Socket 資源的 feof() 行為變更)。

版本 8.2.5

  • 核心
    • 新增在 ZTS/Linux 建置中對 max_execution_time 的可選支援 (Kévin Dunglas)
    • 修正遞迴 AST 評估中的使用後釋放。
    • 修正錯誤 GH-8646 (記憶體洩漏 PHP FPM 8.1)。
    • 重新新增一些因錯誤從 CTE 中移除的 CTE 函數。
    • 從 array_diff_ukey() 中移除 CTE 旗標,這是因錯誤新增的。
    • 修正錯誤 GH-10801 (CTE 函數中的命名引數導致分段錯誤)。
    • 修正錯誤 GH-8789 (PHP 8.0.20 (ZTS) zend_signal_handler_defer 在 apache 上當機)。
    • 修正錯誤 GH-10015 (zend_signal_handler_defer 在 apache 關閉時當機)。
    • 修正錯誤 GH-10810 (修正以 NUL 位元組終止 Exception::__toString())。
    • 修正混合使用 __callStatic() 和 FFI 時潛在的記憶體損毀問題。
  • Date
    • 修正錯誤 GH-10747 (序列化的 Date* 物件中的私有和受保護屬性會擲回錯誤)。
  • FPM
    • 修正錯誤 GH-10611 (fpm_env_init_main 會洩漏 environ)。
    • 在 fpm_main 中銷毀 file_handle。
    • 修正錯誤 #74129 (當路徑中有空格時,apache ProxyPassMatch 的 SCRIPT_NAME 不正確)。
  • FTP
    • 傳播 ftp_close() 的成功狀態。
    • 修正錯誤 GH-10521 (ftp_get/ftp_nb_get resumepos 偏移量的最大值為 10GB)。
  • IMAP
    • 修正 Clang 16 的建置失敗問題。
  • MySQLnd
    • 修正錯誤 GH-8979 (啟用 SSL 的 MySQL 連線可能發生記憶體洩漏)。
  • Opcache
    • 修正 macOS 的建置,以符合 pkg-config 設定。
    • 修正錯誤 GH-8065 (opcache.consistency_checks > 0 會在 fpm 環境中導致 PHP >= 8.1.5 發生分段錯誤)。
  • OpenSSL
    • 在檔案寫入函數中新增遺失的錯誤檢查。
  • PDO Firebird
    • 修正錯誤 GH-10908 (在具有 64 位元核心和 32 位元使用者空間的 RPI 上,使用 PDO Firebird 時發生匯流排錯誤)。
  • Phar
    • 修正錯誤 GH-10766 (使用 Phar::Zip 格式建立的 PharData 封存檔不會保留檔案中繼資料 (日期時間))。
    • 在 EVP_MD_CTX_create() 和 EVP_VerifyInit() 中新增遺失的錯誤檢查。
  • PDO ODBC
    • 修正 SQLAllocHandle 中遺失且不一致的錯誤檢查。
  • PGSQL
    • 修正 pg_meta_data (擴展模式) 傳回的陣列中的錯字。
  • SPL
    • 修正錯誤 GH-10519 (陣列資料位址參考問題)。
    • 修正錯誤 GH-10907 (無法在 PHP 8.2.4 中序列化已處理的 SplFixedArrays)。
    • 修正錯誤 GH-10844 (ArrayIterator 允許修改唯讀屬性)。
  • Standard
    • 修正錯誤 GH-10885 (stream_socket_server 環境洩漏)。
    • 修正錯誤 GH-10052 (Browscap 在請求關閉時 (apache2) 導致 PHP 8.1.12 當機)。
    • 修正 oss-fuzz #57392 (使用 \0 分隔符號和封閉符號的 php_fgetcsv() 中發生緩衝區溢位)。
    • 修正 unpack() 中的未定義行為。

版本 8.2.4

  • 核心
    • 修正 ZEND_YIELD 中不正確的檢查條件。
    • 修正類型推斷中不正確的檢查條件。
    • 修正 zend_internal_call_should_throw() 中不正確的檢查。
    • 修正 OnUpdateMemoryConsumption 中的溢位檢查。
    • 修正錯誤 GH-9916 (在關閉序列中,以暫停在產生器中的纖程發出無法避免的嚴重錯誤或當機)。
    • 修正錯誤 GH-10437 (在中止後,在關閉函數中使用纖程時發生分段錯誤/判斷提示)。
    • 修正複合指派運算碼的 SSA 物件類型更新。
    • 修正語言掃描器產生建置。
    • 修正 zend_update_static_property() 錯誤地呼叫具有錯誤傳回類型的 zend_update_static_property_ex()。
    • 修正錯誤 GH-10570 (修正使用整數常數名稱擷取屬性時,未知字串雜湊)。
    • 修正在 php_fopen_primary_script() 呼叫中,zend_destroy_file_handle() 釋放句柄上的懸空指標,因為它未初始化。
  • Curl
    • 修正在編譯時發出的棄用警告。
    • 修正錯誤 GH-10270 (無法在 readfunc 回呼中傳回 CURL_READFUNC_PAUSE)。
  • Date
    • 修正 GH-10447 ('p' 格式規範不會為 00:00 產生 'Z')。
    • 修正 GH-10152 (Date 子類別的自訂屬性不會序列化)。
    • 修正錯誤 GH-10747 (序列化的 Date* 物件中的私有和受保護屬性會擲回錯誤)。
  • FFI
    • 修正 ffi 位欄位中不正確的位元移位和遮罩。
  • Fiber
    • 修正 alpine x86 上的組譯碼。
    • 修正錯誤 GH-10496 (在纖程內呼叫垃圾收集器時發生分段錯誤)。
  • FPM
    • 修正錯誤 GH-10315 (FPM 未知子進程警示無效)。
    • 修正錯誤 GH-10385 (FPM 成功組態測試提早退出)。
  • GMP
    • 正確實作 GMP::__construct()。
  • Intl
    • 修正錯誤 GH-10647 (Spoolchecker isSuspicious/areConfusable 方法的錯誤代碼引數總是傳回 NULL0)。
  • JSON
    • 修正 JSON 掃描器和剖析器產生建置。
  • MBString
    • ext/mbstring:修正 new_value 長度檢查。
    • 修正錯誤 GH-10627 (mb_convert_encoding 在 Windows 上導致 PHP 當機)。
  • Opcache
    • 修正不正確的 page_size 檢查。
  • OpenSSL
    • 修正 php_openssl_set_server_dh_param() DH 參數的錯誤處理。
  • PDO OCI
    • 修正錯誤 #60994 (讀取多位元組 CLOB 時,上限為 8192 個字元)。
  • PHPDBG
    • 修正錯誤 GH-10715 (錯誤使用 --run 選項時發生堆積緩衝區溢位)。
  • PGSQL
    • 修正 GH-10672 (pg_lo_open 在 strict_types 模式下發生分段錯誤)。
  • Phar
    • 修正 phar tar 剖析中不正確的檢查。
  • Random
    • 修正 GH-10390 (請勿信任 glibc 上的 arc4random_buf())。
    • 修正 GH-10292 (將 srand() 和 mt_srand() 的第一個參數的預設值設為未知)。
  • Reflection
    • 修正錯誤 GH-10623 (Reflection::getClosureUsedVariables 運算碼使用可變引數修正)。
    • 修正當使用內部函數暫停的 ReflectionFiber 時發生分段錯誤。
  • Session
    • 修正在失敗程式碼路徑上使用 -1 而不是 0 作為 ps_files_cleanup_dir(),因為後者被呼叫者視為成功。(nielsdos)。
  • Standard
    • 修正錯誤 GH-8086 (引入 mail.mixed_lf_and_crlf INI)。
    • 修正錯誤 GH-10292 (將 srand() 和 mt_srand() 的第一個參數的預設值設為未知)。
    • 修正 map_from_unicode() 中 cs_8559_5 的不正確檢查。
    • 修正錯誤 GH-9697,用於 reset/end/next/prev() 嘗試移動某些內部類別 (例如 FFI 類別) 的屬性表格指標。
    • 修正 browsecap 中 pcre2_match() 的不正確錯誤檢查。
  • Streams
    • 修正錯誤 GH-10370 (使用 copy_file_range 時,_php_stream_copy_to_stream_ex 中發生檔案損毀)。
    • 修正錯誤 GH-10548 (copy() 因不正確的 copy_file_range() len 而在 cifs 掛載上失敗)。
  • Tidy
    • 修正嘗試開啟不存在的檔案或超過 4GB 的檔案時發生的記憶體洩漏問題。
    • 在 tidyLoadConfig 上新增遺失的錯誤檢查。
  • Zlib
    • 修正 output_handler 指示詞值的長度,該長度計算字串終止符。

版本 8.2.3

  • 核心
    • 修正了錯誤 #81744 (使用某些雜湊值時,Password_verify() 總是回傳 true)。 (CVE-2023-0567)
    • 修正了錯誤 #81746 (在通用路徑解析程式碼中發生 1 位元組的陣列溢位)。 (CVE-2023-0568)
  • SAPI
    • 修正了錯誤 GHSA-54hq-v5wp-fqgv (解析 multipart 請求主體時的 DOS 漏洞)。 (CVE-2023-0662)

版本 8.2.2

  • 核心
    • 修正了錯誤 GH-10200 (zif_get_object_vars:斷言 `!(((__ht)->u.flags & (1<<2)) != 0)' 失敗)。
    • 修正了 GH-10251 (斷言 `(flag & (1<<3)) == 0' 失敗)。
    • 修正了 GH-10240 (當向未封裝的陣列添加超過 2**30 個元素時,斷言失敗)。
    • 修正了 GH-9735 (Fiber 堆疊變數不參與循環收集器)。
    • 修正了 GH-9675 (內部列舉方法中損壞的 run_time_cache 初始化)。
  • FPM
    • 修正了錯誤 #77106 (FPM FastCGI 錯誤中缺少分隔符)。
    • 修正了錯誤 GH-9981 (FPM 未重置 fastcgi.error_header)。
    • 修正了錯誤 #68591 (組態測試未執行 UID 查找)。
    • 修正了執行 FPM 組態測試時的記憶體洩漏。
    • 修正了錯誤 #67244 (監聽 unix socket 的錯誤擁有者:群組)。
  • Hash
    • 處理 XXH3 初始化中 __toString 的例外狀況 (nielsdos)
  • LDAP
    • 修正了錯誤 GH-10112 (LDAP\Connection::__construct() 參照 ldap_create())。
  • Opcache
    • 修正了 zend_runtime_jit() 中反轉的退出值 (Max Kellermann)。
    • 修正了 accel_preload() 中對未初始化變數的存取。
    • 修正了 zend_jit_find_trace() 當機的問題。
    • 為 zend_jit_trace_exit 中的 EXIT_INVALIDATE 添加了遺失的鎖。
  • Phar
    • 修正了 phar_object.c 中壓縮方法的錯誤旗標檢查 (nielsdos)
  • PHPDBG
    • 修正了 phpdbg_load_module_or_extension() 中的未定義行為。
    • 修正了 phpdbg_create_conditional_breal() 中的 NULL 指標取消引用。
    • 修正了 GH-9710:phpdbg 因選項 "-h" 造成的記憶體洩漏 (nielsdos)
    • 修正了 phpdbg 在輸入格式錯誤時發生的區段錯誤 (nielsdos)
  • Posix
    • 修正了 posix_ttyname() 中的記憶體洩漏 (girgias)
  • Random
    • 修正了錯誤 GH-10247 (理論上 /dev/urandom 的檔案描述符洩漏)。
  • Standard
    • 修正了 GH-10187 (在 arm64 上使用 stripslashes() 時發生區段錯誤)。
    • 修正了錯誤 GH-10214 (在反序列化期間物件語法的驗證不完整)。
    • 修正了 repl_ht 中具有 UNDEF 插槽的 substr_replace。
  • XMLWriter
    • 修正了 xmlTextWriterEndElement 中遺失的檢查 (nielsdos)

版本 8.2.1

  • 核心
    • 修正了錯誤 GH-9905 (當類別未定義時,constant() 行為不一致)。
    • 修正了錯誤 GH-9918 (xxHash 的授權資訊未包含在 README.REDIST.BINS 檔案中)。
    • 修正了錯誤 GH-9890 (OpenSSL 舊版供應商在 Windows 上不可用)。
    • 修正了錯誤 GH-9650 (無法初始化堆積:[0x000001e7])。
    • 修正了 Windows ftok(3) 模擬中可能未定義的行為。
    • 修正了 GH-9769 (物件解封裝的誤導性錯誤訊息)。
  • Apache
    • 修正了錯誤 GH-9949 (不完整的 POST 請求上的部分內容)。
  • FPM
    • 修正了錯誤 GH-9959 (在錯誤 #66694 之後,Solaris 連接埠事件機制仍然損壞)。
    • 修正了錯誤 #68207 (設定 fastcgi.error_header 可能會導致警告)。
    • 修正了錯誤 #80669 (FPM 數值使用者無法設定群組)。
    • 修正了錯誤 GH-8517 (FPM 主要程序在 fpm_stdio_child_said 中隨機當機)。
  • Imap
    • 修正了錯誤 GH-10051 (IMAP:無法檢查 IMAP\Connection 是否仍然開啟)。
  • MBString
    • 修正了錯誤 GH-9535 (mb_strcut 在 mbstring 中的行為已在 PHP8.1 中變更)。
  • Opcache
    • 修正了錯誤 GH-9968 (OPCache 預載期間發生區段錯誤)。
  • OpenSSL
    • 修正了錯誤 GH-9997 (OpenSSL 引擎清理區段錯誤)。
    • 修正了錯誤 GH-9064 (如果 OpenSSL 使用 --no-ec 建置,PHP 無法建置)。
    • 修正了錯誤 GH-10000 (當 OpenSSL 使用 no-dsa 編譯時,OpenSSL 測試失敗)。
  • Pcntl
    • 修正了錯誤 GH-9298 (在 rshutdown 之後呼叫的訊號處理程式導致當機)。
  • PDO_Firebird
    • 修正了錯誤 GH-9971 (從 PDO_Firebird 回傳的 NUMERIC 值不正確)。
  • PDO/SQLite
    • 修正了錯誤 #81740 (PDO::quote() 可能會回傳未加引號的字串)。 (CVE-2022-31631)
  • Session
    • 修正了 GH-9932 (session name 使用 . 和 [ 時會靜默失敗)。
  • SPL
    • 修正了 GH-9883 (SplFileObject::__toString() 會讀取下一行)。
    • 修正了 GH-10011 (Trampoline 自動載入器將會重新註冊且無法取消註冊)。
  • SQLite3
    • 修正了錯誤 #81742 (透過使用 file URI 在 SQLite3 中繞過 open_basedir)。
  • TSRM
    • 修正了關於 IPC_PRIVATE 的 Windows shmget()。

版本 8.2.0

  • CLI
    • 修正了錯誤 #81496 (伺服器記錄不正確的請求方法)。
    • 更新了內建伺服器的 mime-type 表格。
    • 修正了透過 PHP_CLI_SERVER_WORKERS 環境變數,內建伺服器可能發生的溢位問題。
    • 透過變更 STDOUT、STDERR 和 STDIN 在資源銷毀時不關閉,修正了 GH-8575
    • 實作內建網頁伺服器在靜態資源上,回應 HEAD 請求時不包含主體。
    • 實作內建網頁伺服器在靜態資源上,回應 DELETE/PUT/PATCH 請求時傳回 HTTP 狀態 405。
    • 修正了錯誤 GH-9709 (使用 -w/-s 選項時的 Null 指標取消引用)。
  • COM
    • 修正了錯誤 GH-8750 (無法建立 VT_ERROR 變體類型)。
  • 核心
    • 修正了錯誤 #81380 (觀察者可能未正確初始化)。
    • 修正了錯誤 GH-7771 (修正常數運算式的檔名/行號)。
    • 修正了錯誤 GH-7792 (改進錯誤訊息中的類別類型)。
    • 支援 MacOS 上的巨型頁面。
    • 修正了錯誤 GH-8655 (將物件轉換為陣列不會解開 refcount=1 的參考)。
    • 修正了錯誤 GH-8661 (合併中的 Nullsafe 會觸發未定義的變數警告)。
    • 修正了錯誤 GH-7821GH-8418 (允許在支援的列舉中使用任意常數運算式)。
    • 修正了錯誤 GH-8810 (多行函式呼叫回溯中不正確的行號)。
    • 最佳化使用串流純粹封裝器建立新檔案的程式碼路徑。
    • 使用 safe_perealloc 而非 perealloc 作為 ZEND_PTR_STACK_RESIZE_IF_NEEDED,以避免可能發生的溢位。
    • 減少 var_export()、json_encode()、serialize()、iconv_*()、mb_ereg*()、session_create_id()、http_build_query()、strstr()、Reflection*::__toString() 回傳字串的記憶體佔用量。
    • 修正了錯誤 GH-8995 (WeakMap 物件參考偏移導致 TypeError)。
    • 新增了 error_log_mode ini 設定。
    • 更新了請求啟動訊息。
    • 修正了錯誤 GH-7900 (具有永不傳回類型的箭頭函式編譯時錯誤)。
    • 修正了最新 clang 中不正確的 double 到 long 的轉換。
    • 新增了在 trait 中定義常數的支援。
    • 停止為 `"{$g{'h'}}"` 錯誤地發出與不支援的語法嚴重錯誤同時出現的誤報棄用通知。
    • 修正了當在未捕獲例外狀況後,finally 區塊中的 exit() 發生時,發生未預期的已棄用動態屬性警告。
    • 修正了錯誤 GH-9323 (ZEND_RETURN/GC/zend_call_function 中當機) (Tim Starling)
    • 修正了錯誤 GH-9227 (忽略檔名中的尾隨點和空格)。
    • 修正了錯誤 GH-9285 (trait 無法在唯讀類別中使用)。
    • 修正了錯誤 GH-9186 (可以使用反序列化繞過 @strict-properties)。
    • 修正了錯誤 GH-9500 (在 readonly 關鍵字後使用帶有括號的 dnf 類型會導致剖析錯誤)。
    • 修正了錯誤 GH-9516 (作為參數的 (A&B)|D 應該允許 AB 或 D。而不僅僅是 A)。
    • 修正了 Opcache file_cache_only=1 的觀察者類別通知。
    • 修正了在 FreeBSD i386 架構上使用 Fiber 時發生的區段錯誤。
    • 修正了錯誤 GH-9655 (純交集類型不能隱含為可為 Null) (Girgias)
    • 修正了錯誤 GH-9589 (當模組已載入時,dl() 會發生區段錯誤)。
    • 修正了錯誤 GH-9752 (當使用額外的命名參數在引數評估期間中斷時,產生器會當機)。
    • 修正了錯誤 GH-9801 (當初始化期間超出記憶體限制時,產生器會當機)。
    • 修正了預先載入的列舉可能會發生區段錯誤的錯誤。
    • 修正了錯誤 GH-9823 (不要在 zend_closure_internal_handler 中重置函式)。
    • 修正了 Windows shm*() 函式中潛在的 NULL 指標取消引用。
    • 修正了使用建構函式屬性提升的內部屬性的目標驗證。
    • 修正了錯誤 GH-9750 (當在引數評估期間中斷時,產生器發生記憶體洩漏)。
    • 將 observer_declared_function_notify 移至 pass_two() 之後。
    • 不要在延伸模組中報告 MINIT 階段的內部類別別名。
  • Curl
    • 新增了對 CURLOPT_XFERINFOFUNCTION 的支援。
    • 新增了對 CURLOPT_MAXFILESIZE_LARGE 的支援。
    • 新增了 cURL 7.62 到 7.80 的新常數。
    • 新函式 curl_upkeep()。
  • Date
    • 修正了 GH-8458 (如果存在非相對項目,DateInterval::createFromDateString 不會拋出例外狀況)。
    • 修正了錯誤 #52015 (允許在 DatePeriod 迭代中包含結束日期) (Daniel Egeberg, Derick)
    • idate() 現在接受格式規範符 "N" (ISO 週幾) 和 "o" (ISO 年)。
    • 修正了錯誤 GH-8730 (DateTime::diff 錯誤計算是不同類型的相同時區)。
    • 修正了錯誤 GH-8964 (套用小於 1 秒的差異後的 DateTime 物件比較)。
    • 修正了錯誤 GH-9106 (自 PHP 8.1.0 以來,新增至 DateTimeInterface 的 DateInterval 1.5 秒會向下捨入)。
    • 修正了錯誤 #75035 (Datetime 無法反序列化「極端」日期)。
    • 修正了錯誤 #80483 (具有 5 位數年份的 DateTime 物件無法反序列化)。
    • 修正了錯誤 #81263 (DateTimeImmutable::diff 的錯誤結果)。
    • 修正了錯誤 GH-9431 (當沒有錯誤/警告時,DateTime::getLastErrors() 不會回傳 false)。
    • 修正了剖析使用 @ 符號的大負數時的錯誤。
  • DBA
    • 修正了當嘗試刪除不存在的金鑰時,LMDB 驅動程式掛起的問題 (Girgias)
    • 修正了在資料庫建立失敗時,LMDB 驅動程式的記憶體洩漏問題 (Girgias)
    • 修正了 GH-8856 (dba: lmdb: 允許覆寫 MDB_NOSUBDIR 旗標)。
  • FFI
    • 修正了錯誤 GH-9090 (支援在 FFI 中指派函式指標)。
  • Fileinfo
    • 修正了錯誤 GH-8805 (finfo 回傳 woff/woff2 檔案的錯誤 mime 類型)。
  • Filter
    • 新增了 FILTER_FLAG_GLOBAL_RANGE 以篩選全域 IP。
  • FPM
    • 針對無效的連接埠設定發出錯誤訊息。
    • 在基於 SELinux 的系統上,針對 FPM proc 可傾印性新增額外檢查。
    • 新增了對 macOS 上監聽佇列的支援。
    • 將 Linux 上 listen.backlog 的預設值變更為 -1。
    • 新增了 listen.setfib 集區選項,以在 FreeBSD 上設定路由 FIB。
    • 新增了 access.suppress_path 集區選項以篩選存取記錄項目。
    • 修正了 fpm 記分板上偶爾發生的擷取失敗警告。
    • 修正了錯誤 GH-9754 (當執行 php-fpm 8.1.11 時,SaltStack (使用 Python subprocess) 會掛起)。
  • FTP
    • 修正了 ftp_mdtm() 中遵循 POSIX 規範的日期時間格式字串。
  • GD
    • 修正了錯誤 #81739:由於 imageloadfont() 中輸入驗證不足造成的 OOB 讀取。 (CVE-2022-31630)
  • GMP
    • 修正了錯誤 GH-9308 (當將 GMP 物件傳遞至 gmp_init() 時,GMP 會拋出錯誤訊息)。
  • Hash
    • 修正了錯誤 #81738:長參數上的 hash_update() 中的緩衝區溢位。 (CVE-2022-37454)
  • Intl
    • 更新所有已過時的語言標籤為偏好的值
    • 修正 GH-7939 (無法反序列化 IntlTimeZone 物件)。
    • 修正 ICU 69.x 及更新版本的建置問題。
    • 宣告 Transliterator::$id 為唯讀,以允許子類別化。
    • 修正錯誤 GH-9421 (NumberFormatter 中 ValueError 的參數數量不正確)。
  • MBString
    • 修正錯誤 GH-9248 (mb_strimwidth() 中的區段錯誤)。
  • mysqli
    • 修正錯誤 GH-9841 (即使使用靜音錯誤模式,mysqli_query 仍會拋出警告)。
  • MySQLnd
    • 修正因對齊不匹配而導致的潛在堆積損壞。
  • OCI8
    • 新增 oci8.prefetch_lob_size 指令以調整 LOB 查詢效能
    • 已不再支援針對 Oracle Client libraries 10.1 和 10.2 進行建置。現在需要 Oracle Client libraries 11.2 或更新版本。
  • ODBC
    • 修正錯誤 GH-8300 (建立連線字串時,使用者輸入未被跳脫)。
    • 修正錯誤 GH-9347 (目前的 ODBC 活躍度檢查可能不足)。
  • Opcache
    • 將 JIT 緩衝區分配到靠近 PHP .text 段的位置,以允許使用直接的 IP 相對呼叫和跳轉。
    • 新增用於 macOs Instrument 的 JIT 效能分析產生之初始支援。
    • 修正錯誤 GH-8030 (JIT 和大型 match/switch 語句導致的區段錯誤)。
    • 針對 macOs 上的區段和可執行權限位元處理新增 JIT 支援改進。
    • 在 FreeNSD 上,將 JIT 緩衝區分配到靠近 .text 段的位置。
    • 修正錯誤 GH-9371 (在 mac arm64 上使用 JIT 導致的崩潰) (jdp1024/David Carlier)
    • 修正錯誤 GH-9259 (opcache.interned_strings_buffer 設定整數溢位)。
    • 在 x86 架構上新增 JIT 的間接呼叫減少。
    • 修正錯誤 GH-9164 (zend_accel_class_hash_copy 中的區段錯誤)。
    • 修正啟用觀察器時的 opcache 預載入。
  • OpenSSL
    • 當沒有逾時/非阻塞/MSG_DONTWAIT 時,捨棄套接字上的 poll 呼叫。
    • 修正錯誤 GH-9310 (SSL local_cert 和 local_pk 不遵守 open_basedir)。
    • 實作 FR #76935 ("chacha20-poly1305" 是一種 AEAD,但不像 AEAD 那樣工作)。
    • 新增 openssl_cipher_key_length 函數。
    • 修正錯誤 GH-9517 (與 PR GH-9366 相關的 openssl 擴充功能編譯錯誤)。
    • 修正遺失的 OpenSSL 引擎列表清除 - 嘗試修正 GH-8620
    • 修正錯誤 GH-8430 (使用 no-md2、no-md4 或 no-rmd160 編譯的 OpenSSL 無法建置)。
  • PCNTL
    • 修正 MacOS 的 pcntl_(get|set)priority 錯誤處理。
  • PCRE
    • 實作 FR #77726 (允許正規表示式模式中的空字元)。
    • 將捆綁的 libpcre 更新至 10.40。
  • PDO
    • 修正錯誤 GH-9818 (在 PDO 方法中初始化執行階段快取)。
  • PDO_Firebird
    • 修正錯誤 GH-8576 (當字元為 UTF-8 時,長度解釋錯誤)。
  • PDO_ODBC
    • 修正錯誤 #80909 (PDO_ODBC 中持續連線導致的崩潰)。
    • 修正錯誤 GH-8300 (建立連線字串時,使用者輸入未被跳脫)。
    • 修正錯誤 GH-9347 (目前的 ODBC 活躍度檢查可能不足)。
    • 修正錯誤 GH-9372 (繫結過長參數時的 HY010)。
  • PDO_PGSQL
    • 修正錯誤 GH-9411 (PgSQL 大型物件資源關閉不正確)。
  • Random
    • 新增隨機擴充功能。
    • 修正錯誤 GH-9067 (隨機擴充功能不是執行緒安全的)。
    • 修正錯誤 GH-9055 (如果使用者引擎拋出例外,則會發生區段錯誤)。
    • 修正錯誤 GH-9066 (帶符號整數溢位)。
    • 修正錯誤 GH-9083 (移位期間未定義的行為)。
    • 修正錯誤 GH-9088GH-9056 (在給定範圍內產生統一整數時,位元組的展開不正確)。
    • 修正錯誤 GH-9089 (在 Randomizer::__construct() 呼叫兩次時的記憶體洩漏)。
    • 修正錯誤 GH-9212 (PcgOneseq128XslRr64::jump() 不應允許負數的 $advance)。
    • 將 Mt19937 變更為針對無效的 $mode 拋出 ValueError 而不是 InvalidArgumentException。
    • 將 Random\Randomizer::getInt()(不帶參數)拆分為 Random\Randomizer::nextInt()。
    • 修正錯誤 GH-9235 (PcgOneseq128XslRr64::__construct() 的存根中不存在 $sequence 參數)。
    • 修正錯誤 GH-9190GH-9191 (處理大範圍時 MT_RAND_PHP 未定義的行為)。
    • 修正錯誤 GH-9249 (Xoshiro256StarStar 不拒絕無效的全零狀態)。
    • 從 Randomizer 方法中移除多餘的 RuntimeException。引擎拋出的例外將直接公開。
    • 新增擴充功能特定的例外/錯誤 (RandomException、RandomError、BrokenRandomEngineError)。
    • 修正錯誤 GH-9415 (使用 Mt19937 時,Randomizer::getInt(0, 2**32 - 1) 始終傳回 1)。
    • 修正 32 位元引擎的 Randomizer::getInt() 一致性。
    • 修正錯誤 GH-9464 (在舊版 macOs 上建置)。
    • 修正錯誤 GH-9839 (MT_RAND_PHP 的非 mt_rand() 函數的預 PHP 8.2 輸出相容性)。
  • Reflection
    • 新增 ReflectionFunction::isAnonymous()。
    • 新增 ReflectionMethod::hasPrototype()。
    • 將 ReflectionEnum::getBackingType() 傳回類型縮小為 ReflectionNamedType。
    • 修正錯誤 GH-8932 (ReflectionFunction 無法取得 Closure 的已呼叫類別)。
  • Session
    • 修正錯誤 GH-7787 (改進使用者錯誤處理常式的會期寫入失敗訊息)。
    • 修正 GH-9200 (setcookie 的過期日期格式已過時)。
    • 修正 GH-9584 (避免在不取消註冊自訂會期處理常式時發生記憶體損壞)。
    • 修正錯誤 GH-9583 (session_create_id() 在使用者定義的儲存處理常式沒有 validateId() 方法時失敗)。
  • SOAP
    • 修正錯誤 GH-9720 (在序列化回應時的空指標取消引用)。
  • Sockets
    • 新增 TCP_NOTSENT_LOWAT 套接字選項。
    • 新增 SO_MEMINFO 套接字選項。
    • 新增 SO_RTABLE 套接字選項 (OpenBSD),相當於 SO_MARK (Linux)。
    • 新增 TCP_KEEPALIVE、TCP_KEEPIDLE、TCP_KEEPINTVL、TCP_KEEPCNT 套接字選項。
    • 新增 FreeBSD 的輔助資料支援。
    • 新增 NetBSD 的輔助資料支援。
    • 新增 SO_BPF_EXTENSIONS 套接字選項。
    • 新增 SO_SETFIB 套接字選項。
    • 新增 TCP_CONGESTION 套接字選項。
    • 新增 SO_ZEROCOPY/MSG_ZEROCOPY 選項。
    • 新增 Solaris 的 SOL_FILTER 套接字選項。
    • 修正 PHP 8.2.0beta3 中的套接字常數回歸問題。
  • Sodium
    • 新增 sodium_crypto_stream_xchacha20_xor_ic()。
  • SPL
    • 使用 safe_erealloc 而不是 erealloc 來處理 SplHeap::insert 方法的堆積成長,以避免可能的溢位。
    • 將 iterator_to_array() 和 iterator_count() 的 $iterator 參數擴展為可迭代。
    • 修正錯誤 #69181 (READ_CSV|DROP_NEW_LINE 會捨棄欄位中的換行符號)。
    • 修正錯誤 #65069 (GlobIterator 不正確處理 open_basedir 檢查)。
  • SQLite3
    • 將 sqlite3.defensive 從 PHP_INI_SYSTEM 變更為 PHP_INI_USER。
  • Standard
    • net_get_interfaces() 也會在 Windows 上報告無線網路介面。
    • 完成 getimagesize() 中的 AVIF 支援。
    • 修正錯誤 GH-7847 (具有大型 haystack 的 stripos 效能不佳)。
    • 新增函數 memory_reset_peak_usage()。
    • 修正 parse_url():無法辨識沒有 scheme 的埠。
    • 已棄用 utf8_encode() 和 utf8_decode()。
    • 修正使用 clang > 12 建置的 crypt_sha256/512 api。
    • 使用 safe_erealloc 而不是 erealloc 來處理 getopt 中的選項,以避免可能的溢位。
    • 實作 FR GH-8924 (str_split 應該針對空字串傳回空陣列)。
    • 新增 ini_parse_quantity 函數以將 ini 數量簡寫標記法轉換為 int。
    • 針對 Linux glibc 2.36 及更新版本的 random_bytes 啟用 arc4random_buf。
    • 在 macOs 上使用 CCRandomGenerateBytes 而不是 arc4random_buf。(David Carlier)。
    • 修正錯誤 #65489 (glob() basedir 檢查不一致)。
    • 修正 GH-9200 (setcookie 的過期日期格式已過時)。
    • 修正 GH-9244 (array_multisort + array_shift 導致的區段錯誤)。
    • 修正錯誤 GH-9296 (`ksort` 在具有混合索引鍵的陣列上的行為不正確)。
    • 將 crypt() 的 $string 參數標記為 #[\SensitiveParameter]。
    • 修正錯誤 GH-9464 (在舊版 macOs 上建置)。
    • 修正錯誤 GH-9518 (停用 IPv6 支援會停用不相關的常數)。
    • 還原「修正 parse_url():無法辨識沒有 scheme 的埠。」(andypost)
    • 修正在模組已載入時,DL_UNLOAD() 後讀取 module_entry 導致的崩潰。
  • Streams
    • 在連線到遠端主機時,如果可用則設定 IP_BIND_ADDRESS_NO_PORT。
    • 修正錯誤 GH-8548 (stream_wrapper_unregister() 會洩漏記憶體)。
    • 當沒有逾時/非阻塞/MSG_DONTWAIT 時,捨棄套接字上的 poll 呼叫。
    • 修正錯誤 GH-9316 (長狀態列的 $http_response_header 不正確)。
    • 修正錯誤 GH-9590 (stream_select 不會在例外或空的有效 fd 集合時中止)。
    • 修正錯誤 GH-9653 (不同檔案系統之間的檔案複製)。
    • 修正錯誤 GH-9779 (如果目標處於附加模式,則 stream_copy_to_stream 失敗)。
  • Windows
    • 新增針對 ARM64 進行 (交叉) 建置的初步支援。
  • XML
    • 新增 libxml_get_external_entity_loader() 函數。
  • Zip
    • 新增 ZipArchive::clearError() 方法
    • 新增 ZipArchive::getStreamName() 方法
    • 新增 ZipArchive::getStreamIndex() 方法
    • 在 Windows 上,Zip 擴充功能現在預設會建置為共用程式庫 (DLL)。
    • 如果可能,在使用 libzip 1.9.1 時實作 zip 串流的 fseek。

版本 8.1.31

  • CLI
    • 修正錯誤 GHSA-4w77-75f9-2c8w(CLI SAPI 介面中 sapi_read_post_data 處理的堆積使用後釋放)。
  • LDAP
  • MySQLnd
    • 修正了錯誤 GHSA-h35g-vwh6-m678 (透過堆積緩衝區過度讀取洩漏堆積的部分內容)。 (CVE-2024-8929)
  • PDO DBLIB
    • 修正了錯誤 GHSA-5hqh-c84r-qjcv (dblib 引號器中的整數溢位導致 OOB 寫入)。 (CVE-2024-11236)
  • PDO Firebird
    • 修正了錯誤 GHSA-5hqh-c84r-qjcv (firebird 引號器中的整數溢位導致 OOB 寫入)。 (CVE-2024-11236)
  • Streams
    • 修正了錯誤 GHSA-c5f2-jwm7-mmq2 (在 stream 上下文中設定 Proxy 可能允許在 URI 中進行 CRLF 注入)。 (CVE-2024-11234)
    • 修正了錯誤 GHSA-r977-prxv-hc43 (使用 convert.quoted-printable-decode 篩選器進行單一位元組過度讀取)。 (CVE-2024-11233)

版本 8.1.30

  • CGI
    • 修正錯誤 GHSA-p99j-rfp4-xqvq (繞過 CVE-2024-4577,參數注入漏洞)。(CVE-2024-8926)
    • 修正錯誤 GHSA-94p6-54jq-9mwp (由於環境變數衝突,可以繞過 cgi.force_redirect 設定)。(CVE-2024-8927)
  • FPM
    • 修正錯誤 GHSA-865w-9rf3-2wh5 (可以變更子進程的記錄)。(CVE-2024-9026)
  • SAPI
    • 修正錯誤 GHSA-9pqp-7h25-4f32 (多部分表單資料的錯誤剖析)。(CVE-2024-8925)

版本 8.1.29

  • CGI
    • 修正了錯誤 GHSA-3qgc-jrrr-25jv (繞過 CVE-2012-1823,PHP-CGI 中的引數注入)。 (CVE-2024-4577)
  • Filter
    • 修正了錯誤 GHSA-w8qr-v226-r27w (filter_var FILTER_VALIDATE_URL 中的篩選器繞過)。 (CVE-2024-5458)
  • OpenSSL
    • PHP 中的 openssl_private_decrypt 函式,當使用 PKCS1 填補時 (OPENSSL_PKCS1_PADDING,這是預設值),除非它與包含此提取要求變更的 OpenSSL 版本一起使用:https://github.com/openssl/openssl/pull/13817 (rsa_pkcs1_implicit_rejection),否則容易受到 Marvin 攻擊。這些變更屬於 OpenSSL 3.2 的一部分,並且也已向後移植到各種 Linux 發行版的穩定版本,以及自上次發佈以來為 Windows 提供的 PHP 建置版本。所有發行者和建置者都應確保使用此版本以防止 PHP 容易受到攻擊。
  • Standard
    • 修正了錯誤 GHSA-9fcc-425m-g385 (繞過 CVE-2024-1874)。 (CVE-2024-5585)

版本 8.1.28

  • Standard
    • 修正錯誤 GHSA-pc52-254m-w9w7 (透過 proc_open 的陣列式 $command 參數進行命令注入)。(CVE-2024-1874)
    • 修正錯誤 GHSA-wpj3-hf5j-x4v4 (由於部分 CVE-2022-31629 修復,__Host-/__Secure- Cookie 繞過)。(CVE-2024-2756)
    • 修正錯誤 GHSA-h746-cjrr-wfmr (password_verify 可能會錯誤地傳回 true,開啟 ATO 風險)。(CVE-2024-3096)

版本 8.1.27

  • 核心
    • 修正 oss-fuzz #54325 (使用惡意錯誤處理常式在變數-變數中釋放名稱後使用)。
    • 修正 oss-fuzz #64209 (在 php_message_handler_for_zend 中就地修改檔案名稱)。
    • 修正錯誤 GH-12758 / GH-12768 (ZEND_FUNC_GET_ARGS 和 ZEND_BIND_STATIC 內的 OOM 處理器中存在無效的 opline)。
  • DOM
    • 修正錯誤 GH-12616 (DOM:移除 XMLNS 命名空間節點會產生無效的預設:前綴)。
  • FPM
    • 修正錯誤 GH-12705 (fpm_status_export_to_zval 中發生分段錯誤)。
  • Intl
    • 修正錯誤 GH-12635 (使用 ICU 74.1 時,Test bug69398.phpt 失敗)。
  • LibXML
    • 修正錯誤 GH-12702 (從 src 建置 libxml2 2.12.0 的問題)。
  • MySQLnd
    • 避免使用未初始化的結構。
  • OpenSSL
    • 修正錯誤 #50713 (openssl_pkcs7_verify() 可能會忽略不受信任的 CA)。
  • PCRE
    • 修正錯誤 GH-12628 (gh11374 測試在 Alpinelinux 上失敗)。
  • PGSQL
    • 修正錯誤 GH-12763 (pg_untrace 的引數型別錯誤)。
  • PHPDBG
    • 修正錯誤 GH-12675 (phpdbg_prompt.c 中的 MEMORY_LEAK)。
  • SQLite3
    • 修正錯誤 GH-12633 (sqlite 3.44.0 時,sqlite3_defensive.phpt 失敗)。
  • Standard
    • 修正 syslog 裝置處理中的記憶體洩漏。
    • 修正錯誤 GH-12621 (在 vhost 中設定時,browscap 區段錯誤)。
    • 修正錯誤 GH-12655 (proc_open() 不會將描述符陣列中的參考納入考量)。
  • Streams
    • 修正錯誤 #79945 (imagecreatefrompng 中的串流包裝函式會造成區段錯誤)。
  • Zip
    • 修正錯誤 GH-12661 (ZipArchive::addGlob remove_path 選項行為中的不一致)。

版本 8.1.26

  • 核心
    • 修正錯誤 GH-12468 (透過 trait 覆寫靜態屬性時 doc_comment 重複釋放)。
    • 修正 FFI 物件的弱參考造成的區段錯誤。
    • 修正 max_execution_time:不要刪除未初始化的計時器。
  • DOM
    • 修正註冊具有抽象類別的 registerNodeClass 時發生崩潰。
    • 新增遺失的 NULL 指標錯誤檢查。
    • 修正 php:function() 回呼的驗證邏輯。
  • Fiber
    • 修正錯誤 GH-11121 (ReflectionFiber 區段錯誤)。
  • FPM
    • 修正錯誤 GH-9921 (在 FPM 設定中載入 ext 不會註冊模組處理常式)。
    • 修正錯誤 GH-12232 (FPM:動態載入沒有 opcache 的擴充功能時發生區段錯誤)。
  • Intl
    • 移除 IntlDateFormatter::construct 在使用無效的地區設定時擲出例外的 BC 中斷。
  • Opcache
    • 新增無法啟用 JIT 時的警告訊息。
    • 修正錯誤 GH-8143 (由於磁碟快取損毀,升級至 8.1.3 後,zend_accel_inheritance_cache_find 中發生崩潰)。
  • OpenSSL
    • 修正錯誤 GH-12489 (openssl_cms_verify 中遺失 sigbio 建立檢查)。
  • PCRE
    • 修正錯誤 GH-11374 (回溯上游修正,使用 -d pcre.jit=0 時,preg_match 結果不同)。
  • SOAP
    • 修正錯誤 GH-12392 (SoapClient::__getTypes 發生區段錯誤)。
    • 修正錯誤 #66150 (SOAP WSDL 快取競爭條件造成區段錯誤)。
    • 修正錯誤 #67617 (SOAP 在 ENOSPC 時留下不完整的快取檔案)。
    • 修正 SOAP 快取中的 URI 檢查不正確的問題。
    • 修正具有參考計數屬性和陣列時發生的區段錯誤和斷言失敗。
    • 修正在持久編碼器的邊緣案例中可能發生的崩潰。
    • 修正錯誤 #75306 (SoapClient 中的記憶體洩漏)。
  • Streams
    • 修正錯誤 #75708 (在 StreamWrappers 上使用「&$imageinfo」的 getimagesize 失敗)。
  • XMLReader
    • 新增遺失的 NULL 指標錯誤檢查。
  • XMLWriter
    • 新增遺失的 NULL 指標錯誤檢查。
  • XSL
    • 新增遺失的模組相依性。
    • 修正 php:function() 回呼的驗證邏輯。

版本 8.1.25

  • 核心
    • 修正錯誤 GH-12207 (類別使用具有 doc 區塊的 trait 時發生記憶體洩漏)。
    • 修正錯誤 GH-12215 (正在覆寫的模組項目會在 ext/dom 中造成型別錯誤)。
    • 修正錯誤 GH-12273 (__builtin_cpu_init 檢查)。
    • 修正錯誤 #80092 (ZTS + preload = 關機時發生區段錯誤)。
  • CLI
    • 確保存在單一 Date 標頭。
  • CType
    • 修正了 GH-11997 錯誤 (ctype_alnum 在 PHP 8.1 或更高版本中速度慢 5 倍)。
  • DOM
    • 恢復舊的命名空間協調行為。
    • 修正了 GH-8996 錯誤 (在 PHP ^8.1 上進行 DOMNode 序列化)。
  • Fileinfo
    • 修正了 GH-11891 錯誤 (fileinfo 為某些 svg 檔案返回 text/xml)。
  • Filter
    • 修正了帶有 FILTER_CALLBACK 的明確 FILTER_REQUIRE_SCALAR (ilutov)
  • Hash
    • 修正了 GH-12186 錯誤 (複製/克隆已最終化的 HashContext 時發生區段錯誤)。
  • Intl
    • 修正了 GH-12243 錯誤 (在 IntlDateFormatter::construct 上發生區段錯誤)。
    • 修正了 GH-12282 錯誤 (IntlDateFormatter::construct 應該在無效的 locale 上拋出例外)。
  • MySQLnd
    • 修正了 GH-12297 錯誤 (PHP Startup: 在 Unknown 行中出現無效的函式庫 (可能不是 PHP 函式庫) 'mysqlnd.so')。
  • Opcache
    • 修正了已刪除檔案上的 opcache_invalidate()。
    • 修正了 GH-12380 錯誤 (JIT+閉包內部的私有陣列屬性存取會存取子類別中的私有屬性)。
  • PCRE
    • 修正了 GH-11956 錯誤 (回溯上游修正,啟用 JIT 的 PCRE 正規表示式會產生不同的結果)。
  • SimpleXML
    • 修正了 GH-12170 錯誤 (無法在 SimpleXML 中使用帶有註解的 xpath)。
    • 修正了 GH-12223 錯誤 (實體參照在 var_dump/print_r 中產生無限迴圈)。
    • 修正了 GH-12167 錯誤 (無法在 SimpleXML 中取得處理指令內容)。
    • 修正了 GH-12169 錯誤 (無法在 SimpleXML 中取得註解內容)。
  • Streams
    • 修正了 GH-12190 錯誤 (以位址和連接埠皆為 0 的方式繫結 ipv4 位址)。
  • XML
    • 修正了 xml_parse_into_struct() stub 的回傳類型。
    • 修正了兩次呼叫 xml_parse_into_struct() 時的記憶體洩漏。
  • XSL
    • 修正了帶有 SimpleXML 的 XSLTProcessor::transformToDoc 回傳值的類型錯誤。
  • Sockets
    • 修正具有錯誤協定的 socket_export_stream() (twosee)

版本 8.1.24

  • 核心
    • 修正了 GH-11937 錯誤 (包含物件的常數 AST)。
    • 修正了 GH-11790 錯誤 (在 riscv64 上,如果實際需要才需要 libatomic)。
    • 修正了 GH-12073 錯誤 (釋放未完全初始化的閉包時發生區段錯誤)。
    • 修正了 GH-12060 錯誤 (內部迭代器倒帶處理常式被呼叫兩次)。
    • 修正了 GH-12102 錯誤 (在函式呼叫中使用 TMP 值上的陣列存取時,發生不正確的編譯錯誤)。
  • DOM
    • 修正了設定無效 DOMDocument 編碼時的記憶體洩漏。
  • Iconv
    • 修正了仍然使用舊版 iconv 簽章的 NetBSD 建置。
  • Intl
    • 修正了 GH-12020 錯誤 (在 MessageFormatter::formatMessage() 失敗後,intl_get_error_message() 損壞)。
  • MySQLnd
    • 修正了 GH-10270 錯誤 (透過 SSL 連線失敗時出現無效的錯誤訊息:「嘗試透過 (null) 連線」)。
  • ODBC
    • 修正了失敗的 SQLPrepare 的記憶體洩漏。
    • 修正了未關閉的持續程序性 ODBC 連線。
  • SimpleXML
    • 修正了 #52751 錯誤 (不支援 XPath processing-instruction() 函式)。
  • SPL
    • 修正了 GH-11972 錯誤 (8.1.18 中的 RecursiveCallbackFilterIterator 回歸)。
  • SQLite3
    • 修正了 GH-11878 錯誤 (帶有可呼叫陣列的 SQLite3 回呼函式會導致記憶體洩漏)。

版本 8.1.23

  • CLI
    • 修正了 GH-11716 錯誤 (使用 ZEND_RC_DEBUG=1 編譯時,cli 伺服器在 SIGINT 時當機)。
    • 修正了 GH-10964 錯誤 (改善關於內建伺服器的人工頁面)。
  • 核心
    • 修正了設定時 strerror_r 的偵測。
  • Date
    • 修正錯誤 GH-11416:當傳入未初始化的物件時,DatePeriod 發生崩潰。
  • DOM
    • 修正了 DOMEntity 欄位 getter 錯誤。
    • 修正了 DOMElement::setAttributeNodeNS 中不正確的屬性存在檢查。
    • 修正了與自身使用的 DOMCharacterData::replaceWith()。
    • 修正了 DOMParentNode 方法的空引數案例。
    • 修正了 GH-11791 錯誤 (DOMDocument::xmlStandalone 的錯誤預設值)。
    • 修正了 DOMDocument 上的 json_encode 結果。
    • 修正了在 DOM 類別上手動呼叫 __construct()。
    • 修正了 GH-11830 錯誤 (ParentNode 方法應該預先執行其檢查)。
    • 修正了在子項目消失時呼叫 DOMParentNode::prepend() 會發生的區段錯誤。
  • FFI
    • 修正了在使用 FFI::cdef()->new(...) 時洩漏的定義。
  • MySQLnd
    • 修正了 GH-11440 錯誤 (使用 SSL 時,使用 sha256_password 帳戶進行驗證會失敗)。
    • 修正了 GH-11438 錯誤 (mysqlnd 無法使用長度超過 19 個字元的密碼來驗證 sha256_password 帳戶)。
    • 修正了 GH-11550 錯誤 (當回應欄位變更時,MySQL 語句會產生空的查詢結果,並且也會發生區段錯誤)。
    • 修正了連線中斷時出現的無效錯誤訊息「封包格式錯誤」。
  • Opcache
    • 修正了 GH-11715 錯誤 (opcache.interned_strings_buffer 沒有效果,或 opcache_get_status() / phpinfo() 不正確)。
    • 避免在重新啟動正在進行時,從 shm 載入指令碼時加入不必要的讀取鎖定。
  • PCNTL
    • 將接收 SIGCHLD 訊號的行為還原為 8.1.22 之前的行為。
  • SPL
    • 修正了 #81992 錯誤 (SplFixedArray::setSize() 導致使用後釋放)。
  • Standard
    • 防止 number_format 中 $decimals 上的整數溢位。
    • 修正了 GH-11870 錯誤 (修正截斷 tempnam 前置詞時的差一錯誤) (athos-ribeiro)

版本 8.1.22

  • 建置
    • 修正了 GH-11522 錯誤 (PHP 版本檢查使用 '-' 分隔符號會失敗)。
  • CLI
    • 修正了導致程序結束的中斷 CLI 輸出。
  • 核心
    • 修正了 oss-fuzz #60011 (by-reference nullsafe 運算子的錯誤編譯)。
    • 修正了在 assert 上使用 ??= 時使用未初始化的值。
    • 修正了 11.0 版本之前的 FreeBSD 建置。
  • Curl
    • 修正了將無效的回呼函式傳遞至 CURLMOPT_PUSHFUNCTION 時發生的當機。
  • Date
    • 修正了 GH-11368 錯誤 (Date modify 返回無效的日期時間)。
  • DOM
    • 修正了 GH-11625 錯誤 (DOMElement::replaceWith() 不會以 DOMDocumentFragment 取代節點,而只會根據 libxml2 版本刪除節點或導致包裝 <></>)。
  • Fileinfo
    • 修正了 GH-11298 錯誤 (finfo 為 xz 檔案返回錯誤的 mime 類型)。
  • FTP
    • 修正了「覆寫」的內容選項檢查。
    • 修正了 GH-10562 錯誤 (連續 ftp_nb_fget 時的記憶體洩漏和無效狀態)。
  • GD
    • 修正了大多數外部 libgd 測試失敗。
  • Hash
    • 修正了 hash_pbkdf2() 中使用未初始化的值,並修正了簽章中遺失的 $options 參數。
  • Intl
    • 修正了失敗時 MessageFormatter::format() 中的記憶體洩漏。
  • Libxml
    • 修正了 GHSA-3qrf-m4j2-pcrr 錯誤 (在未啟用 XML 的情況下,於 XML 中載入外部實體的安全性問題)。(CVE-2023-3823)
  • MBString
    • 修正了 GH-11300 錯誤 (授權問題:受限的 Unicode 授權標頭)。
  • Opcache
    • 修正了 GH-10914 錯誤 (帶有列舉和回呼函式的 OPCache 會導致區段錯誤)。
    • 如果無法配置加速的全域變數,則防止潛在的死結。
  • PCNTL
    • 修正了 GH-11498 錯誤 (SIGCHLD 不一定會從 proc_open 返回)。
  • PCRE
    • 使用 JIT 選項修改 PCRE 正規表示式快取索引鍵。
  • PDO
    • 修正了 GH-11587 錯誤 (在 php8.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 中已取代的錯誤處理。

版本 8.1.21

  • CLI
    • 修正了 GH-11246 錯誤 (cli/get_set_process_title 在 MacOS 上失敗)。
  • 核心
    • 修正了 riscv64 架構/GCC 12 的建置。
  • Curl
    • 修正了 GH-11433 錯誤 (無法將 CURLOPT_ACCEPT_ENCODING 設定為 NULL)。
  • DOM
    • 修正了 GH-11288GH-11289GH-11290GH-9142 錯誤 (帶有 replaceWith 的 DOMExceptions 和區段錯誤)。
    • 修正了 GH-10234 錯誤 (設定 DOMAttr::textContent 會導致屬性值為空)。
    • 修正了 DOMNodeList::item stub 檔案中的回傳值。
    • 修正了 DOMDocument::getElementsByTagNameNS 的 '*' 命名空間的規格符合錯誤。
    • 修正了 DOMElement::append() 和 DOMElement::prepend() 階層檢查。
    • 修正了 GH-11347 錯誤 (在 xpath 查詢中呼叫靜態方法時發生記憶體洩漏)。
    • 修正了 #67440 錯誤 (DOMDocumentFragment 的 append_node 不會協調命名空間)。
    • 修正了 #81642 錯誤 (使用自身取代節點時,DOMChildNode::replaceWith() 錯誤)。
    • 修正了 #77686 錯誤 (getElementbyId 仍然返回已移除的元素)。
    • 修正了 #70359 錯誤 (DOMAttr 上的 print_r() 會導致 php_libxml_node_free_list() 中的區段錯誤)。
    • 修正了 #78577 錯誤 (DOMNameSpace 偵錯資訊處理常式中的當機)。
    • 修正了 getAttributeNodeNS() 的存留期問題。
    • 修正了已複製命名空間宣告的「無效狀態錯誤」。
    • 修正了 #55294 和 #47530 和 #47847 錯誤 (各種命名空間協調問題)。
    • 修正了 #80332 錯誤 (使用 DOMNamedNodeMap 的完全損壞陣列存取功能)。
  • Opcache
    • 修正了 zend_shared_alloc_startup() 中的配置迴圈。
    • 使用 ALLOC_FALLBACK 時 smm_shared_globals 上的存取違規。
    • 修正了 GH-11336 錯誤 (php 仍然嘗試使用 opcache.file_cache_only=1 解鎖共享記憶體 ZendSem,但它從未被鎖定)。
  • OpenSSL
    • 修正了 GH-9356 錯誤 (subjectAltNames 中 IPv6 位址欄位的不完整驗證) (James Lucas, Jakub Zelenka)。
  • PGSQL
    • 修正了 pg_trace 間歇性的區段錯誤。
  • Phar
    • 修正了 FreeBSD phar 生成中的交叉編譯檢查。
  • SPL
    • 修正了 GH-11338 錯誤 (SplFileInfo 以多個斜線為空 getBasename)。
  • Standard
    • 修正了 array_merge_recursive() 中 NULL 指標的存取。
    • 修正了 array_multisort() 中的例外處理。

版本 8.1.20

  • 核心
    • 修正了 GH-9068 錯誤 (條件跳躍或移動依賴於未初始化的值)。
    • 修正了 GH-11189 錯誤 (zend_hash_do_resize 中超出記憶體限制會使陣列處於無效狀態)。
    • 修正了 GH-11222 錯誤 (by-ref foreach 可能會在重新雜湊期間跳過索引鍵)。
  • Date
    • 修正錯誤 GH-11281 (DateTimeZone::getName() 在偏移量中未包含秒數)。
  • Exif
    • 修正錯誤 GH-10834 (exif_read_data() 無法讀取較小的串流封裝器區塊大小)。
  • FPM
    • 修正錯誤 GH-10461 (PHP-FPM 因使用子進程的 child->ev_std(out|err) 釋放後的記憶體而發生分段錯誤)。
    • 修正錯誤 #64539 (FPM 狀態頁面:query_string 未正確進行 JSON 編碼)。
    • 修正無效主要腳本檔案句柄的記憶體洩漏問題。
  • Hash
    • 修正錯誤 GH-11180 (hash_file() 似乎僅限於 3 個參數)。
  • LibXML
    • 修正錯誤 GH-11160 (使用新的 libxml 2.11.0 建置時,少數測試失敗)。
  • Opcache
    • 修正錯誤 GH-11134 (不正確的預設分支最佳化)。
    • 修正過於寬鬆的 OR 和 AND 範圍推斷。
    • 修正錯誤 GH-11245 (在某些特定情況下,具有一個預設語句的 SWITCH 會導致分段錯誤)。
  • PGSQL
    • 修正 pg_lo_export() 的參數解析。
  • Phar
    • 修正錯誤 GH-11099 (在交叉編譯期間無法產生 phar.php)。
  • Soap
    • 修正錯誤 GHSA-76gg-c692-v2mw (SOAP 的 HTTP Digest 驗證中遺失錯誤檢查且隨機位元組不足)。(CVE-2023-3247)
    • 修正錯誤 GH-8426 (建置 soap 擴展時 make test 失敗)。
  • SPL
    • 修正錯誤 GH-11178 (spl_array_it_get_current_data 中發生分段錯誤 (PHP 8.1.18))。
  • Standard
    • 修正錯誤 GH-11138 (move_uploaded_file() 對於來源檔案發出 open_basedir 警告)。
    • 修正錯誤 GH-11274 (在 HTTP 308 重新導向後,POST/PATCH 請求切換為 GET)。
  • Streams
    • 修正錯誤 GH-10031 ([串流] STREAM_NOTIFY_PROGRESS 對於最後一塊資料不規則地發出 HTTP 訊號)。
    • 修正錯誤 GH-11175 (串流 Socket 超時)。
    • 修正錯誤 GH-11177 (當 timeout = -1 傳遞至 stream_socket_accept/stream_socket_client 時,發生 ASAN UndefinedBehaviorSanitizer)。

版本 8.1.19

  • 核心
    • 修正常數表達式中不一致的浮點數負數運算。
    • 修正錯誤 GH-8841 (php-cli 呼叫格式不正確的函數時發生核心傾印)。
    • 修正錯誤 GH-10737 (PHP 8.1.16 在 sapi/apache2handler/sapi_apache2.c 的第 597 行發生分段錯誤)。
    • 修正錯誤 GH-11028 (zval_undefined_cv 中的堆積緩衝區溢位)。
    • 修正錯誤 GH-11108 (在 ??= 中中止後,不正確的 CG(memoize_mode) 狀態)。
  • DOM
    • 修正錯誤 #80602 (使用 DOMChildNode::before() 時發生分段錯誤)。
    • 修正 dom_zvals_to_fragment() 中不正確的錯誤處理。
  • Exif
    • 修正錯誤 GH-9397 (exif 讀取:警告和錯誤:潛在的無效位元組序、非法 IFD 大小和未定義索引)。
  • Intl
    • 修正錯誤 GH-11071 (不再顯示 TZData 版本)。
  • PCRE
    • 修正錯誤 GH-10968 (preg_replace_callback_array() 中發生分段錯誤)。
  • Standard
    • 修正錯誤 GH-10990 (mail() 在透過引用迭代 $additional_headers 陣列後,擲回 TypeError)。
    • 修正錯誤 GH-9775 (當使用列舉時,array_unique 會傳回重複項)。

版本 8.1.18

  • 核心
    • 在 ZTS/Linux 建置中新增 max_execution_time 的選用支援。
    • 修正遞迴 AST 評估中的使用後釋放。
    • 修正錯誤 GH-8646 (記憶體洩漏 PHP FPM 8.1)。
    • 修正錯誤 GH-10801 (CTE 函數中的命名引數導致分段錯誤)。
    • 修正錯誤 GH-8789 (PHP 8.0.20 (ZTS) zend_signal_handler_defer 在 apache 上當機)。
    • 修正錯誤 GH-10015 (zend_signal_handler_defer 在 apache 關閉時當機)。
    • 修正錯誤 GH-10810 (修正以 NUL 位元組終止 Exception::__toString())。
    • 修正混合使用 __callStatic() 和 FFI 時潛在的記憶體損毀問題。
  • Date
    • 修正錯誤 GH-10583 (具有時區模式的 DateTime 修改不應更新連結的時區)。
  • FPM
    • 修正錯誤 GH-10611 (fpm_env_init_main 會洩漏 environ)。
    • 在 fpm_main 中銷毀 file_handle。
    • 修正錯誤 #74129 (當路徑中有空格時,apache ProxyPassMatch 的 SCRIPT_NAME 不正確)。
  • FTP
    • 傳播 ftp_close() 的成功狀態。
    • 修正錯誤 GH-10521 (ftp_get/ftp_nb_get resumepos 偏移量的最大值為 10GB)。
  • IMAP
    • 修正 Clang 16 的建置失敗問題。
  • MySQLnd
    • 修正錯誤 GH-8979 (啟用 SSL 的 MySQL 連線可能發生記憶體洩漏)。
  • Opcache
    • 修正 macOS 的建置,以符合 pkg-config 設定。
    • 修正錯誤 GH-8065 (opcache.consistency_checks > 0 會在 fpm 環境中導致 PHP >= 8.1.5 發生分段錯誤)。
  • OpenSSL
    • 在檔案寫入函數中新增遺失的錯誤檢查。
  • PDO Firebird
    • 修正錯誤 GH-10908 (在具有 64 位元核心和 32 位元使用者空間的 RPI 上,使用 PDO Firebird 時發生匯流排錯誤)。
  • PDO ODBC
    • 修正 SQLAllocHandle 中遺失且不一致的錯誤檢查。
  • Phar
    • 修正錯誤 GH-10766 (使用 Phar::Zip 格式建立的 PharData 封存檔不會保留檔案中繼資料 (日期時間))。
    • 在 EVP_MD_CTX_create() 和 EVP_VerifyInit() 中新增遺失的錯誤檢查。
  • PGSQL
    • 修正 pg_meta_data (擴展模式) 傳回的陣列中的錯字。
  • SPL
    • 修正錯誤 GH-10519 (陣列資料位址參考問題)。
    • 修正錯誤 GH-10844 (ArrayIterator 允許修改唯讀屬性)。
  • Standard
    • 修正錯誤 GH-10885 (stream_socket_server 環境洩漏)。
    • 修正錯誤 GH-10052 (Browscap 在請求關閉時 (apache2) 導致 PHP 8.1.12 當機)。
    • 修正 oss-fuzz #57392 (使用 \0 分隔符號和封閉符號的 php_fgetcsv() 中發生緩衝區溢位)。
    • 修正 unpack() 中的未定義行為。

版本 8.1.17

  • 核心
    • 修正 ZEND_YIELD 中不正確的檢查條件。
    • 修正類型推斷中不正確的檢查條件。
    • 修正 OnUpdateMemoryConsumption 中的溢位檢查。
    • 修正錯誤 GH-9916 (在關閉序列中,以暫停在產生器中的纖程發出無法避免的嚴重錯誤或當機)。
    • 修正錯誤 GH-10437 (在中止後,在關閉函數中使用纖程時發生分段錯誤/判斷提示)。
    • 修正複合指派運算碼的 SSA 物件類型更新。
    • 修正語言掃描器產生建置。
    • 修正 zend_update_static_property() 錯誤地呼叫具有錯誤傳回類型的 zend_update_static_property_ex()。
    • 修正錯誤 GH-10570 (修正使用整數常數名稱擷取屬性時,未知字串雜湊)。
    • 修正在 php_fopen_primary_script() 呼叫中,zend_destroy_file_handle() 釋放句柄上的懸空指標,因為它未初始化。
  • Curl
    • 修正在編譯時發出的棄用警告。
    • 修正錯誤 GH-10270 (無法在 readfunc 回呼中傳回 CURL_READFUNC_PAUSE)。
  • Date
    • 修正 GH-10447 ('p' 格式規範不會為 00:00 產生 'Z')。
  • FFI
    • 修正 ffi 位欄位中不正確的位元移位和遮罩。
  • Fiber
    • 修正 alpine x86 上的組譯碼。
    • 修正錯誤 GH-10496 (在纖程內呼叫垃圾收集器時發生分段錯誤)。
  • FPM
    • 修正錯誤 GH-10315 (FPM 未知子進程警示無效)。
    • 修正錯誤 GH-10385 (FPM 成功組態測試提早退出)。
  • Intl
    • 修正錯誤 GH-10647 (Spoolchecker isSuspicious/areConfusable 方法的錯誤代碼引數總是傳回 NULL0)。
  • JSON
    • 修正 JSON 掃描器和剖析器產生建置。
  • MBString
    • ext/mbstring:修正 new_value 長度檢查。
    • 修正錯誤 GH-10627 (mb_convert_encoding 在 Windows 上導致 PHP 當機)。
  • Opcache
    • 修正不正確的 page_size 檢查。
  • OpenSSL
    • 修正 php_openssl_set_server_dh_param() DH 參數的錯誤處理。
  • PDO OCI
    • 修正錯誤 #60994 (讀取多位元組 CLOB 時,上限為 8192 個字元)。
  • PHPDBG
    • 修正錯誤 GH-10715 (錯誤使用 --run 選項時發生堆積緩衝區溢位)。
  • PGSQL
    • 修正 GH-10672 (pg_lo_open 在 strict_types 模式下發生分段錯誤)。
  • Phar
    • 修正 phar tar 剖析中不正確的檢查。
  • Reflection
    • 修正錯誤 GH-10623 (Reflection::getClosureUsedVariables 運算碼使用可變引數修正)。
    • 修正當使用內部函數暫停的 ReflectionFiber 時發生分段錯誤。
  • Session
    • 修正在失敗程式碼路徑上使用 -1 而不是 0 作為 ps_files_cleanup_dir(),因為後者被呼叫者視為成功。(nielsdos)。
  • Standard
    • 修正錯誤 GH-10292 (將 srand() 和 mt_srand() 的第一個參數的預設值設為未知)。
    • 修正 map_from_unicode() 中 cs_8559_5 的不正確檢查。
    • 修正錯誤 GH-9697,用於 reset/end/next/prev() 嘗試移動某些內部類別 (例如 FFI 類別) 的屬性表格指標。
    • 修正 browsecap 中 pcre2_match() 的不正確錯誤檢查。
  • Tidy
    • 修正嘗試開啟不存在的檔案或超過 4GB 的檔案時發生的記憶體洩漏問題。
    • 在 tidyLoadConfig 上新增遺失的錯誤檢查。
  • Zlib
    • 修正 output_handler 指示詞值的長度,該長度計算字串終止符。

版本 8.1.16

  • 核心
    • 修正錯誤 #81744 (Password_verify() 總是針對某些雜湊傳回 true)。
    • 修正錯誤 #81746 (通用路徑解析程式碼中的 1 位元組陣列溢出)。
  • SAPI
    • 修正了錯誤 GHSA-54hq-v5wp-fqgv (解析 multipart 請求主體時的 DOS 漏洞)。 (CVE-2023-0662)

版本 8.1.15

  • Apache
    • 修正了錯誤 GH-9949 (不完整的 POST 請求上的部分內容)。
  • 核心
    • 修正錯誤 GH-10072 (當 execute_ex 被覆寫且從內部程式碼使用 __call 跳轉時,PHP 會崩潰)。
    • 修正了 GH-10251 (斷言 `(flag & (1<<3)) == 0' 失敗)。
    • 修正在運算碼更新後,區塊最佳化傳遞中的錯誤比較。
  • Date
    • 修正錯誤 GH-9891 (使用 unixtimestamp (@) 修改的 DateTime 必須像 setTimestamp 那樣工作)。
    • 修正錯誤 GH-10218 (DateTimeZone 無法解析包含 "+" 字元的時區)。
  • Fiber
    • 修正在堆疊配置大小上的斷言。
  • FPM
    • 修正了錯誤 GH-9981 (FPM 未重置 fastcgi.error_header)。
    • 修正了錯誤 #67244 (監聽 unix socket 的錯誤擁有者:群組)。
  • Hash
    • 處理 XXH3 初始化中 __toString 的例外狀況 (nielsdos)
  • LDAP
    • 修正了錯誤 GH-10112 (LDAP\Connection::__construct() 參照 ldap_create())。
  • MBString
    • 已修正:mb_strlen(以及其他幾個 mbstring 函數)會錯誤地將 0x80、0xFD、0xFE、0xFF 和某些其他位元組值視為 2 位元組 SJIS 字元的第一個位元組。
  • Opcache
    • 修正了 zend_runtime_jit() 中反轉的退出值 (Max Kellermann)。
    • 修正了 accel_preload() 中對未初始化變數的存取。
    • 修正了 zend_jit_find_trace() 當機的問題。
    • 為 zend_jit_trace_exit 中的 EXIT_INVALIDATE 添加了遺失的鎖。
  • Phar
    • 修正了 phar_object.c 中壓縮方法的錯誤旗標檢查 (nielsdos)
  • PHPDBG
    • 修正了 phpdbg_load_module_or_extension() 中的未定義行為。
    • 修正了 phpdbg_create_conditional_breal() 中的 NULL 指標取消引用。
    • 修正了 GH-9710:phpdbg 因選項 "-h" 造成的記憶體洩漏 (nielsdos)
    • 修正了 phpdbg 在輸入格式錯誤時發生的區段錯誤 (nielsdos)
  • Posix
    • 修正了 posix_ttyname() 中的記憶體洩漏 (girgias)
  • Standard
    • 修正了 GH-10187 (在 arm64 上使用 stripslashes() 時發生區段錯誤)。
    • 修正了 repl_ht 中具有 UNDEF 插槽的 substr_replace。
  • TSRM
    • 修正了關於 IPC_PRIVATE 的 Windows shmget()。
  • XMLWriter
    • 修正了 xmlTextWriterEndElement 中遺失的檢查 (nielsdos)

版本 8.1.14

  • 核心
    • 修正了錯誤 GH-9905 (當類別未定義時,constant() 行為不一致)。
    • 修正了錯誤 GH-9918 (xxHash 的授權資訊未包含在 README.REDIST.BINS 檔案中)。
    • 修正了錯誤 GH-9650 (無法初始化堆積:[0x000001e7])。
    • 修正了 Windows ftok(3) 模擬中可能未定義的行為。
  • Date
    • 修正錯誤 GH-9699 (DateTimeImmutable::diff 在 8.1.10 及更新版本中的差異 - 與時區相關)。
    • 修正錯誤 GH-9700 (DateTime::createFromFormat:解析 TZID 字串太貪婪)。
    • 修正錯誤 GH-9866 (\DateTimeInterface::diff() 中的時區錯誤)。
    • 修正錯誤 GH-9880 (使用時區時,DateTime diff 在天數計數上傳回錯誤符號)。
  • FPM
    • 修正了錯誤 GH-9959 (在錯誤 #66694 之後,Solaris 連接埠事件機制仍然損壞)。
    • 修正了錯誤 #68207 (設定 fastcgi.error_header 可能會導致警告)。
    • 修正了錯誤 GH-8517 (FPM 主要程序在 fpm_stdio_child_said 中隨機當機)。
  • MBString
    • 修正了錯誤 GH-9535 (mb_strcut 在 mbstring 中的行為已在 PHP8.1 中變更)。
  • Opcache
    • 修正了錯誤 GH-9968 (OPCache 預載期間發生區段錯誤)。
  • OpenSSL
    • 修正了錯誤 GH-9064 (如果 OpenSSL 使用 --no-ec 建置,PHP 無法建置)。
    • 修正了錯誤 GH-10000 (當 OpenSSL 使用 no-dsa 編譯時,OpenSSL 測試失敗)。
  • Pcntl
    • 修正了錯誤 GH-9298 (在 rshutdown 之後呼叫的訊號處理程式導致當機)。
  • PDO_Firebird
    • 修正了錯誤 GH-9971 (從 PDO_Firebird 回傳的 NUMERIC 值不正確)。
  • PDO/SQLite
    • 修正了錯誤 #81740 (PDO::quote() 可能會回傳未加引號的字串)。 (CVE-2022-31631)
  • Session
    • 修正了 GH-9932 (session name 使用 . 和 [ 時會靜默失敗)。
  • SPL
    • 修正了 GH-9883 (SplFileObject::__toString() 會讀取下一行)。
    • 修正了 GH-10011 (Trampoline 自動載入器將會重新註冊且無法取消註冊)。
  • SQLite3
    • 修正了錯誤 #81742 (透過使用 file URI 在 SQLite3 中繞過 open_basedir)。

版本 8.1.13

  • CLI
    • 修正了錯誤 GH-9709 (使用 -w/-s 選項時的 Null 指標取消引用)。
  • 核心
    • 修正了錯誤 GH-9752 (當使用額外的命名參數在引數評估期間中斷時,產生器會當機)。
    • 修正了錯誤 GH-9801 (當初始化期間超出記憶體限制時,產生器會當機)。
    • 修正了 Windows shm*() 函式中潛在的 NULL 指標取消引用。
    • 修正了錯誤 GH-9750 (當在引數評估期間中斷時,產生器發生記憶體洩漏)。
  • Date
    • 修正錯誤 GH-9763 (DateTimeZone ctr 處理輸入錯誤,如果參數是超過 100*60 分鐘的偏移量,則會新增空位元組)。
  • FPM
    • 修正了錯誤 GH-9754 (當執行 php-fpm 8.1.11 時,SaltStack (使用 Python subprocess) 會掛起)。
  • mysqli
    • 修正錯誤 GH-9841 (即使使用靜音錯誤模式,mysqli_query 仍會拋出警告)。
  • MySQLnd
    • 修正因對齊不匹配而導致的潛在堆積損壞。
  • OpenSSL
    • 修正錯誤 GH-8430 (使用 no-md2、no-md4 或 no-rmd160 編譯的 OpenSSL 無法建置)。
  • SOAP
    • 修正 GH-9720 (序列化回應時的空指標取值)。

版本 8.1.12

  • 核心
    • 修正了在 FreeBSD i386 架構上使用 Fiber 時發生的區段錯誤。
  • Fileinfo
    • 修正了錯誤 GH-8805 (finfo 回傳 woff/woff2 檔案的錯誤 mime 類型)。
  • GD
    • 修正了錯誤 #81739:由於 imageloadfont() 中輸入驗證不足造成的 OOB 讀取。 (CVE-2022-31630)
  • Hash
    • 修正了錯誤 #81738:長參數上的 hash_update() 中的緩衝區溢位。 (CVE-2022-37454)
  • MBString
    • 修正錯誤 GH-9683 (在 mb_encode_mimeheader 中指定 ISO-2022-JP-MS 時發生的問題)。
  • Opcache
    • 在 x86 架構上新增 JIT 的間接呼叫減少。
  • Session
    • 修正錯誤 GH-9583 (session_create_id() 在使用者定義的儲存處理常式沒有 validateId() 方法時失敗)。
  • Streams
    • 修正錯誤 GH-9590 (stream_select 不會在例外或空的有效 fd 集合時中止)。

版本 8.1.11

  • 核心
    • 修正錯誤 #81726:phar 封裝:使用 quine gzip 檔案時發生 DOS 攻擊。(CVE-2022-31628)
    • 修正錯誤 #81727:不要篡改與具有特定語義含義的 HTTP 變數名稱衝突的變數名稱。(CVE-2022-31629)
    • 修正了錯誤 GH-9323 (ZEND_RETURN/GC/zend_call_function 中當機) (Tim Starling)
    • 修正錯誤 GH-9361 (腳本退出時發生區段錯誤 #9379)。
    • 修正錯誤 GH-9447 (在常數表達式中,針對 new 和類別常數,AST 轉儲發出的類別 FQN 無效)。
  • DOM
    • 修正錯誤 #79451 (在 doctype 上執行 DOMDocument->replaceChild 會導致 double free)。
  • FPM
    • 修正錯誤 GH-8885 (在守護進程重新載入後,使用 stderr 的 FPM access.log 開始將日誌寫入 error_log)。
    • 修正錯誤 #77780 (當先前的連線中止時,出現「Headers already sent...」)。
  • GMP
    • 修正了錯誤 GH-9308 (當將 GMP 物件傳遞至 gmp_init() 時,GMP 會拋出錯誤訊息)。
  • Intl
    • 修正錯誤 GH-9421 (NumberFormatter 中 ValueError 的參數數量不正確)。
  • PCRE
    • 修正 Apple Silicon 上的 pcre.jit。
  • PDO_PGSQL
    • 修正錯誤 GH-9411 (PgSQL 大型物件資源關閉不正確)。
  • Reflection
    • 修正錯誤 GH-8932 (ReflectionFunction 無法取得 Closure 的已呼叫類別)。
  • Streams
    • 修正錯誤 GH-9316 (長狀態列的 $http_response_header 不正確)。

版本 8.1.10

  • 核心
    • 修正 run-tests.php 的 --CGI-- 支援。
    • 修正了最新 clang 中不正確的 double 到 long 的轉換。
    • 修正錯誤 GH-9266 (當存在 dtors 時,GC 根緩衝區會持續增長)。
  • Date
    • 修正了錯誤 GH-8730 (DateTime::diff 錯誤計算是不同類型的相同時區)。
    • 修正了錯誤 GH-8964 (套用小於 1 秒的差異後的 DateTime 物件比較)。
    • 修正錯誤 GH-9106:(自 PHP 8.1.0 起,新增至 DateTimeInterface 的 DateInterval 1.5 秒會被捨去)。
    • 修正了錯誤 #81263 (DateTimeImmutable::diff 的錯誤結果)。
  • DBA
    • 修正 LMDB 驅動程式在資料庫建立失敗時的記憶體洩漏。
    • 修正錯誤 GH-9155 (dba_open("non-existing", "c-", "flatfile") 發生區段錯誤)。
  • IMAP
    • 修正錯誤 GH-9309 (在 imap_close() 之後使用連線時發生區段錯誤)。
  • Intl
    • 修正 IntlDateFormatter::formatObject() 參數類型。
  • MBString
    • 修正錯誤 GH-9008 (mb_detect_encoding():使用 null $encodings 時結果錯誤)。
  • OPcache
    • 修正錯誤 GH-9033 (由於長度為負數,載入黑名單檔案可能會失敗)。
    • 修正錯誤 GH-9164 (zend_accel_class_hash_copy 中的區段錯誤)。
  • PDO_SQLite
    • 修正錯誤 GH-9032 (SQLite3 authorizer 在 NULL 值時崩潰)。
  • SQLite3
    • 修正錯誤 GH-9032 (SQLite3 authorizer 在 NULL 值時崩潰)。
  • Streams
    • 修正錯誤 GH-8472 (stream_socket_accept 傳回的資源可能具有不正確的中繼資料)。
    • 修正錯誤 GH-8409 (SSL 交握逾時會導致持續連線掛起)。

版本 8.1.9

  • CLI
    • 修正了透過 PHP_CLI_SERVER_WORKERS 環境變數,內建伺服器可能發生的溢位問題。
    • 修正 GH-8952 (不再能刻意關閉標準處理常式)。
  • 核心
    • 修正錯誤 GH-8923 (Windows 上的 error_log 可能會保留檔案寫入鎖定)。
    • 修正了錯誤 GH-8995 (WeakMap 物件參考偏移導致 TypeError)。
  • Date
    • 修正錯誤 #80047 (DatePeriod 不會警告自訂的 DateTimeImmutable)。
  • FPM
    • 修正 zlog 訊息前置,在不正確的位址上釋放。
    • 修正組態載入失敗時可能發生的 double free。(Heiko Weber)。
  • GD
    • 修正錯誤 GH-8848 (imagecopyresized() 錯誤參考到錯誤的引數)。
  • Intl
    • 修正 ICU 69.x 及更新版本的建置問題。
  • OPcache
    • 修正錯誤 GH-8847 (當檢查有效檔案的 php 語法時,PHP 無限期地以 100% CPU 執行)。
    • 修正錯誤 GH-8030 (JIT 和大型 match/switch 語句導致的區段錯誤)。
  • Reflection
    • 修正錯誤 GH-8943 (修正具有 readonly 修飾詞的 Reflection::getModifierNames())。
  • Standard
    • 修正使用 clang > 12 建置的 crypt_sha256/512 api。
    • 在 macOs 上使用 CCRandomGenerateBytes 而不是 arc4random_buf。(David Carlier)。
    • 修正錯誤 GH-9017 (php_stream_sock_open_from_socket 可能會傳回 NULL)。

版本 8.1.8

  • 核心
    • 修正錯誤 GH-8338 (Intel CET 被意外停用)。
    • 修正使用 JIT 時,在內部列舉的 Enum::from/tryFrom 中發生洩漏
    • 修正從擴充功能程式碼以靜態返回類型呼叫內部方法。
    • 修正了錯誤 GH-8655 (將物件轉換為陣列不會解開 refcount=1 的參考)。
    • 修正 php_binary_init() 中潛在的 use after free。
  • CLI
    • 修正 GH-8827 (不再能刻意關閉標準處理常式)。
  • COM
    • 修正錯誤 GH-8778 (大型數字變體的整數算術失敗)。
  • Curl
    • 修正 CURLOPT_TLSAUTH_TYPE 未被視為字串選項。
  • Date
    • 修正錯誤 #72963 (在 CreateFromFormat 和相關函式中注入空位元組)。
    • 修正錯誤 #74671 (DST 時區縮寫具有不正確的偏移量)。
    • 修正錯誤 #77243 (對於負數年份,星期幾的計算不正確)。
    • 修正錯誤 #78139 (timezone_open 接受無效的時區字串引數)。
  • Fileinfo
    • 修正錯誤 #81723 (finfo_buffer 中堆積緩衝區溢位)。(CVE-2022-31627)
  • FPM
    • 修正錯誤 #67764 (fpm:syslog.ident 無法運作)。
  • GD
    • 修正 imagecreatefromavif() 記憶體洩漏。
  • MBString
    • mb_detect_encoding 識別捷克字母表中的所有字母
    • mb_detect_encoding 識別匈牙利字母表中的所有字母
    • 修正錯誤 GH-8685 (mbstring 啟動時 pcre 尚未就緒)。
    • 還原 Shift-JIS 中 0x5C/0x7E 的向後相容對應,因為它們已在 8.1.0 中變更。
  • ODBC
    • 修正單一金鑰連線字串的處理。
  • OPcache
    • 修正錯誤 GH-8591 (在私有實例方法變更後追蹤 JIT 崩潰)。
  • OpenSSL
    • 修正錯誤 #50293 (數個 openssl 函式會忽略 VCWD)。
    • 修正錯誤 #81713 (數個使用憑證的 OpenSSL 函式中注入 NULL 位元組)。
  • PDO_ODBC
    • 修正單一金鑰連線字串的處理。
  • Zip
    • 修正錯誤 GH-8781 (ZipArchive::close 會刪除 zip 檔案,而不會更新 stat 快取)。

版本 8.1.7

  • CLI
    • 修正錯誤 GH-8575 (CLI 過早關閉標準串流)。
  • Date
    • 修正錯誤 #51934 (strtotime 複數 / 時間不正確)。
    • 修正錯誤 #51987 (Datetime 無法剖析 ISO 8601 序數日期 (擴充格式))。
    • 修正錯誤 #66019 (DateTime 物件不支援短 ISO 8601 時間格式 - YYYY-MM-DDTHH)
    • 修正錯誤 #68549 (當使用日期時,未正確使用時區和偏移量)
    • 修正錯誤 #81565 (當提供包含秒的時區時,日期剖析失敗)。
    • 修正錯誤 GH-7758 (負數時間戳記和分數的問題)。
  • FPM
    • 修正 MacOS 上的 ACL 建置檢查。
    • 修正錯誤 #72185: php-fpm 寫入空白 fcgi 記錄導致 nginx 502。
  • mysqlnd
    • 修正錯誤 #81719:mysqlnd/pdo 密碼緩衝區溢位。(CVE-2022-31626)
  • OPcache
    • 修正錯誤 GH-8461 (在函式/方法變更後追蹤 JIT 崩潰)。
  • OpenSSL
    • 修正錯誤 #79589 (錯誤:14095126:SSL routines:ssl3_read_n:unexpected eof while reading)。
  • Pcntl
    • 修正 Haiku 建置。
  • pgsql
    • 修正錯誤 #81720:pg_query_params() 中未初始化的陣列。(CVE-2022-31625)
  • Soap
    • 修正錯誤 GH-8578 (SoapHeader 建構函式上錯誤參數的錯誤)。
    • 修正錯誤 GH-8538 (SoapClient 可能會移除 nmtokens 的部分內容)。
  • SPL
    • 修正錯誤 GH-8235 (iterator_count() 可能會無限期地執行)。
  • Standard
    • 修正錯誤 GH-8185 (在 ZTS 中 dl() 之後卸載擴充功能時發生崩潰)。
  • Zip
    • 修正 ZipArchive::replaceFile 中索引的類型。

版本 8.1.6

  • 核心
    • 修正錯誤 GH-8310 (不再識別登錄設定)。
    • 修正在資源 ID 配置期間可能發生的競爭條件。
    • 修正錯誤 GH-8133 (預先載入包含列舉的陣列的常數會發生區段錯誤)。
    • 修正 Haiku ZTS 建置。
  • Date
    • 修正錯誤 GH-7752 (DateTimeZone::getTransitions() 傳回的資料不足)。
    • 修正錯誤 GH-8108 (時區無法如預期運作)。
    • 修正錯誤 #81660 (DateTimeZone::getTransitions() 傳回無效資料)。
    • 修正錯誤 GH-8289 (在產生器中,不會重新擲回從產生器中產生之迭代器內擲回的例外)。
  • FFI
    • 修正錯誤 GH-8433 (在 FFI 中將函式指標指派給結構時發生洩漏)。
  • FPM
    • 修正錯誤 #76003 (FPM /status 回報的作用中處理程序數量錯誤)。
    • 修正錯誤 #77023 (FPM 無法關閉處理程序)。
    • 修正 kqueue 移除回呼日誌訊息中的註解。
  • Hash
    • 修正錯誤 #81714 (序列化已完成的 HashContext 時發生區段錯誤)。
  • Iconv
    • 修正錯誤 GH-8218 (ob_end_clean 不會重設 Content-Encoding 標頭)。
  • Intl
    • 修正錯誤 GH-8364 (msgfmt_format $values 可能不支援參考)。
  • MBString
    • 針對無效 UTF-8 文字發出的錯誤標記數目符合 WHATWG 規格。這是回到 PHP 8.0 及更早版本的行為。
  • MySQLi
    • 修正錯誤 GH-8267 (MySQLi 在 Windows 上使用不受支援的格式規範)。
  • SPL
    • 修正錯誤 GH-8366 (在呼叫 __construct() 時,ArrayIterator 可能會洩漏)。
    • 修正錯誤 GH-8273 (SplFileObject:key() 傳回錯誤的值)。
  • Streams
    • 修復 php://temp 在切換至暫存檔案時不會保留檔案位置的問題。
  • zlib
    • 修正錯誤 GH-8218 (ob_end_clean 不會重設 Content-Encoding 標頭)。

版本 8.1.5

  • 核心
    • 修正錯誤 GH-8176 (屬性初始設定式中的列舉值會洩漏)。
    • 修正內部屬性引數的釋放。
    • 修正錯誤 GH-8070 (內部函式屬性雜湊的記憶體洩漏)。
    • 修正錯誤 GH-8160 (Alpine 上的 ZTS 支援已損壞)。
  • Filter
    • 修正 php_filter_validate_domain() 中有號性混淆的問題。
  • Intl
    • 修正錯誤 GH-8115 (在具現化 Intl 類別時,無法擷取引數類型棄用)。
    • 修正錯誤 GH-8142 (cygwin 上的編譯錯誤)。
    • 修正錯誤 GH-7734 (修正 IntlPartsIterator 索引關閉一錯誤和第一個索引)。
  • MBString
    • 修正錯誤 GH-8208 (mb_encode_mimeheader: $indent 功能已損壞)。
  • MySQLi
    • 修正錯誤 GH-8068 (mysqli_fetch_object 建立無法存取的屬性)。
  • Pcntl
    • 修正錯誤 GH-8142 (cygwin 上的編譯錯誤)。
  • PgSQL
    • 修正在 LLP64 架構上與 result_type 相關的堆疊損壞。
    • 修正錯誤 GH-8253 (pg_insert() 對於參考失敗)。
  • Sockets
    • 修正 Solaris 建置。
  • SPL
    • 修正錯誤 GH-8121 (SplFileObject - 使用 csv 檔案時,seek 和 key 不一致)。
    • 修正錯誤 GH-8192 (無法在 8.1 中覆寫沒有返回類型提示的 DirectoryIterator::current())。
  • Standard
    • 修正錯誤 GH-8048 (強制 macOS 使用 statfs)。

版本 8.1.4

  • 核心
    • 修正 Haiku ZTS 建置。
    • 修正錯誤 GH-8059 未針對擴充功能重新產生 arginfo。
    • 修正錯誤 GH-8083 傾印具有靜態變數的未呼叫虛擬閉包時發生區段錯誤。
    • 修正了錯誤 GH-7958 (巢狀 CallbackFilterIterator 導致記憶體洩漏)。
    • 修正了錯誤 GH-8074 (range() 結果的類型推斷錯誤)。
    • 修正了錯誤 GH-8140 (透過名稱優化第一類可呼叫物件錯誤)。
    • 修正了錯誤 GH-8082 (當觀察時,具有暫時 run_time_cache 的 op_arrays 會導致記憶體洩漏)。
  • GD
    • 修正了載入交錯影像時 libpng 發出的警告。
  • FPM
    • 修正了錯誤 #76109 (不安全地存取 fpm 計分板)。
  • Iconv
    • 修正了錯誤 GH-7953 (ob_clean() 只清除內容,未設定 Content-Encoding)。
    • 修正了錯誤 GH-7980 (iconv_mime_decode 的非預期結果)。
  • MBString
    • 修正了錯誤 GH-8128 (mb_check_encoding 對於 7bit 的錯誤結果)。
  • MySQLnd
    • 修正了錯誤 GH-8058 (mysqlnd 套件中的 NULL 指標取值)。
  • Reflection
    • 修正了錯誤 GH-8080 (ReflectionClass::getConstants() 依賴定義順序)。
  • Zlib
    • 修正了錯誤 GH-7953 (ob_clean() 只清除內容,未設定 Content-Encoding)。

版本 8.1.3

  • 核心
    • 修正了錯誤 #81430 (屬性實例化留下懸空指標)。
    • 修正了錯誤 GH-7896 (在 Windows 上,環境變數可能會被損壞)。
    • 修正了錯誤 GH-7883 (當 INI 檔案不可讀取時發生 Segfault)。
  • FFI
    • 修正了錯誤 GH-7867 (從指標轉換為陣列的 FFI::cast() 損壞)。
  • Filter
    • 修正 #81708:由於 php_filter_float() 對於整數失敗導致 UAF。(CVE-2021-21708)
  • FPM
    • 修正了無效連接埠上的記憶體洩漏問題。
    • 修正了錯誤 GH-7842 (FPM 狀態頁面傳回無效的 OpenMetrics 回應格式)。
  • MBString
    • 修正了錯誤 GH-7902 (mb_send_mail 可能只使用 LF 分隔標頭)。
  • MySQLnd
    • 修正了錯誤 GH-7972 (MariaDB 版本前綴 5.5.5- 未被移除)。
  • pcntl
    • 修正了 DragonFlyBSD 的 pcntl_rfork 建置問題。
  • Sockets
    • 修正了錯誤 GH-7978 (sockets 擴充功能編譯錯誤)。
  • Standard
    • 修正了錯誤 GH-7899 (unpack 對於負整數值的迴歸錯誤)。
    • 修正了錯誤 GH-7875 (即使記錄失敗拋出例外,郵件仍會被傳送)。

版本 8.1.2

  • 核心
    • 修正了錯誤 #81216 (Nullsafe 運算符導致動態屬性名稱洩漏)。
    • 修正了錯誤 #81684 (將 null 合併賦值與 $GLOBALS["x"] 結合使用會產生 opcode 錯誤)。
    • 修正了錯誤 #81656 (GCC-11 靜默忽略 -R)。
    • 修正了錯誤 #81683 (最終或抽象介面方法上產生誤導性的「存取類型 ... 必須為 public」錯誤訊息)。
    • 修正了錯誤 #81585 (cached_chunks 在關閉時未計入 real_size)。
    • 修正了錯誤 GH-7757 (多重繼承的 final 常數導致嚴重錯誤)。
    • 使用 ZEND_FIBER_UCONTEXT 修正 zend_fibers.c 的建置。
    • 新增 riscv64 對 fiber 的支援。
  • Filter
    • 修正 FILTER_FLAG_NO_RES_RANGE 旗標。
  • Hash
    • 修正了錯誤 GH-7759 (hash() 和 hash_hmac() 的回傳類型不正確)。
    • 修正了錯誤 GH-7826 (hash_hmac_file 和 hash_file 中的參數名稱不一致)。
  • MBString
    • 修正了錯誤 #81693 (mb_check_encoding(7bit) 產生 segfault)。
  • MySQLi
    • 修正了錯誤 #81658 (MariaDB 中無法使用 MYSQL_OPT_LOAD_DATA_LOCAL_DIR)。
    • 引入 MYSQLI_IS_MARIADB。
    • 修正了錯誤 GH-7746 (mysqli_sql_exception->getSqlState())。
  • MySQLnd
    • 修正了可能會截斷大型 bigint 的錯誤。
  • OCI8
    • 修正了錯誤 GH-7765 (php_oci_cleanup_global_handles 在第二次呼叫時發生 segfault)。
  • OPcache
    • 修正了錯誤 #81679 (追蹤 JIT 在重新附加時崩潰)。
  • Readline
    • 修正了錯誤 #81598 (無法在 PHP 8 互動式 shell 中輸入 Unicode 字元)。
  • Reflection
    • 修正了錯誤 #81681 (ReflectionEnum 拋出例外)。
  • PDO_PGSQL
    • 修正了 PDO PgSQL 的錯誤訊息分配問題。
  • Sockets
    • 避免在 NetBSD 上 sockets/multicast.c 中使用 void* 算術。
    • 修正了 Haiku 上的 ext/sockets 建置問題。
  • Spl
    • 修正了錯誤 #75917 (SplFileObject::seek 在使用 CSV 旗標時損壞)。
    • 修正了錯誤 GH-7809 (複製偽造的 SplFileInfo 物件可能會產生 segfault)。
  • Standard
    • 修正了錯誤 GH-7748 (gethostbyaddr 輸出二進位字串)。
    • 修正了錯誤 GH-7815 (php_uname 無法識別最新的 Windows 版本)。

版本 8.1.1

  • IMAP
    • 修正了錯誤 #81649 (imap_(un)delete 接受序列,而不是單個數字)。
  • PCRE
    • 將捆綁的 PCRE2 更新至 10.39。
    • 修正了錯誤 #74604 (php_pcre_replace_impl 中的越界)。
  • Standard
    • 修正了錯誤 #81659 (stream_get_contents() 可能會不必要地過度分配記憶體)。

版本 8.1.0

  • 核心
    • 修正了 Windows 上 phpize 建置的包含順序。
    • 為 arr/obj/ref 新增遺失的雜湊表插入 API。
    • 實作 FR #77372 (從上傳檔案中移除相對檔案路徑)。
    • 修正了錯誤 #81607 (使用並行存取時的 CE_CACHE 分配)。
    • 修正了錯誤 #81507 (Fiber 在 AIX 上無法編譯)。
    • 修正了錯誤 #78647 (zend_do_perform_implementation_check 中的 SEGFAULT)。
    • 修正了錯誤 #81518 (透過 default_mimetype / default_charset 進行標頭注入)。
    • 修正了錯誤 #75941 (修正使用 clang 在 Solaris 上編譯失敗的問題)。
    • 修正了錯誤 #81380 (觀察者可能未正確初始化)。
    • 修正了錯誤 #81514 (在 WeakMap 中使用 Enum 作為鍵會觸發 GC + SegFault)。
    • 修正了錯誤 #81520 (在 run-tests.php 中,TEST_PHP_CGI_EXECUTABLE 設定錯誤)。
    • 修正了錯誤 #81377 (unset() $GLOBALS 子鍵會產生警告)。
    • 修正了錯誤 #81342 (新的 & 符號 token 解析取決於它之後是否有新的一行)。
    • 修正了錯誤 #81280 (cli.prompt 中的 Unicode 字元導致 segfault)。
    • 修正了錯誤 #81192 (「宣告應與之相容」在 traits 中給出不正確的行號)。
    • 修正了錯誤 #78919 (CLI 伺服器:如果請求啟動失敗,則清理不足)。
    • 修正了錯誤 #81303 (改進 match 錯誤訊息)。
    • 修正了錯誤 #81238 (Solaris Sparc 缺少 Fiber 支援)。
    • 修正了錯誤 #81237 (偽造閉包的比較不起作用)。
    • 修正了錯誤 #81202 (powerpc64 建置在 fibers 上失敗)。
    • 修正了錯誤 #80072 (TMPVAR 運算元中的循環反序列化可能會洩漏)。
    • 修正了錯誤 #81163 (__sleep 允許回傳非陣列)。
    • 修正了錯誤 #75474 (函式作用域的靜態變數未繫結至唯一的函式)。
    • 修正了錯誤 #53826 (如果方法是私有的,則透過父層呼叫在基底類別中觸發 __callStatic)。
    • 修正了錯誤 #81076 (具有隱式繫結的閉包上不正確的偵錯資訊)。
  • CLI
    • 修正了錯誤 #81496 (伺服器記錄不正確的請求方法)。
  • COM
    • 使用 LANG_NEUTRAL 而非 LOCALE_SYSTEM_DEFAULT 進行分派。
  • Curl
    • 修正了錯誤 #81085 (支援憑證字串的 CURLOPT_SSLCERT_BLOB)。
  • Date
    • 修正了錯誤 #81458 (時區變更後,回歸錯誤的不正確差異)。
    • 修正了錯誤 #81500 (自 7.3.14 / 7.4.2 以來的間隔序列化迴歸)。
    • 修正了錯誤 #81504 (POSIX 資料的時區轉換詳細資訊不正確)。
    • 修正了錯誤 #80998 (反轉間隔缺少秒數)。
    • 加快尋找時區偏移資訊的速度。
    • 修正了錯誤 #79580 (date_create_from_format 遺漏閏年)。
    • 修正了錯誤 #80963 (DateTimeZone::getTransitions() 被截斷)。
    • 修正了錯誤 #80974 (不同時區中 2 個日期之間的錯誤差異)。
    • 修正了錯誤 #80998 (反轉間隔缺少秒數)。
    • 修正了錯誤 #81097 (當提供帶有秒數的偏移量時,DateTimeZone 會靜默地退回至 UTC)。
    • 修正了錯誤 #81106 (8.1 中的回歸:add() 現在會截斷 ->f)。
    • 修正了錯誤 #81273 (日期間隔計算不正確)。
    • 修正了錯誤 #52480 (使用 DateInterval 的不正確差異)。
    • 修正了錯誤 #62326 (date_diff() 函式回傳錯誤結果)。
    • 修正了錯誤 #64992 (dst 在 2038 年之後未被處理)。
    • 修正了錯誤 #65003 (錯誤的日期差異)。
    • 修正了錯誤 #66545 (DateTime. diff 回傳負值)。
    • 修正了錯誤 #68503 (在設定時區的情況下,date_diff 針對兩個日期傳回本地化的錯誤結果)。
    • 修正了錯誤 #69806 (來自時間戳記的錯誤日期)。
    • 修正了錯誤 #71700 (在 2016 年 3 月初和月底之間差異多出的一天)。
    • 修正了錯誤 #71826 (DateTime::diff 在時區「Asia/Tokyo」上混淆)。
    • 修正了錯誤 #73460 (Datetime add 未意識到它已套用 DST 變更)。
    • 修正了錯誤 #74173 (DateTimeImmutable::getTimestamp() 在錯誤的時間觸發 DST 切換)。
    • 修正了錯誤 #74274 (正確處理 DST 轉換)。
    • 修正了錯誤 #74524 (日期差異計算錯誤,在相同的時區中)。
    • 修正了錯誤 #75167 (DateTime::add 只關心向後 DST 轉換,而不是向前轉換)。
    • 修正了錯誤 #76032 (DateTime->diff 在 UTC 之前的時區中閏日存在問題)。
    • 修正了錯誤 #76374 (日期差異因時間而異)。
    • 修正了錯誤 #77571 (DateTime 的 diff DateInterval 在 UTC+01:00 至 UTC+12:00 的時區中不正確)。
    • 修正了錯誤 #78452 (diff 對於 Asia/Tehran 的小時計算錯誤)。
    • 修正了錯誤 #79452 (DateTime::diff() 在時區之間產生不同的月份)。
    • 修正了錯誤 #79698 (timelib 錯誤處理未來的時間戳記 (由 'zic -b slim' 觸發))。
    • 修正了錯誤 #79716 (建立的無效日期時間 (日期為「00」))。
    • 修正了錯誤 #80610 (DateTime 使用 DateInterval 計算錯誤)。
    • 修正了錯誤 #80664 (DateTime 物件在 DST 轉換附近行為不正確)。
    • 修正了錯誤 #80913 (DateTime(Immutable)::sub 在 DST 附近產生錯誤的時間)。
  • DBA
    • 修正了錯誤 #81588 (TokyoCabinet 驅動程式洩漏記憶體)。
  • DOM
    • 修正了錯誤 #81433 (DOMElement::setIdAttribute() 呼叫兩次可能會移除 ID)。
  • FFI
    • 修正了錯誤 #79576 (當未定義類型時,「TYPE *」顯示無用的訊息)。
  • Filter
    • 修正了錯誤 #61700 (FILTER_FLAG_IPV6/FILTER_FLAG_NO_PRIV|RES_RANGE 失敗)。
  • FPM
    • 修正了錯誤 #81513 (FPM zlog 中未來可能發生堆積溢位)。
    • 修正了錯誤 #81026 (PHP-FPM 在根程序中的 oob R/W 導致權限提升) (CVE-2021-21703)。
    • 新增 openmetrics 狀態格式。
    • 在 macOS 上啟用程序重新命名。
    • 新增 pm.max_spawn_rate 選項來配置最大產生子程序速率。
    • 修正了錯誤 #65800 (事件連接埠機制)。
  • FTP
    • 將 resource<ftp> 轉換為物件 \FTP\Connection。
  • GD
    • 修正了錯誤 #71316 (來自 imagecreatefromstring 的 libpng 警告)。
    • 將 resource<gd font> 轉換為物件 \GdFont。
    • 新增 Avif 影像的支援
  • hash
    • 實作 FR #68109 (新增 MurmurHash V3)。
    • 實作 FR #73385 (新增 xxHash 支援)。
  • JSON
    • 修復錯誤 #81532 (PHP 8.1 中 json_encode() 的 $depth 行為變更)。
  • LDAP
    • 將 resource<ldap link> 轉換為物件 \LDAP\Connection。
    • 將 resource<ldap result> 轉換為物件 \LDAP\Result。
    • 將 resource<ldap result entry> 轉換為物件 \LDAP\ResultEntry。
  • MBString
    • 修復錯誤 #76167 (mbstring 可能會使用先前請求的指標)。
    • 修復錯誤 #81390 (mb_detect_encoding() 回歸問題)。
    • 修復錯誤 #81349 (mb_detect_encoding 在某些情況下會誤判 ASCII)。
    • 修復錯誤 #81298 (指定 7 位元編碼時 mb_detect_encoding() 會發生段錯誤)。
  • MySQLi
    • 修復錯誤 #70372 (為 libmysqlclient 模擬 mysqli_fetch_all())。
    • 修復錯誤 #80330 (替換 API 和原始碼/文件中的語言)。
    • 修復錯誤 #80329 (新增選項以指定 LOAD DATA LOCAL 白名單資料夾 (包含 libmysql))。
  • MySQLnd
    • 修復錯誤 #63327 (mysqlnd 中由於對齊錯誤導致崩潰 (匯流排錯誤))。
    • 修復錯誤 #80761 (PDO 使用過多記憶體)。
  • Opcache
    • 修復錯誤 #81409 (帶有陣列參照的 ADD 指令的 JIT 程式碼不正確)。
    • 修復錯誤 #81255 (使用功能性 JIT 時,PHPUnit 中的記憶體洩漏)。
    • 修復錯誤 #80959 (在 JIT 編譯期間,建置 cfg 時出現無限迴圈)。
    • 修復錯誤 #81225 (啟用 JIT 時,pow 運算子結果錯誤)。
    • 修復錯誤 #81249 (啟用 JIT 時,屬性指派間歇性失敗)。
    • 修復錯誤 #81256 (對於使用 JIT 的「preload」,斷言 `zv != ((void *)0)` 失敗)。
    • 修復錯誤 #81133 (使用 phpize 建置 opcache 失敗)。
    • 修復錯誤 #81136 (opcache 標頭未安裝)。
    • 新增繼承快取。
  • OpenSSL
    • 修復錯誤 #81502 (openssl_decrypt() 的 $tag 參數應接受 null/空字串)。
    • 將最低 OpenSSL 版本提升至 1.0.2。
  • PCRE
    • 修復錯誤 #81424 (PCRE2 10.35 JIT 效能回歸)。
    • 捆綁的 PCRE2 為 10.37。
  • PDO
    • 修復錯誤 #40913 (PDO_MYSQL:PDO::PARAM_LOB 不會繫結至用於提取 BLOB 的串流)。
  • PDO MySQL
    • 修復錯誤 #80908 (PDO::lastInsertId() 回傳錯誤)。
    • 修復錯誤 #81037 (PDO 捨棄預備陳述式的錯誤訊息文字)。
  • PDO OCI
    • 修復錯誤 #77120 (支援連線時的「成功並附帶資訊」)。
  • PDO ODBC
    • 為 PDO::getAttribute() 實作 PDO_ATTR_SERVER_VERSION 和 PDO_ATTR_SERVER_INFO。
  • PDO PgSQL
    • 修復錯誤 #81343 (pdo_pgsql:在呼叫 closeCursor() 後,布林值轉換不一致)。
  • PDO SQLite
    • 修復錯誤 #38334 (PDO_SQLITE 的正確資料類型支援)。
  • PgSQL
    • 修復錯誤 #81509 (pg_end_copy 仍需要資源)。
    • 將 resource<pgsql link> 轉換為物件 \PgSql\Connection。
    • 將 resource<pgsql result> 轉換為物件 \PgSql\Result。
    • 將 resource<pgsql large object> 轉換為物件 \PgSql\Lob。
  • Phar
    • 預設為簽章使用 SHA256。
    • 新增 OpenSSL_SHA256 和 OpenSSL_SHA512 簽章的支援。
  • phpdbg
    • 修復錯誤 #81135 (不明的說明主題導致斷言失敗)。
  • PSpell
    • 將 resource<pspell> 轉換為物件 \PSpell\Dictionary。
    • 將 resource<pspell config> 轉換為物件 \PSpell\Config。
  • readline
    • 修復錯誤 #72998 (readline 完成時的無效讀取)。
  • Reflection
    • 修復錯誤 #81611 (從使用 new 的 ReflectionParameter 取得預設值時發生 ArgumentCountError)。
    • 修復錯誤 #81630 (PHP 8.1:ReflectionClass->getTraitAliases() 發生內部錯誤而崩潰)。
    • 修復錯誤 #81457 (Enum:ReflectionMethod->getDeclaringClass() 回傳 ReflectionClass)。
    • 修復錯誤 #81474 (讓 ReflectionEnum 和相關類別為非 final)。
    • 修復錯誤 #80821 (ReflectionProperty::getDefaultValue() 回傳靜態屬性的目前值)。
    • 修復錯誤 #80564 (ReflectionProperty::__toString() 呈現目前值,而非預設值)。
    • 修復錯誤 #80097 (ReflectionAttribute 不是 Reflector)。
    • 修復錯誤 #81200 (無法判斷 Closure 是否為 static)。
    • 實作 ReflectionFunctionAbstract::getClosureUsedVariables。
  • Shmop
    • 修復錯誤 #81407 (shmop_open 無法附加並導致 php 崩潰)。
  • SimpleXML
    • 修復錯誤 #81325 (zif_simplexml_import_dom 中的段錯誤)。
  • SNMP
    • 為安全協定實作 SHA256 和 SHA512。
  • Sodium
    • 新增 XChaCha20 串流加密函式。
    • 新增 Ristretto255 函式,這些函式可在 libsodium 1.0.18 中使用。
  • SPL
    • 修復錯誤 #66588 (SplFileObject::fgetcsv 在提早 EOF 時錯誤地回傳列)。
    • 修復錯誤 #80663 (遞迴 SplFixedArray::setSize() 可能會導致雙重釋放)。
    • 修復錯誤 #81477 (8.0.1 中 LimitIterator + SplFileObject 的回歸問題)。
    • 修復錯誤 #81112 (SplFixedArray 的特殊 json_encode 行為)。
    • 修復錯誤 #80945 (在 unset() ArrayObject 不存在的索引鍵時出現「Notice:未定義的索引」)。
    • 修復錯誤 #80724 (FilesystemIterator::FOLLOW_SYMLINKS 從位元遮罩中移除 KEY_AS_FILE)。
  • Standard
    • 修復錯誤 #81441 (在呼叫其他方法後,gethostbyaddr('::1') 回傳 IP 而非名稱)。
    • 修復錯誤 #81491 (argon2 雜湊不正確地使用 libsodium)。
    • 修復錯誤 #81142 (在對關聯陣列使用 unserialize() 時,PHP 7.3+ 發生記憶體洩漏)。
    • 修復錯誤 #81111 (匿名類別具有 __serialize() 時,意外允許序列化)。
    • 修復錯誤 #81137 (hrtime 在 Sierra 之前的 OSX 上中斷建置)。
    • 修復錯誤 #77627 (Closure::__invoke 的 method_exists 不一致)。
  • Streams
    • 修復錯誤 #81475 (stream_isatty 在附加串流封裝器時發出警告)。
  • XML
    • 修復錯誤 #79971 (特殊字元中斷 xml 函式中的路徑) (CVE-2021-21707)。
    • 修復錯誤 #70962 (XML_OPTION_SKIP_WHITE 會移除內嵌的空格)。
  • Zip
    • 修復錯誤 #81490 (ZipArchive::extractTo() 可能會洩漏記憶體)。
    • 修復錯誤 #77978 (以冒號結尾的 Dirname 解壓縮至錯誤的目錄)。
    • 修復錯誤 #81420 (ZipArchive::extractTo 解壓縮至目的地之外) (CVE-2021-21706)。
    • 修復錯誤 #80833 (ZipArchive::getStream 不使用 setPassword)。

版本 8.0.30

  • Libxml
    • 修正了 GHSA-3qrf-m4j2-pcrr 錯誤 (在未啟用 XML 的情況下,於 XML 中載入外部實體的安全性問題)。(CVE-2023-3823)
  • Phar
    • 修正了 GHSA-jqcx-ccgc-xwhv 錯誤 (phar_dir_read() 中的緩衝區管理不當)。(CVE-2023-3824)

版本 8.0.29

  • Soap
    • 修正錯誤 GHSA-76gg-c692-v2mw (SOAP 的 HTTP Digest 驗證中遺失錯誤檢查且隨機位元組不足)。(CVE-2023-3247)

版本 8.0.28

  • 核心
    • 修正錯誤 #81744 (Password_verify() 總是針對某些雜湊傳回 true)。
    • 修正錯誤 #81746 (通用路徑解析程式碼中的 1 位元組陣列溢出)。
  • SAPI
    • 修正了錯誤 GHSA-54hq-v5wp-fqgv (解析 multipart 請求主體時的 DOS 漏洞)。 (CVE-2023-0662)

版本 8.0.27

  • PDO/SQLite
    • 修正了錯誤 #81740 (PDO::quote() 可能會回傳未加引號的字串)。 (CVE-2022-31631)

版本 8.0.26

  • CLI
    • 修正了錯誤 GH-9709 (使用 -w/-s 選項時的 Null 指標取消引用)。
  • 核心
    • 修正了錯誤 GH-9752 (當使用額外的命名參數在引數評估期間中斷時,產生器會當機)。
    • 修正了錯誤 GH-9801 (當初始化期間超出記憶體限制時,產生器會當機)。
    • 修復 Windows shm*() 函式中潛在的 NULL 指標取值。
    • 修正了錯誤 GH-9750 (當在引數評估期間中斷時,產生器發生記憶體洩漏)。
  • Date
    • 修正錯誤 GH-9763 (DateTimeZone ctr 處理輸入錯誤,如果參數是超過 100*60 分鐘的偏移量,則會新增空位元組)。
  • FPM
    • 修正了錯誤 GH-9754 (當執行 php-fpm 8.1.11 時,SaltStack (使用 Python subprocess) 會掛起)。
  • mysqli
    • 修正錯誤 GH-9841 (即使使用靜音錯誤模式,mysqli_query 仍會拋出警告)。
  • OpenSSL
    • 修正錯誤 GH-8430 (使用 no-md2、no-md4 或 no-rmd160 編譯的 OpenSSL 無法建置)。
  • SOAP
    • 修正 GH-9720 (序列化回應時的空指標取值)。

版本 8.0.25

  • GD
    • 修正了錯誤 #81739:由於 imageloadfont() 中輸入驗證不足造成的 OOB 讀取。 (CVE-2022-31630)
  • Hash
    • 修正了錯誤 #81738:長參數上的 hash_update() 中的緩衝區溢位。 (CVE-2022-37454)
  • Session
    • 修正錯誤 GH-9583 (session_create_id() 在使用者定義的儲存處理常式沒有 validateId() 方法時失敗)。
  • Streams
    • 修正錯誤 GH-9590 (stream_select 不會在例外或空的有效 fd 集合時中止)。

版本 8.0.24

  • 核心
    • 修正了錯誤 GH-9323 (ZEND_RETURN/GC/zend_call_function 中當機) (Tim Starling)
    • 修正錯誤 GH-9361 (腳本退出時發生區段錯誤 #9379)。
    • 修復錯誤 GH-9407 (eval 程式碼中的 LSP 錯誤是指向靜態類型的錯誤類別)。
    • 修正錯誤 #81727:不要篡改與具有特定語義含義的 HTTP 變數名稱衝突的變數名稱。(CVE-2022-31629)
  • DOM
    • 修正錯誤 #79451 (在 doctype 上執行 DOMDocument->replaceChild 會導致 double free)。
  • FPM
    • 修正錯誤 GH-8885 (在守護進程重新載入後,使用 stderr 的 FPM access.log 開始將日誌寫入 error_log)。
    • 修正錯誤 #77780 (當先前的連線中止時,出現「Headers already sent...」)。
  • GMP
    • 修正了錯誤 GH-9308 (當將 GMP 物件傳遞至 gmp_init() 時,GMP 會拋出錯誤訊息)。
  • Intl
    • 修正錯誤 GH-9421 (NumberFormatter 中 ValueError 的參數數量不正確)。
  • Phar
    • 修正錯誤 #81726:phar 封裝:使用 quine gzip 檔案時發生 DOS 攻擊。(CVE-2022-31628)
  • PDO_PGSQL
    • 修正錯誤 GH-9411 (PgSQL 大型物件資源關閉不正確)。
  • Reflection
    • 修正錯誤 GH-8932 (ReflectionFunction 無法取得 Closure 的已呼叫類別)。
    • 修復錯誤 GH-9409 (私有方法會錯誤地傾印為「覆寫」)。
  • Streams
    • 修正錯誤 GH-9316 (長狀態列的 $http_response_header 不正確)。

版本 8.0.23

  • 核心
    • 修正了最新 clang 中不正確的 double 到 long 的轉換。
  • DBA
    • 修正 LMDB 驅動程式在資料庫建立失敗時的記憶體洩漏。
    • 修正錯誤 GH-9155 (dba_open("non-existing", "c-", "flatfile") 發生區段錯誤)。
  • Intl
    • 修正 IntlDateFormatter::formatObject() 參數類型。
  • OPcache
    • 修正錯誤 GH-9033 (由於長度為負數,載入黑名單檔案可能會失敗)。
  • PDO_SQLite
    • 修正錯誤 GH-9032 (SQLite3 authorizer 在 NULL 值時崩潰)。
  • SQLite3
    • 修正錯誤 GH-9032 (SQLite3 authorizer 在 NULL 值時崩潰)。
  • Standard
    • 修正錯誤 GH-9017 (php_stream_sock_open_from_socket 可能會傳回 NULL)。
  • Streams
    • 修正錯誤 GH-8472 (stream_socket_accept 傳回的資源可能具有不正確的中繼資料)。
    • 修正錯誤 GH-8409 (SSL 交握逾時會導致持續連線掛起)。

版本 8.0.22

  • CLI
    • 修正了透過 PHP_CLI_SERVER_WORKERS 環境變數,內建伺服器可能發生的溢位問題。
  • 核心
    • 修正錯誤 GH-8923 (Windows 上的 error_log 可能會保留檔案寫入鎖定)。
    • 修正了錯誤 GH-8995 (WeakMap 物件參考偏移導致 TypeError)。
  • Date
    • 修正錯誤 #80047 (DatePeriod 不會警告自訂的 DateTimeImmutable)。
  • DBA
    • 修復在嘗試刪除不存在的索引鍵時,LMDB 驅動程式掛起的問題。
  • FPM
    • 修正 zlog 訊息前置,在不正確的位址上釋放。
    • 修復在組態載入失敗時可能發生的雙重釋放。
  • GD
    • 修正錯誤 GH-8848 (imagecopyresized() 錯誤參考到錯誤的引數)。
  • Intl
    • 修正 ICU 69.x 及更新版本的建置問題。
  • OPcache
    • 修復錯誤 GH-8847 (當檢查有效檔案的 php 語法時,PHP 無限期掛起並占用 100% CPU)。
  • Standard
    • 修正使用 clang > 12 建置的 crypt_sha256/512 api。
    • 在 macOS 上使用 CCRandomGenerateBytes 而非 arc4random_buf。

版本 8.0.21

  • 核心
    • 修正 php_binary_init() 中潛在的 use after free。
  • CLI
    • 修正 GH-8827 (不再能刻意關閉標準處理常式)。
  • COM
    • 修正錯誤 GH-8778 (大型數字變體的整數算術失敗)。
  • Curl
    • 修正 CURLOPT_TLSAUTH_TYPE 未被視為字串選項。
  • Date
    • 修正錯誤 #74671 (DST 時區縮寫具有不正確的偏移量)。
    • 修正錯誤 #77243 (對於負數年份,星期幾的計算不正確)。
    • 修正錯誤 #78139 (timezone_open 接受無效的時區字串引數)。
  • FPM
    • 修正錯誤 #67764 (fpm:syslog.ident 無法運作)。
  • MBString
    • 修正錯誤 GH-8685 (mbstring 啟動時 pcre 尚未就緒)。
  • ODBC
    • 修正單一金鑰連線字串的處理。
  • OpenSSL
    • 修正錯誤 #50293 (數個 openssl 函式會忽略 VCWD)。
    • 修正錯誤 #81713 (數個使用憑證的 OpenSSL 函式中注入 NULL 位元組)。
  • PDO_ODBC
    • 修復成功執行 PDOStatement->execute() 的 errorInfo() 結果。
    • 修正單一金鑰連線字串的處理。
  • Zip
    • 修正錯誤 GH-8781 (ZipArchive::close 會刪除 zip 檔案,而不會更新 stat 快取)。

版本 8.0.20

  • CLI
    • 修正錯誤 GH-8575 (CLI 過早關閉標準串流)。
  • 核心
    • 修正 Haiku ZTS 建置。
  • Date
    • 修復錯誤 GH-8471 (使用反射建立不可變和可變 DateTime 實例時發生區段錯誤)。
  • FPM
    • 修正 MacOS 上的 ACL 建置檢查。
    • 修正錯誤 #72185: php-fpm 寫入空白 fcgi 記錄導致 nginx 502。
  • Mysqlnd
    • 修正錯誤 #81719:mysqlnd/pdo 密碼緩衝區溢位。(CVE-2022-31626)
  • OPcache
    • 修復錯誤 GH-8466 (當選項不存在時,ini_get() 會被最佳化移除)。
  • Pcntl
    • 修正 Haiku 建置。
  • Pgsql
    • 修正錯誤 #81720:pg_query_params() 中未初始化的陣列。(CVE-2022-31625)
  • Soap
    • 修正錯誤 GH-8578 (SoapHeader 建構函式上錯誤參數的錯誤)。
    • 修正錯誤 GH-8538 (SoapClient 可能會移除 nmtokens 的部分內容)。
  • SPL
    • 修正錯誤 GH-8235 (iterator_count() 可能會無限期地執行)。
  • Zip
    • 修正 ZipArchive::replaceFile 中索引的類型。

版本 8.0.19

  • 核心
    • 修正錯誤 GH-8289 (在產生器中,不會重新擲回從產生器中產生之迭代器內擲回的例外)。
  • Date
    • 修復錯誤 GH-7979 (DatePeriod 迭代器在檢查是否有效時前進)。
  • FFI
    • 修正錯誤 GH-8433 (在 FFI 中將函式指標指派給結構時發生洩漏)。
  • FPM
    • 修正錯誤 #76003 (FPM /status 回報的作用中處理程序數量錯誤)。
    • 修正錯誤 #77023 (FPM 無法關閉處理程序)。
    • 修正 kqueue 移除回呼日誌訊息中的註解。
  • Iconv
    • 修正錯誤 GH-8218 (ob_end_clean 不會重設 Content-Encoding 標頭)。
  • Intl
    • 修正錯誤 GH-8364 (msgfmt_format $values 可能不支援參考)。
  • MySQLi
    • 修正錯誤 GH-8267 (MySQLi 在 Windows 上使用不受支援的格式規範)。
  • SPL
    • 修正錯誤 GH-8366 (在呼叫 __construct() 時,ArrayIterator 可能會洩漏)。
    • 修正錯誤 GH-8273 (SplFileObject:key() 傳回錯誤的值)。
  • Streams
    • 修復 php://temp 在切換至暫存檔案時不會保留檔案位置的問題。
  • zlib
    • 修正錯誤 GH-8218 (ob_end_clean 不會重設 Content-Encoding 標頭)。

版本 8.0.18

  • 核心
    • 修正內部屬性引數的釋放。
    • 修正錯誤 GH-8070 (內部函式屬性雜湊的記憶體洩漏)。
    • 修正錯誤 GH-8160 (Alpine 上的 ZTS 支援已損壞)。
  • Filter
    • 修正 php_filter_validate_domain() 中有號性混淆的問題。
  • Intl
    • 修正錯誤 GH-8142 (cygwin 上的編譯錯誤)。
  • MBString
    • 修正錯誤 GH-8208 (mb_encode_mimeheader: $indent 功能已損壞)。
  • MySQLi
    • 修正錯誤 GH-8068 (mysqli_fetch_object 建立無法存取的屬性)。
  • Pcntl
    • 修正錯誤 GH-8142 (cygwin 上的編譯錯誤)。
  • PgSQL
    • 修正在 LLP64 架構上與 result_type 相關的堆疊損壞。
    • 修正錯誤 GH-8253 (pg_insert() 對於參考失敗)。
  • Sockets
    • 修正 Solaris 建置。
  • SPL
    • 修正錯誤 GH-8121 (SplFileObject - 使用 csv 檔案時,seek 和 key 不一致)。
  • Standard
    • 修正錯誤 GH-8048 (強制 macOS 使用 statfs)。

版本 8.0.17

  • 核心
    • 修正 Haiku ZTS 建置。
  • GD
    • 修正了載入交錯影像時 libpng 發出的警告。
  • FPM
    • 修正了錯誤 #76109 (不安全地存取 fpm 計分板)。
  • Iconv
    • 修正了錯誤 GH-7953 (ob_clean() 只清除內容,未設定 Content-Encoding)。
    • 修正了錯誤 GH-7980 (iconv_mime_decode 的非預期結果)。
  • MySQLnd
    • 修正了錯誤 GH-8058 (mysqlnd 套件中的 NULL 指標取值)。
  • OPcache
    • 修正了錯誤 GH-8074 (range() 結果的類型推斷錯誤)。
  • Reflection
    • 修正了錯誤 GH-8080 (ReflectionClass::getConstants() 依賴定義順序)。
  • Zlib
    • 修正了錯誤 GH-7953 (ob_clean() 只清除內容,未設定 Content-Encoding)。

版本 8.0.16

  • 核心
    • 修正了錯誤 #81430 (屬性實例化留下懸空指標)。
    • 修正了錯誤 GH-7896 (在 Windows 上,環境變數可能會被損壞)。
  • FFI
    • 修正了錯誤 GH-7867 (從指標轉換為陣列的 FFI::cast() 損壞)。
  • Filter
    • 修復 #81708:由於 php_filter_float() 處理整數失敗而導致的 UAF。
  • FPM
    • 修正了無效連接埠上的記憶體洩漏問題。
  • MBString
    • 修正了錯誤 GH-7902 (mb_send_mail 可能只使用 LF 分隔標頭)。
  • MySQLnd
    • 修正了錯誤 GH-7972 (MariaDB 版本前綴 5.5.5- 未被移除)。
  • Sockets
    • 修正了 Haiku 上的 ext/sockets 建置問題。
    • 修正了錯誤 GH-7978 (sockets 擴充功能編譯錯誤)。
  • Standard
    • 修正了錯誤 GH-7875 (即使記錄失敗拋出例外,郵件仍會被傳送)。

版本 8.0.15

  • 核心
    • 修正了錯誤 #81656 (GCC-11 靜默忽略 -R)。
    • 修正了錯誤 #81585 (cached_chunks 在關閉時未計入 real_size)。
  • Filter
    • 修正 FILTER_FLAG_NO_RES_RANGE 旗標。
  • Hash
    • 修正了錯誤 GH-7759 (hash() 和 hash_hmac() 的回傳類型不正確)。
    • 修正了錯誤 GH-7826 (hash_hmac_file 和 hash_file 中的參數名稱不一致)。
  • MySQLnd
    • 修正了可能會截斷大型 bigint 的錯誤。
  • OCI8
    • 修正了錯誤 GH-7765 (php_oci_cleanup_global_handles 在第二次呼叫時發生 segfault)。
  • OPcache
    • 修正了錯誤 #81679 (追蹤 JIT 在重新附加時崩潰)。
  • PDO_PGSQL
    • 修正了 PDO PgSQL 的錯誤訊息分配問題。
  • Sockets
    • 避免在 NetBSD 上 sockets/multicast.c 中使用 void* 算術。
  • Spl
    • 修正了錯誤 #75917 (SplFileObject::seek 在使用 CSV 旗標時損壞)。

版本 8.0.14

  • 核心
    • 修復錯誤 #81582 (如果 __toString() 來自 trait,則不會隱含宣告 Stringable)。
    • 修復錯誤 #81591 (在特定情況下,沒有正確記錄嚴重錯誤)。
    • 修復錯誤 #81626 (在 __сallStatic() 中使用 static:: 並封裝至 Closure::fromCallable() 時發生錯誤)。
    • 修復錯誤 #81631 (動態類別名稱的 ::class 可能會產生錯誤的行號)。
  • FPM
    • 修正了錯誤 #81513 (FPM zlog 中未來可能發生堆積溢位)。
  • GD
    • 修正了錯誤 #71316 (來自 imagecreatefromstring 的 libpng 警告)。
  • IMAP
    • 修正了錯誤 #81649 (imap_(un)delete 接受序列,而不是單個數字)。
  • OpenSSL
    • 修復錯誤 #75725 (./configure:偵測 RAND_egd)。
  • PCRE
    • 修正了錯誤 #74604 (php_pcre_replace_impl 中的越界)。
  • SPL
    • 修復錯誤 #81587 (使用附加的 SimpleXMLElement 時,MultipleIterator 發生區段錯誤)。
  • Standard
    • 修復錯誤 #81618 (在 FreeBSD 上,dns_get_record 由於遺失類型而失敗)。
    • 修正了錯誤 #81659 (stream_get_contents() 可能會不必要地過度分配記憶體)。

版本 8.0.13

  • 核心
    • 修正了錯誤 #81518 (透過 default_mimetype / default_charset 進行標頭注入)。
  • Date
    • 修正了錯誤 #81500 (自 7.3.14 / 7.4.2 以來的間隔序列化迴歸)。
  • DBA
    • 修正了錯誤 #81588 (TokyoCabinet 驅動程式洩漏記憶體)。
  • MBString
    • 修復錯誤 #76167 (mbstring 可能會使用先前請求的指標)。
  • Opcache
    • 修復錯誤 #81512 (陣列和 JIT 的非預期行為)。
  • PCRE
    • 修復錯誤 #81424 (PCRE2 10.35 JIT 效能回歸)。
  • XML
    • 修復錯誤 #79971 (特殊字元中斷 xml 函式中的路徑)。 (CVE-2021-21707)
  • XMLReader
    • 修復錯誤 #81521 (XMLReader::getParserProperty 可能會對有效的屬性擲回)。

版本 8.0.12

  • CLI
    • 修正了錯誤 #81496 (伺服器記錄不正確的請求方法)。
  • 核心
    • 修復錯誤 #81435 (觀察器 current_observed_frame 可能會指向舊的 (覆寫的) 框架)。
    • 修正了錯誤 #81380 (觀察者可能未正確初始化)。
  • DOM
    • 修正了錯誤 #81433 (DOMElement::setIdAttribute() 呼叫兩次可能會移除 ID)。
  • FFI
    • 修正了錯誤 #79576 (當未定義類型時,「TYPE *」顯示無用的訊息)。
  • FPM
    • 修正了錯誤 #81026 (PHP-FPM 在根程序中的 oob R/W 導致權限提升) (CVE-2021-21703)。
  • Fileinfo
    • 修復錯誤 #78987 (編碼偵測期間的高記憶體使用量)。
  • Filter
    • 修正了錯誤 #61700 (FILTER_FLAG_IPV6/FILTER_FLAG_NO_PRIV|RES_RANGE 失敗)。
  • Opcache
    • 修復錯誤 #81472 (讀取 /proc/self/maps 時,無法支援大型 linux 主要/次要裝置編號)。
  • Reflection
    • ReflectionAttribute 不再是 final。
  • SPL
    • 修復錯誤 #80663 (遞迴 SplFixedArray::setSize() 可能會導致雙重釋放)。
    • 修復錯誤 #81477 (8.0.1 中 LimitIterator + SplFileObject 的回歸問題)。
  • Standard
    • 修復錯誤 #69751 (變更 sprintf/printf 缺少/錯別字位置指定器的錯誤訊息)。
  • Streams
    • 修復錯誤 #81475 (stream_isatty 在附加串流封裝器時發出警告)。
  • XML
    • 修復錯誤 #70962 (XML_OPTION_SKIP_WHITE 會移除內嵌的空格)。
  • Zip
    • 修復錯誤 #81490 (ZipArchive::extractTo() 可能會洩漏記憶體)。
    • 修復錯誤 #77978 (以冒號結尾的 Dirname 解壓縮至錯誤的目錄)。

版本 8.0.11

  • 核心
    • 修復錯誤 #81302 (在移除串流篩選器之後的串流位置)。
    • 修復錯誤 #81346 (不可搜尋的串流在寫入之後不會更新位置)。
    • 修復錯誤 #73122 (串連字串時的整數溢位)。
  • GD
    • 修復錯誤 #53580 (在調整大小期間,gdImageCopyResampled 會導致顏色變更)。
  • Opcache
    • 修復錯誤 #81353 (使用預先載入和靜態繫結的閉包時發生區段錯誤)。
  • Shmop
    • 修復錯誤 #81407 (shmop_open 無法附加並導致 php 崩潰)。
  • Standard
    • 修復錯誤 #71542 (disk_total_space 無法與相對路徑搭配使用)。
    • 修復錯誤 #81400 (dns_get_record() 結果中未終止的字串)。
  • SysVMsg
    • 修復錯誤 #78819 (msg_send 中的堆積溢位)。
  • XML
    • 修復錯誤 #81351 (xml_parse 可能會失敗,但沒有錯誤碼)。
  • Zip
    • 修復錯誤 #80833 (ZipArchive::getStream 不使用 setPassword)。
    • 修復錯誤 #81420 (ZipArchive::extractTo 解壓縮至目的地之外)。

版本 8.0.10

  • 核心
    • 修復錯誤 #72595 (php_output_handler_append 非法寫入存取)。
    • 修復錯誤 #66719 (將 get_called_class() 與 call_user_func() 搭配使用時的怪異行為)。
    • 修復錯誤 #81305 (內建 Web 伺服器捨棄帶有「Upgrade」標頭的請求)。
  • BCMath
    • 修復錯誤 #78238 (BCMath 回傳「-0」)。
  • CGI
    • 修復錯誤 #80849 (HTTP 狀態標頭截斷)。
  • Date
    • 修復錯誤 #64975 (當 AM/PM 不在結尾時,剖析錯誤)。
    • 修復錯誤 #78984 (DateTimeZone 接受無效的 UTC 時區)。
    • 修正了錯誤 #79580 (date_create_from_format 遺漏閏年)。
    • 修復錯誤 #80409 (DateTime::modify() 會遺失「weekday」參數的時間)。
  • GD
    • 修復錯誤 #51498 (imagefilledellipse 不適用於大型圓形)。
  • MySQLi
    • 修復錯誤 #74544 (mysqli_real_escape_string() 中的整數溢位)。
  • Opcache
    • 修復錯誤 #81225 (啟用 JIT 時,pow 運算子結果錯誤)。
    • 修復錯誤 #81249 (啟用 JIT 時,屬性指派間歇性失敗)。
    • 修復錯誤 #81206 (多個 PHP 程序在啟用 JIT 時崩潰)。
    • 修復錯誤 #81272 (使用 JIT 的 array_slice 之後,var[] 發生區段錯誤)。
    • 修復錯誤 #81255 (使用功能性 JIT 時,PHPUnit 中的記憶體洩漏)。
    • 修復錯誤 #80959 (JIT 編譯期間建置 cfg 時的無限迴圈) (Nikita, Dmitry)
    • 修復錯誤 #81226 (啟用 JIT 時,整數溢位行為不同)。
  • OpenSSL
    • 修復錯誤 #81327 (在 php 7.4.22 上建置 openssl 擴充功能時發生錯誤)。
  • PDO_ODBC
    • 修正錯誤 #81252 (PDO_ODBC 未考慮 SQL_NO_TOTAL)。
  • Phar
    • 修正錯誤 #81211:建立 PHAR 封存檔時會追蹤符號連結
  • Shmop
    • 修正錯誤 #81283 (shmop 無法讀取超過 2147483647 位元組的資料)。
  • SimpleXML
    • 修復錯誤 #81325 (zif_simplexml_import_dom 中的段錯誤)。
  • Standard
    • 修正錯誤 #72146 (substr_replace 出現整數溢位)。
    • 修正錯誤 #81265 (getimagesize 對於 256px ICO 圖片回傳 0)。
    • 修正錯誤 #74960 (透過 str_repeat 造成堆積緩衝區溢位)。
  • Streams
    • 修正錯誤 #81294 (移除篩選器時發生 Segfault)。

版本 8.0.9

  • 核心
    • 修正錯誤 #81145 (copy() 和 stream_copy_to_stream() 對於 +4GB 的檔案失敗)。
    • 修正錯誤 #81163 (__sleep 中間接變數處理不正確)。
    • 修正錯誤 #81159 (當使用物件作為字串偏移時,物件轉整數警告)。
    • 修正錯誤 #80728 (PHP 內建網頁伺服器在可以終止程序時重置逾時)。
    • 修正錯誤 #73630 (內建網頁伺服器 - 覆寫 $_SERVER['request_uri'])。
    • 修正錯誤 #80173 (使用 zend_assign_to_variable() 的回傳值是不安全的)。
    • 修正錯誤 #73226 (--r[fcez] 總是回傳零的結束代碼)。
  • Intl
    • 修正錯誤 #72809 (Locale::lookup() 使用正規化選項時結果錯誤)。
    • 修正錯誤 #68471 (IntlDateFormatter 對於 "GMT+00:00" 時區失敗)。
    • 修正錯誤 #74264 (grapheme_strrpos() 對於負偏移量損壞)。
  • OpenSSL
    • 修正錯誤 #52093 (openssl_csr_sign 截斷 $serial)。
  • PCRE
    • 修正錯誤 #81101 (PCRE2 10.37 顯示意外結果)。
    • 修正錯誤 #81243 (preg_replace() 配置過多記憶體)。
  • Reflection
    • 修正錯誤 #81208 (從屬性建立 newInstance 時發生分段錯誤)。
  • Standard
    • 修正錯誤 #81223 (flock() 只鎖定檔案的第一個位元組)。

版本 8.0.8

  • 核心
    • 修正了錯誤 #81076 (具有隱式繫結的閉包上不正確的偵錯資訊)。
    • 修正錯誤 #81068 (realpath_cache_clean() 中重複釋放)。
    • 修正錯誤 #76359 (透過新增 ".." 繞過 open_basedir)。
    • 修正錯誤 #81090 (使用 .= 運算子的類型化屬性效能降低)。
    • 修正錯誤 #81070 (記憶體限制比較中的整數下溢)。
    • 修正錯誤 #81122 (FILTER_VALIDATE_URL 中的 SSRF 繞過)。(CVE-2021-21705)
  • Bzip2
    • 修正錯誤 #81092 (在 stream_filter_remove 之前 fflush 會破壞串流)。
  • Fileinfo
    • 修正錯誤 #80197 (函式 'magic_stream' 的隱式宣告無效)。
  • GMP
    • 修正錯誤 #81119 (GMP 運算子以錯誤的參數名稱拋出錯誤)。
  • OCI8
    • 修正錯誤 #81088 (oci_fetch_object() 和 oci_fetch_array() 的迴歸測試錯誤)。
  • Opcache
    • 修正錯誤 #81051 (遞增參考後的損壞屬性類型處理)。
    • 修正錯誤 #80968 (從必要檔案傳回時的 JIT 分段錯誤)。
  • OpenSSL
    • 修正錯誤 #76694 (原生 Windows 憑證驗證使用 CN 作為伺服器名稱)。
  • MySQLnd
    • 修復錯誤 #80761 (PDO 使用過多記憶體)。
  • PDO_Firebird
    • 修正錯誤 #76448 (firebird_info_cb 中的堆疊緩衝區溢位)。(CVE-2021-21704)
    • 修正錯誤 #76449 (firebird_handle_doer 中的 SIGSEGV)。(CVE-2021-21704)
    • 修正錯誤 #76450 (firebird_stmt_execute 中的 SIGSEGV)。(CVE-2021-21704)
    • 修正錯誤 #76452 (在 firebird_fetch_blob 中剖析 blob 資料時當機)。(CVE-2021-21704)
  • readline
    • 修復錯誤 #72998 (readline 完成時的無效讀取)。
  • Standard
    • 修正錯誤 #81048 (phpinfo(INFO_VARIABLES)「陣列轉字串轉換」)。
    • 修復錯誤 #77627 (Closure::__invoke 的 method_exists 不一致)。
  • Windows
    • 修正錯誤 #81120 (未使用主要 PHP DLL 的 PGO 資料)。

版本 8.0.7

  • 核心
    • 修正錯誤 #80960 (在 Windows 上失敗時 opendir() 警告錯誤資訊)。
    • 修正錯誤 #67792 (HTTP 授權配置被視為區分大小寫)。
    • 修正錯誤 #80972 (無效字串偏移量上的記憶體耗盡)。
  • FPM
    • 修正了錯誤 #65800 (事件連接埠機制)。
  • FTP
    • 修正錯誤 #80901 (ftp 擴充功能中的資訊洩漏)。
    • 修正錯誤 #79100 (錯誤的 FTP 錯誤訊息)。
  • GD
    • 修正錯誤 #81032 (GD 安裝受到外部 libgd 安裝的影響)。
  • Intl
    • 修正錯誤 #81019 (在失敗的 parse() 之後無法複製 NumberFormatter)。
  • MBString
    • 修正錯誤 #81011 (mb_convert_encoding 從陣列中移除參考)。
  • ODBC
    • 修正錯誤 #80460 (ODBC 未考慮 SQL_NO_TOTAL 指標)。
  • Opcache
    • 修正錯誤 #81007 (32 位元 x86 上的 JIT「不支援」-- 建置問題?)。
    • 修正錯誤 #81015 (Opcache 優化假設 if 條件中三元運算子的錯誤部分)。
    • 修正錯誤 #81046 (字面壓縮合併不相等相關的字面)。
  • PDO_MySQL
    • 修復錯誤 #81037 (PDO 捨棄預備陳述式的錯誤訊息文字)。
  • PDO_ODBC
    • 修正錯誤 #44643 (綁定的參數忽略明確的類型定義)。
  • pgsql
    • 修正 php_pgsql_fd_cast() 針對 php_stream_can_cast()。
  • SPL
    • 修正錯誤 #80933 (SplFileObject::DROP_NEW_LINE 對於 NUL 和 CR 損壞)。
  • XMLReader
    • 修正錯誤 #73246 (XMLReader:未檢查編碼長度)。
  • Zip
    • 修正錯誤 #80863 (ZipArchive::extractTo() 忽略參考)。

版本 8.0.6

  • PDO_pgsql
    • 還原「修正錯誤 #80892 (PDO::PARAM_INT 與 PDO::PARAM_STR 的處理方式相同)」

版本 8.0.5

  • 核心
    • 修正錯誤 #75776 (使用壓縮篩選器刷新串流損壞)。
    • 修正錯誤 #80811 (不使用 $output 但使用 $restult_code 參數的 exec 函式當機)。
    • 修正錯誤 #80814 (執行緒化的 mod_php 無法在 FreeBSD 上載入:沒有可用於靜態執行緒本地儲存的空間)。
    • 變更 Zend VM 使用的 PowerPC CPU 暫存器以解決 GCC 錯誤。舊的暫存器 (r28/r29) 可能被 _restgpr 常式覆寫,該常式用於從使用 -Os 編譯的 C 函式傳回。
  • Dba
    • 修正錯誤 #80817 (dba_popen() 可能會在 RSHUTDOWN 期間造成分段錯誤)。
  • DOM
    • 修正錯誤 #66783 (當將 DOMDocument 附加至元素時的 UAF)。
  • FFI
    • 修正錯誤 #80847 (具有 struct 類型欄位的 CData struct 無法作為 C 函式引數傳遞)。
  • FPM
    • 修正錯誤 #80024 (在移除集區後重複繼承的 socket 資訊)。
  • FTP
    • 修正錯誤 #80880 (在關機時的 SSL_read、ftp/proc_open)。
  • IMAP
    • 修正錯誤 #80800 (當 flags 參數包含 CL_EXPUNGE 時,imap_open() 失敗)。
    • 修正錯誤 #80710 (imap_mail_compose() 標頭注入)。
  • Intl
    • 修正錯誤 #80763 (msgfmt_format() 不接受 DateTime 參考)。
  • LibXML
    • 修正錯誤 #73533 (php_libxml_xmlCheckUTF8 中的無效記憶體存取)。
    • 修正錯誤 #51903 (simplexml_load_file() 不使用 HTTP 標頭)。
  • MySQLnd
    • 修正錯誤 #80837 (在擷取之後呼叫 stmt_store_result 不會拋出錯誤)。
  • Opcache
    • 修正錯誤 #80839 (PHP 的 JIT 問題)。
    • 修正錯誤 #80861 (具有 JIT 的 2D 陣列中的錯誤陣列索引鍵溢位)。
    • 修正錯誤 #80786 (使用 JIT 時的 PHP 當機)。
    • 修正錯誤 #80782 (PHP_INT_MIN-1 上的 DASM_S_RANGE_VREG)。
  • Pcntl
    • 修正錯誤 #79812 (pcntl_exec() 中的潛在整數溢位)。
  • PCRE
    • 修正錯誤 #80866 (當具有 \K 的模式具有 0 寬度完整字串比對時,preg_split 會忽略限制標誌)。
  • PDO_ODBC
    • 修正錯誤 #80783 (PDO ODBC 在每 256 個位元組截斷 BLOB 記錄)。
  • PDO_pgsql
    • 修正錯誤 #80892 (PDO::PARAM_INT 與 PDO::PARAM_STR 的處理方式相同)。
  • Session
    • 修正錯誤 #80889 (當 save_handler 無效時無法設定儲存處理常式)。
    • 修正錯誤 #80774 (session_name() 的反斜線問題)。
  • SOAP
    • 修正錯誤 #69668 (SOAP 名稱空間 URI 中未編碼的特殊 XML 字元)。
  • Standard
    • 修正錯誤 #80915 (取得 $_SERVER 的參考會隱藏其來自 phpinfo() 的值)。
    • 修正錯誤 #80914 ('getdir' 被意外地定義為 'dir' 的別名)。
    • 修正錯誤 #80771 (phpinfo(INFO_CREDITS) 在 CLI 中不顯示任何內容)。
    • 修正錯誤 #78719 (http 包裝函式會無聲地忽略長的 Location 標頭)。
    • 修正錯誤 #80838 (HTTP 包裝函式在 HTTP 101 之後等待 HTTP 1 回應)。
  • Zip
    • 修正錯誤 #80825 (ZipArchive::isCompressionMethodSupported 不存在)。

版本 8.0.3

  • 核心
    • 修正錯誤 #80706 (mail():Bcc 標頭之後的標頭可能會被忽略)。
  • DOM
    • 修正錯誤 #80600 (DOMChildNode::remove() 不適用於 CharacterData 節點)。
  • Gettext
    • 修正錯誤 #53251 (具有 null dir 的 bindtextdomain 不會回傳舊值)。
  • MySQLnd
    • 修正錯誤 #78680 (mysqlnd 的 mysql_clear_password 不會傳輸 null 結尾的密碼)。
    • 修正錯誤 #80713 (停用 ATTR_EMULATE_PREPARES 和 MySQL 8.0 時發生 SegFault)。
  • MySQLi
    • 修正錯誤 #74779 (x() 和 y() 將浮點數截斷為整數)。
  • Opcache
    • 修正錯誤 #80634 (在預先載入的 JIT 程式碼上跳過內部類別的 write_property 處理常式)。
    • 修正錯誤 #80682 (opcache 不遵守 pcre.jit 選項)。
    • 修正錯誤 #80742 (Opcache JIT 使某些布林邏輯意外地為 true)。
    • 修正錯誤 #80745 (JIT 在涉及位元移位的程式碼中產生 Assert 失敗和 UNKNOWN:0 var_dumps)。
  • OpenSSL
    • 修正錯誤 #80747 (提供 RSA 金鑰大小 < 512 會產生使 PHP 當機的金鑰)。
  • Phar
    • 修正錯誤 #75850 (關於沒有分號的 __halt_compiler() 的不明確錯誤訊息)
    • 修正錯誤 #70091 (Phar 不會在 ZIP 封存檔中標記 UTF-8 檔案名稱)。
    • 修正錯誤 #53467 (Phar 無法壓縮大型封存檔)。
  • Socket
    • 修正錯誤 #80723 (不同的 socket 會被視為相等 (8.0 中的回歸錯誤))。
  • SPL
    • 修正錯誤 #80719 (在 ArrayObject::setIteratorClass() 失敗後迭代會導致分段錯誤)。
  • Standard
    • 修正錯誤 #80654 (file_get_contents() 的 maxlen 在超過 (2**31)-1 位元組時會失敗)。
    • 修正錯誤 #80718 (ext/standard/dl.c 回退程式碼路徑有語法錯誤)。

版本 8.0.2

  • 核心
    • 修正錯誤 #80523 (大於 4GB 的原始碼會產生虛假的剖析錯誤)。
    • 修正錯誤 #80384 (篩選器會緩衝整個讀取直到檔案關閉)。
    • 修正錯誤 #80596 (匿名類別中出現無效的聯集型別 TypeError)。
    • 修正錯誤 #80617 (GCC 會在 ZEND_TYPE_INIT_CODE 中拋出關於型別縮小的警告)。
  • BCMath
    • 修正錯誤 #80545 (bcadd('a', 'a') 不會拋出例外)。
  • Curl
    • 修正錯誤 #80595 (將 POSTFIELDS 重設為空陣列會中斷請求)。
  • Date
    • 修正錯誤 #80376 (每月最後一天會導致 CPU 使用率過高)。
  • DOM
    • 修正錯誤 #80537 (DOMElement::removeAttributeNode stub 中的參數型別錯誤)。
  • Filter
    • 修正錯誤 #80584 (0x 和 0X 被 filter_var() 視為有效的十六進位數字)。
  • GMP
    • 修正錯誤 #80560 (僅包含基底前綴的字串會傳回 0 物件)。
  • Intl
    • 修正錯誤 #80644 (遺失的資源會導致後續的 get() 呼叫失敗)。
  • MySQLi
    • 修正錯誤 #67983 (使用 MYSQLI_OPT_INT_AND_FLOAT_NATIVE 的 mysqlnd 無法解譯位元欄位)。
    • 修正錯誤 #64638 (從具有游標的預存程序中擷取結果集會失敗)。
    • 修正錯誤 #72862 (在預存程序中使用預處理語句會導致分段錯誤)。
    • 修正錯誤 #77935 (當呼叫具有游標的 SP 時,mysqlnd_fetch_stmt_row_cursor 會崩潰)。
  • ODBC
    • 修正錯誤 #80592 (ODBC 參數中的所有浮點數都相同)。
  • Opcache
    • 修正錯誤 #80422 (當 Apache 2.4 與 JIT 一起使用時,php_opcache.dll 會崩潰)。
  • PDO_Firebird
    • 修正錯誤 #80521 (不再識別帶有底線的參數)。
  • Phar
    • 修正錯誤 #76929 (基於 zip 的 phar 不會遵守 phar.require_hash)。
    • 修正錯誤 #77565 (在基於 ZIP 的 phar 中偵測到不正確的定位器)。
    • 修正錯誤 #69279 (壓縮的 ZIP Phar extractTo() 會建立垃圾檔案)。
  • Phpdbg
    • 還原錯誤 #76813 的修復 (在來源運算元附近存取違規)。
  • SOAP
    • 修正錯誤 #80672 (SoapClient 中的空值取消引用)。 (CVE-2021-21702)

版本 8.0.1

  • 核心
    • 修正錯誤 #80345 (PHPIZE 組態具有過時的 PHP_RELEASE_VERSION)。
    • 修正錯誤 #72964 (CC/Bcc 標頭的空白字元未展開)。
    • 修正錯誤 #80391 (可迭代物件不與混合型別協變)。
    • 修正錯誤 #80393 (由於與 libtool 的組態差距,導致 PHP 擴充功能組建失敗)。
    • 修正錯誤 #77069 (串流篩選器遺失最後的資料區塊)。
  • Fileinfo
    • 修正錯誤 #77961 (finfo_open 精心製作的 magic 剖析 SIGABRT)。
  • FPM
    • 修正錯誤 #69625 (FPM 在沒有 SCRIPT_FILENAME 環境變數的情況下,對請求傳回 200 狀態)。
  • IMAP
    • 修正錯誤 #80438 (imap_msgno() 在 PHP 8 中會對有效的 UID 錯誤地發出警告並傳回 false)。
    • 修復 imap_savebody() 中有效 UID 的回歸錯誤。
    • 使函式之間關於無效訊息編號/UID 的警告保持一致。
  • Intl
    • 修正錯誤 #80425 (重新定義 MessageFormatAdapter::getArgTypeList)。
  • Opcache
    • 修正錯誤 #80404 (當除法結果為浮點數時,範圍推斷結果不正確)。
    • 修正錯誤 #80377 (Opcache 遺失 executor_globals)。
    • 修正錯誤 #80433 (無法在使用 JIT 時停用 AVX 命令的使用)。
    • 修正錯誤 #80447 (在 JIT 執行時發生奇怪的記憶體不足錯誤)。
    • 修正錯誤 #80480 (啟用 JIT 時發生分段錯誤)。
    • 修正錯誤 #80506 (在 ini_set("opcache.jit_debug", 1) 時立即發生 SIGSEGV)。
  • OpenSSL
    • 修正錯誤 #80368 (由於缺少 OCB 支援,OpenSSL 擴充功能無法針對 LibreSSL 進行組建)。
  • PDO MySQL
    • 修正錯誤 #80458 (PDOStatement::fetchAll() 會針對 upsert 查詢拋出錯誤)。
    • 修正錯誤 #63185 (nextRowset() 會忽略具有原生預處理語句的 MySQL 錯誤)。
    • 修正錯誤 #78152 (PDO::exec() - 多個命令的錯誤處理不佳)。
    • 修正錯誤 #66878 (除非 unset() PDO 語句物件,否則不會傳回多個結果集)。
    • 修正錯誤 #70066 (出現意外的「無法在其他未緩衝的查詢時執行查詢」)。
    • 修正錯誤 #71145 (初始化命令中的多個語句會觸發未緩衝的查詢錯誤)。
    • 修正錯誤 #76815 (當 PROCEDURE 結果集 SIGNAL 時,PDOStatement 無法進行 GC 或 closeCursor)。
    • 修正錯誤 #79872 (無法執行具有擱置結果集的查詢)。
    • 修正錯誤 #79131 (當參數值遺失時,PDO 不會拋出例外)。
    • 修正錯誤 #72368 (PdoStatement->execute() 失敗,但不會拋出例外)。
    • 修正錯誤 #62889 (LOAD DATA INFILE 中斷)。
    • 修正錯誤 #67004 (多次執行 PDOStatement::fetch() 會阻止釋放結果集)。
    • 修正錯誤 #79132 (PDO 會重複使用先前對 execute() 呼叫的參數值)。
  • Phar
    • 修正錯誤 #73809 (Phar Zip 剖析崩潰 - mmap 失敗)。
    • 修正錯誤 #75102 (`PharData` 對於有效的 tar 說校驗碼無效)。
    • 修正錯誤 #77322 (PharData::addEmptyDir('/') 可能的整數溢位)。
  • Phpdbg
    • 修正錯誤 #76813 (在來源運算元附近存取違規)。
  • SPL
    • 修正錯誤 #62004 (SplFileObject:在 seek 之後的 fgets 會傳回錯誤的行)。
  • Standard
    • 修正錯誤 #80366 (未檢查 zend_fstat() 的傳回值)。
    • 修正錯誤 #77423 (FILTER_VALIDATE_URL 接受具有無效 userinfo 的 URL)。 (CVE-2020-7071)
  • Tidy
    • 修正錯誤 #77594 (ob_tidyhandler 永遠不會重設)。
  • Tokenizer
    • 修正錯誤 #80462 (使用 TOKEN_PARSE 旗標的 Nullsafe 運算子符號化失敗)。
  • XML
    • XmlParser 不透明物件已重新命名為 XMLParser,以與其他 XML 物件保持一致。
  • Zlib
    • 修正錯誤 #48725 (在 zlib 串流中支援刷新)。

版本 8.0.0

  • BZ2
    • 修正錯誤 #71263 (fread() 不會回報 bzip2.decompress 錯誤)。
  • CLI
    • 允許 debug 伺服器透過 `-S localhost:0` 繫結至臨時埠。
  • COM
    • 修正錯誤 #55847 (DOTNET .NET 4.0 GAC 新位置)。
    • 修正錯誤 #62474 (com_event_sink 在某些參數上會崩潰)。
  • Calendar
    • 修正錯誤 #80007 (unixtojd() 參數剖析中可能出現型別混淆)。
  • 核心
    • 修正錯誤 #36365 (scandir 在每 65535 個檔案時重複檔案名稱)。
    • 修正錯誤 #49555 (應重新命名「函式必須為字串」的嚴重錯誤訊息)。
    • 修正錯誤 #62294 (register_shutdown_function() 無法正確處理結束代碼)。
    • 修正錯誤 #62609 (允許在抽象類別上實作 Traversable)。
    • 修正錯誤 #65274 (使用類別名稱增強未定義的類別常數錯誤)。
    • 修正錯誤 #65275 (在關閉函式中呼叫 exit() 不會變更 CLI 中的結束值)。
    • 修正錯誤 #69084 (當未實作重新命名的抽象 trait 函式時,會出現不清楚的錯誤訊息)。
    • 修正錯誤 #70839 (LSP 檢查禁止將選用參數轉換為可變參數)。
    • 修正錯誤 #74558 (無法重新繫結 Closure::fromCallable() 傳回的閉包)。
    • 修正錯誤 #77561 (非主要指令碼不會移除 Shebang 行)。
    • 修正錯誤 #77619 (MultipleIterator::__construct 的反射錯誤)。
    • 修正錯誤 #77966 (無法別名名稱為「namespace」的方法)。
    • 修正錯誤 #78236 (接收變數時重複 [ 時發生轉換錯誤)。
    • 修正錯誤 #78770 (內部方法內的呼叫性檢查不正確)。
    • 修正錯誤 #79108 (參考函式中的引數會使其成為堆疊追蹤中的參考)。
    • 修正錯誤 #79368 (「檔案意外結束」不是可接受的錯誤訊息)。
    • 修正錯誤 #79462 (method_exists 和 property_exists 行為不一致)。
    • 修正錯誤 #79467 (data:// 包裝器是可寫入的)。
    • 修正錯誤 #79521 (檢查 __set_state 結構)。
    • 修正錯誤 #79790 (AST 評估期間未正確處理「非法偏移類型」例外)。
    • 修正錯誤 #79791 (在二元運算期間取消設定變數時,斷言失敗)。
    • 修正錯誤 #79828 (當嘗試存取不存在的變數時發生分段錯誤)。
    • 修正錯誤 #79841 (configure 中的語法錯誤 / php.m4 中未逸出的「[]」)。
    • 修正錯誤 #79852 (count(DOMNodeList) 與 count(IteratorIterator(DOMNodeList)) 不符)。
    • 修正錯誤 #79867 (升級的未輸入屬性應取得 null 預設值)。
    • 修正錯誤 #79897 (具有屬性的升級建構子參數會導致崩潰)。
    • 修正錯誤 #79927 (在從可迭代物件產生多個 yield 之後,產生器不會拋出例外)。
    • 修正錯誤 #79946 (由於未宣告 UINT32_C,導致組建失敗)。
    • 修正錯誤 #79948 (在自動附加的檔案中結束不會中止 PHP 執行)。
    • 修正錯誤 #80045 (在使用 __call 呼叫兩個 set_exception_handler 之後發生記憶體洩漏)。
    • 修正錯誤 #80096 (在巢狀呼叫中使用命名引數時發生分段錯誤)。
    • 修正錯誤 #80109 (當啟用擴充偵錯時,無法略過引數)。
    • 修正錯誤 #80225 (eval 程式碼中命名空間使用中斷)。
    • 修正錯誤 #80258 (Windows 重複資料刪除已啟用,隨機權限錯誤)。
    • 修正錯誤 #80280 (ext/standard 和 ext/date 的 ADD_EXTENSION_DEP() 失敗)。
    • 修正錯誤 #80334 (assert() 與命名參數 - 令人困惑的錯誤)。
    • 修正錯誤 #80055 (傳回「self」的抽象 trait 方法無法由 trait 滿足)。
    • 修正 faulty generator cleanup with yield from.
    • 實作 #[Attr] Attribute 語法,如 RFC https://wiki.php.net/rfc/shorter_attribute_syntax_change 中的最終投票所示
    • 實作 FR #47074 (phpinfo() 將某些擴充功能的「On」回報為 1)。
    • 實作 FR #72089 (require() 拋出致命錯誤而非例外)。
    • 移除 pdo_odbc.db2_instance_name php.ini 指令。
    • 使用 SSE2 指令執行與地區無關的 strtolower。
  • Curl
    • 將 libcurl 最低版本需求提升至 7.29.0。
    • 修正錯誤 #80121 (直接實例化 CurlHandle 時會發生空指標取值)。
  • DOM
    • 新增 DOMXPath::$registerNodeNamespaces 屬性和建構式參數,允許全域標記設定 query() 或 evaluate() 呼叫。
    • 修正錯誤 #79968 (DOMChildNode API 在未附加節點時崩潰)。
    • 修正錯誤 #80268 (loadHTML() 在 NUL 位元組處截斷)。
  • Date
    • 修正錯誤 #60302 (DateTime::createFromFormat 應該使用 new static(),而不是 new self())。
    • 修正錯誤 #65547 (日出/日落天頂角的預設值仍然錯誤)。
    • 修正錯誤 #69044 (time 和 microtime 之間存在差異)。
    • 修正錯誤 #80057 (DateTimeImmutable::createFromFormat() 不會填入時間)。
    • 實作 FR #79903 (datetime:新增 "p" 格式,與 "P" 相同,但 UTC 回傳 "Z")。
  • Enchant
    • 新增 LIBENCHANT_VERSION 巨集。
    • 新增 enchant_dict_add 和 enchant_dict_is_added 函式。
    • 棄用 enchant_broker_set_dict_path、enchant_broker_get_dict_path、enchant_dict_add_to_personal 和 enchant_dict_is_in_session。
    • 在可用時使用 libenchant-2。
  • FFI
    • 新增 FFI\CType::getName() 方法。
    • 修正錯誤 #79177 (FFI 無法很好地處理回呼中的 PHP 例外)。
    • 修正錯誤 #79749 (將 FFI 實例轉換為布林值失敗)。
  • FPM
    • 新增 pm.status_listen 選項。
  • Fileinfo
    • 升級至 libmagic 5.39。
  • GD
    • 新增 imagegetinterpolation()。
    • 修正錯誤 #55005 (imagepolygon num_points 需求)。
    • 使 php_imagepolygon 的 $num_points 參數為選用。
    • 移除已棄用的 image2wbmp()。
    • 移除已棄用的 png2wbmp() 和 jpeg2wbmp()。
    • 將 gd 資源替換為物件。
  • IMAP
    • 修正錯誤 #64076 (imap_sort() 在失敗時不會回傳 FALSE)。
    • 修正錯誤 #76618 (imap_reopen 時發生區段錯誤)。
    • 修正錯誤 #80213 (imap_mail_compose() 在某些 $bodies 上發生區段錯誤)。
    • 修正錯誤 #80215 (imap_mail_compose() 可能會修改 by-val 參數)。
    • 修正錯誤 #80216 (imap_mail_compose() 不驗證類型/編碼)。
    • 修正錯誤 #80220 (imap_mail_compose() 可能會洩漏記憶體)。
    • 修正錯誤 #80223 (imap_mail_compose() 在格式錯誤的 body 上洩漏封包)。
    • 修正錯誤 #80226 (imap_sort() 洩漏 sortpgm 記憶體)。
    • 修正錯誤 #80239 (imap_rfc822_write_address() 洩漏記憶體)。
    • 修正錯誤 #80242 (imap_mail_compose() 在 multipart 搭配 rfc822 時發生區段錯誤)。
    • 修正因修正錯誤 #80220 所造成的小退步。
  • Iconv
    • 停止支援沒有正確設定 errno 的 iconv。
  • Intl
    • 移除已棄用的 INTL_IDNA_VARIANT_2003。
  • JIT
    • 修正錯誤 #77857 (如果使用 JIT 執行,則結果錯誤)。
    • 修正錯誤 #79255 (無法使用 enable JIT 編譯 PHP)。
    • 修正錯誤 #79582 (當 opcache.jit=1235 和 opcache.jit_debug=2 時發生崩潰)。
    • 修正錯誤 #79743 (啟用 JIT 時,指派給陣列屬性時發生致命錯誤)。
    • 修正錯誤 #79864 (Symfony OptionsResolver 中的 JIT 區段錯誤)。
    • 修正錯誤 #79888 (啟用 JIT 時執行不正確)。
  • JSON
    • JSON 擴充功能現在是 PHP 的一個組成部分,根據 RFC:https://wiki.php.net/rfc/always_enable_json (tandre) 無法停用。
  • LDAP
    • 修正記憶體洩漏。
    • 移除已棄用的 ldap_sort。
  • MBString
    • 修正錯誤 #76999 (mb_regex_set_options() 回傳目前的選項)。
    • 從 mb_decode_numericentity() 移除未使用的 $is_hex 參數。
  • MySQLi
    • 修正錯誤 #76809 (使用持續連線時,不會遵守 SSL 設定)。
  • Mysqlnd
    • 修正錯誤 #60594 (mysqlnd 在 phpinfo 中公開 160 行統計資訊)。
  • OCI8
    • 棄用舊的 OCI8 函式別名。
    • 現代化 oci_register_taf_callback() 可呼叫參數解析實作。
    • 移除過時的 no-op 函式 oci_internal_debug()。
  • ODBC
    • 修正錯誤 #22986 (odbc_connect() 可能會重複使用持續連線)。
    • 修正錯誤 #44618 (提取可能會依賴未初始化的資料)。
  • Opcache
    • 修正錯誤 #76535 (Opcache 不會重播編譯時警告)。
    • 修正錯誤 #78654 (在具有非 ASCII 字元的檔案上錯誤計算 opcache 總和檢查碼)。
    • 修正錯誤 #79665 (ini_get() 和 opcache_get_configuration() 不一致)。
    • 修正錯誤 #80030 (在具有未定義動態類別名稱的靜態屬性上使用 isset 時,最佳化工具發生區段錯誤)。
    • 修正錯誤 #80175 (PHP8 RC1 - JIT 緩衝區無法運作)。
    • 修正錯誤 #80184 (while / if 陳述式中的複雜運算式錯誤地解析為 false)。
    • 修正錯誤 #80255 (8.0.0rc1 中的 Opcache 錯誤 (錯誤的條件結果))。
    • 修正預先載入動態宣告函式的執行階段繫結。
  • OpenSSL
    • 新增密碼編譯訊息語法 (CMS) 支援。
  • PCRE
    • 不要忽略無效的跳脫序列。
    • 更新至 PCRE2 10.35。
  • PDO
    • 將預設的 PDO 錯誤模式變更為例外。
    • 修正錯誤 #77849 (停用 PDO 控制代碼/連線物件的複製)。
  • PDO_Firebird
    • 修正錯誤 #64937 (Firebird PDO 預先處理 sql)。
  • PDO_OCI
    • 新增設定和取得 Oracle OCI 18c 呼叫逾時的支援。
  • PDO_PGSQL
    • 將 libpq 最低版本需求提升至 9.1。
  • PGSQL
    • 將 libpq 最低版本需求提升至 9.1。
  • Phpdbg
    • 修正錯誤 #76596 (phpdbg 支援 display_errors=stderr)。
    • 修正錯誤 #76801 (開啟的檔案過多)。
    • 修正錯誤 #77800 (phpdbg 在列出某些條件中斷點時發生區段錯誤)。
    • 修正錯誤 #77805 (readline 共用時,phpdbg 建置失敗)。
  • Reflection
    • 修正錯誤 #64592 (ReflectionClass::getMethods() 回傳範圍之外的方法)。
    • 修正錯誤 #69180 (Reflection 不會遵循 trait 衝突解決/方法別名)。
    • 修正錯誤 #74939 (巢狀 trait 的別名方法會轉換為小寫)。
    • 修正錯誤 #77325 (ReflectionClassConstant::$class 在擴充時回傳錯誤的類別)。
    • 修正錯誤 #78697 (ReflectionClass::implementsInterface - 對於 trait 的不準確錯誤訊息)。
    • 修正錯誤 #80190 (ReflectionMethod::getReturnType() 不會將靜態作為聯合類型的一部分處理)。
    • 修正錯誤 #80299 (ReflectionFunction->invokeArgs 在參數中混淆)。
    • 修正錯誤 #80370 (在動態屬性上使用 getAttributes 時發生區段錯誤)。
    • 實作 FR #79628 (新增 ReflectionClass::getConstants 和 ReflectionClass::getReflectionConstants 的 $filter 參數) (carusogabriel)
    • 實作 ReflectionProperty::hasDefaultValue 和 Reflection::getDefaultValue (beberlei)
  • SNMP
    • 修正錯誤 #70461 (在 net-snmp 中不支援 md5 程式碼時停用它)。
  • SPL
    • 修正錯誤 #65006 (spl_autoload_register 在使用 self 的多個可呼叫物件、相同方法時失敗)。
    • 修正錯誤 #65387 (SPL 迭代器中的循環參考不會被垃圾回收)。
    • 修正錯誤 #71236 (spl_autoload_register() 的第二次呼叫如果沒有引數則不會執行任何動作)。
    • 修正錯誤 #79987 (SplFileInfo 中因缺少 zend_restore_error_handling() 而造成的記憶體洩漏)。
    • SplFixedArray 現在是 IteratorAggregate 而非 Iterator。
  • SQLite3
    • 新增 SQLite3::setAuthorizer() 和相關的類別常數。
  • Session
    • 修正錯誤 #73529 (session_decode() 在錯誤輸入時會無聲無息地失敗)。
    • 修正錯誤 #78624 (使用者定義的會期處理程式的 session_gc 回傳值)。
  • Shmop
    • 將 shmop 資源轉換為物件。
  • SimpleXML
    • 修正錯誤 #63575 (根元素未正確複製)。
    • 修正錯誤 #75245 (不要設定僅有空白的元素內容)。
  • Sodium
    • 修正錯誤 #77646 (sign_detached() 字串未終止)。
  • Standard
    • 當 HTTP 串流包裝器填入 $http_response_header 變數時,不要強制重建符號表。
    • 修正錯誤 #47983 (mail() 中的混合 LF 和 CRLF 行結尾)。
    • 修正錯誤 #64060 (lstat_stat_variation7.phpt 在某些檔案系統上失敗)。
    • 修正錯誤 #75902 (當 str_replace 與巢狀陣列誤用時應發出警告)。
    • 修正錯誤 #76859 (如果 stream_get_line 與產生資料的篩選器一起使用,則會略過資料)。
    • 修正錯誤 #77204 (getimagesize(): 讀取錯誤!應提及檔案路徑)。
    • 修正錯誤 #78385 (當問號是最後一個字元時,parse_url() 不包含 'query')。
    • 修正錯誤 #79868 (使用 array_unique 排序會產生不想要的結果)。
    • 修正錯誤 #80256 (file_get_contents 會以分塊編碼重新導向方式去除第一行)。
    • 修正錯誤 #80266 (parse_url 會無聲無息地捨棄連接埠號碼 0)。
    • 修正錯誤 #80290 (當 ASSERT_CALLBACK 與動態訊息一起使用時發生雙重釋放)。
    • 實作 FR #78638 (__PHP_Incomplete_Class 應為 final)。
    • 使 cmd 執行函式的引號一致。
  • Tidy
    • 從 tidy_repair_string() 移除未使用的 $use_include_path 參數。
  • Tokenizer
    • 修正錯誤 #80328 (PhpToken::getAll() 名稱令人困惑)。
  • XML
    • 修正錯誤 #76874 (xml_parser_free() 絕不應洩漏記憶體)。
  • XMLWriter
    • 變更函式以接受/回傳 XMLWriter 物件而不是資源。
    • 實作 FR #79344 (xmlwriter_write_attribute_ns: $prefix 應為可為 null)。
    • 從 XMLWriter 存根移除回傳類型。
  • Zip
    • 將 "flags" 選項新增至 ZipArchive::addGlob 和 addPattern 方法,預設保留先前的 FL_OVERWRITE 行為。
    • 新增 ZipArchive::EM_UNKNOWN 和 ZipArchive::EM_TRAD_PKWARE 常數。
    • 新增 ZipArchive::isCompressionMethodSupported() 和 ZipArchive::isEncryptionMethodSupported() 方法 (libzip 1.7.0)。
    • 新增 ZipArchive::replaceFile() 方法。
    • 新增 ZipArchive::setCancelCallback 方法 (自 libzip 1.6.0 起)。
    • 新增 ZipArchive::setMtimeName 和 ZipArchive::setMtimeIndex 方法。
    • 新增 ZipArchive::setProgressCallback 方法 (自 libzip 1.3.0 起)。
    • 新增 lastId 屬性至 ZipArchive。
    • 新增可選的 "flags" 參數至 ZipArchive::addEmptyDir、addFile 和 addFromString 方法。
    • 修正錯誤 #50678 (ZipArchive 類別解壓縮的檔案會遺失其原始修改時間)。
    • 修正錯誤 #72374 (remove_path 會移除檔名的第一個字元)。
    • 實作 FR #77960 (為 ZipArchive::addGlob 和 ZipArchive::addPattern 新增壓縮/加密選項)。
    • ZipArchive::status 和 ZipArchive::statusSys 屬性以及 ZipArchive::getStatusString() 方法在封存檔關閉後仍然有效。
  • Zlib
    • 修正錯誤 #71417 (fread() 不會回報 zlib.inflate 錯誤)。
    • 修正錯誤 #78792 (Content-Type: image/ 會停用 zlib.output_compression)。
To Top