PHP 開發團隊於日前正式釋出了 PHP 8.4.16 版本。這是一個重要的安全性更新 (Security Release),除了包含多項核心功能的 Bug 修復外,更解決了數個潛在的安全風險。作為長期支援版本的一環,同時也是許多 Linux 發行版預裝的的版本,官方強烈建議所有使用 PHP 8.4 系列的使用者立即進行升級。
本次更新不僅修復了多個核心功能的 Bug,更緊急修補了數個涉及記憶體安全與資料洩漏的高風險漏洞(CVE)。 無論是使用最新的 8.5 分支,還是長期支援的 8.4 分支,更舊的 8.2 等,也都有更新,皆屬於安全性更新 (Security Release),強烈建議立即升級。
另外,新版 PHP 8.5.1,較舊版本 PHP 8.3 系列也推出了 8.3.29,8.2 系列則釋出了 8.2.30,8.1 系列更新了 8.1.34。
以下為本次更新的重點整理:
重大安全性修正 (Security Fixes)
本次更新修補了兩個主要的安全漏洞,涉及標準函式庫中的常用功能,PHP 8.5、PHP 8.4 這次有共通的更新,開發者應特別留意:
array_merge() 堆積緩衝區溢位 (Heap Buffer Overflow)
識別碼:CVE-2025-14178 / GHSA-h96m-rvf9-jgm2
這項的嚴重性為 Critical,在CVSS v3 的基本分數: 9.8,在特定情況下使用 array_merge() 可能導致堆積緩衝區溢位。這類漏洞通常可能被攻擊者利用來執行惡意程式碼或導致服務崩潰。
dns_get_record() Null Byte 終止問題
識別碼:GHSA-www2-q4fc-65wf
描述:修復了 dns_get_record() 函式中關於 Null Byte (空字元) 的處理瑕疵。這類問題通常與字串處理不當有關,可能導致解析錯誤或繞過某些安全檢查。
核心與功能修復 (Key Bug Fixes)
除了安全性更新檔,PHP 8.4.16 也解決了多個影響穩定性的 Bug,涵蓋 Core、DOM、Phar 等元件。
核心 (Core) 與標準庫 (Standard)
http_build_query 堆疊溢位:修復了處理深層巢狀結構 (deep structures) 時,http_build_query 可能導致 Stack Overflow 的問題 (GH-20583)。
SensitiveParameter 参数傳遞修復:解決了當使用命名參數 (named arguments) 傳遞給可變參數 (variadic parameter) 時,SensitiveParameter 屬性無法正確運作的問題 (GH-20435)。這對於需要隱藏敏感數據(如密碼、金鑰)的應用來說至關重要。
stream_close() UAF 漏洞:修復了使用者層級在呼叫 stream_close() 時可能發生的 Use-After-Destroy 問題 (GH-20286)。
array_diff 記憶體洩漏:修復了帶有自定義類型檢查的 array_diff() 可能導致的記憶體洩漏。
DOM 擴展
querySelector 選擇器大小寫問題:修正了 querySelector 和 querySelectorAll 強制要求元素選擇器必須為小寫的錯誤 (GH-20395)。這修正了對大小寫敏感的 XML/HTML 處理邏輯。
C14NFile 安全檢查:修復了 C14NFile() 缺少 NUL byte 檢查的問題。
XPath 回調記憶體洩漏:修復了註冊 XPath callback 時在特定邊緣情況下的記憶體洩漏。
Phar 擴展
__halt_compiler() 大小寫敏感度:修復了 Phar 在讀取 stub 時未遵守 __halt_compiler() 大小寫不敏感規則的問題 (GH-20442)。
fflush() 回傳值錯誤:修正了 Phar 文件條目中 fflush() 回傳值損壞的問題。
其他
Boost Context 同步:核心將所有的 boost.context 檔案與上游 1.86.0 版本進行了同步,確保底層協程處理的穩定性。
PHP 8.5.1 專屬安全性修復
另外,PHP 8.5 系列引入了更多新功能,也因此包含了額外的安全更新內容:
getimagesize() 記憶體資訊洩漏 (Information Leak)
識別碼:CVE-2025-14177 / GHSA-3237-qqm7-mfv7
描述:在處理特定圖像檔案時,可能洩漏伺服器記憶體中的敏感資訊。
PDO 結果引用 Null Dereference
識別碼:CVE-2025-14180 / GHSA-8xr5-qppj-gvwj
描述:修復了 PDO 在引用查詢結果時可能發生的 Null 指標解參考導致的崩潰。
URI 擴展:無限制遞迴與堆疊消耗
識別碼:CVE-2025-67899
描述:涉及 uriparser (0.9.9及以下版本) 的漏洞,可能導致堆疊耗盡 (Stack Consumption) 的 DoS 攻擊。
PHP 8.5.1 重點功能修復 (Key Bug Fixes)
PHP 8.5 作為最新的穩定分支,包含了許多新特性(如基於 Lexbor 的 HTML/URL 解析),本次更新重點修復了這些新元件的穩定性。
PHP 8.5 引入的 Lexbor 引擎與新的 URI 擴展在本次有重要修正:
Lexbor 崩潰修復:修復了 \Uri\WhatWg\Url 在解析格式錯誤的 URL 時,因 Lexbor 記憶體損壞導致的 SEGV (Segmentation Fault) 崩潰 (GH-20502)。
Host 丟失問題:修正了呼叫 withPath() 或 withQuery() 後,URL 物件丟失 Host 資訊的錯誤 (GH-20501)。
Null Byte 錯誤:修復了 ext/uri 遇到 Null byte 時不正確拋出 ValueError 的行為 (GH-20366)。
資料庫 (MySQLnd & PDO)
MySQL IPv6 連線回歸:緊急修復了導致 IPv6 位址(包含在中括號內 [])無法連線的重大回歸錯誤 (GH-20528)。這對於使用 IPv6 環境的後端服務至關重要。
PDO 建構函數修復:修正了 PDO::FETCH_CLASSTYPE 在 8.5.0 中忽略 $constructorArgs 參數的問題 (GH-20553)。
核心與其他擴展
Fibers (纖程):修復了當 fiber.stack_size 設定值較小時,ASAN (AddressSanitizer) 偵測到的堆疊溢位問題 (GH-20483)。
Opcache:修復了 opcache.file_cache 在字串緩衝區 (interned string buffer) 滿載時功能損壞的問題 (GH-20329)。
Mac OS 編譯問題:解決了 Mac OS 上 preserve_none 屬性的配置檢查錯誤 (GH-20546)。
Boost Context 同步:核心同步了 upstream 1.86.0 版本的 boost.context 檔案,提升協程底層穩定性。
升級建議
鑑於本次更新包含 CVE-2025-14178 等記憶體相關的安全漏洞,CyberQ 建議所有運行 PHP 8.4 的生產環境盡快安排升級至 8.4.16,PHP 8.5 分支則更新到新的 8.5.1。
下載連結:可以從 PHP 官方下載頁面 更新。
Windows 用戶:請至 PHP for Windows 下載對應的二進位檔案。
Linux 發行版:請關注各發行版 (Fedora, Debian, Ubuntu 等) 的套件管理員更新通知。
延伸閱讀:











