觀點 · 資訊分享

PHP 8.2 到 8.5 四個版本同一天發安全更新:修補 openssl_encrypt 的記憶體損壞漏洞

PHP 官方在 7 月 2 日同時釋出 8.5.8、8.4.23、8.3.32、8.2.32 四個安全版本,主要修補 openssl_encrypt 使用特定加密演算法時可能寫壞記憶體的問題(CVE-2026-14355)。

發布
2026-07-02
篇幅
約 4 分鐘 · 1,657 字
結構
7 節 + 3 題常見問題
標籤
#PHP#CVE-2026-14355#OpenSSL#安全更新
PHP 8.2 到 8.5 四個版本同一天發安全更新:修補 openssl_encrypt 的記憶體損壞漏洞

一句話看懂:PHP 在 7 月 2 日同天釋出 8.5.8、8.4.23、8.3.32、8.2.32 四個安全版本,主要補上 openssl_encrypt 在特定演算法下可能寫壞記憶體的漏洞。

PHP 8.2 到 8.5 同天發安全更新資訊圖卡:特定加密呼叫會寫壞記憶體,四個版本同天修好

先用白話講:這個漏洞在說什麼?

想像你要寄一件東西,先量好大小訂了一個紙箱。結果寄送前要多包一層保護墊,東西變大了,卻還是塞進原本那個紙箱,邊緣的東西就被擠到箱子外面,把隔壁的貨也壓壞了。

CVE-2026-14355 就是這種「箱子訂小了」的問題。PHP 的 openssl_encrypt() 在使用 AES-WRAP-PAD(一種用來保護金鑰的加密方式)時,輸出緩衝區只按照原始資料的長度配置,沒有把這個演算法依規格會多出來的部分算進去,OpenSSL 就可能寫到配置範圍之外,弄壞記憶體管理用的資料,最後讓程式異常中止。

發生什麼事

PHP 官方網站在 2026 年 7 月 2 日公布四個版本,全部標示為安全版本:

系列 修正版本
PHP 8.5 8.5.8
PHP 8.4 8.4.23
PHP 8.3 8.3.32
PHP 8.2 8.2.32

主要修正的 CVE-2026-14355,在 NVD 上由 PHP 官方([email protected])登記,描述指出 8.2、8.3、8.4、8.5 各系列低於上述版本的都受影響,官方給的 CVSS 為 5.6(中等)。CVE 編號在 7 月 3 日才在 NVD 公開。

其他一併修的東西

依官方 ChangeLog:

  • 8.5.8 與 8.4.23:修正 Phar 的 addEmptyDir() 可以繞過「.phar 目錄保護」的問題;GD 圖片函式庫修了一個重複釋放記憶體(double free)的錯誤
  • 8.3.32:另外修了 file_get_contents 在設定 Proxy、讀取 https 網址時會當機的問題(CVE-2026-12184)
  • 同一天,PHP 也公布 8.6.0 Alpha 1,這是測試用的早期版本,官方明講不要上正式環境,Alpha 2 預計 7 月 16 日

給開發者的技術細節

先確認自己現在跑的版本:

php -v

升級時的重點:

  • Docker 使用者:把 image 標籤換成對應的新版本(例如 8.4 系列用 8.4.23 之後的映像),重新 build 並部署
  • 主機代管:到主機商後台切換 PHP 版本,或請對方升級;小版本更新通常不需要改程式
  • 想知道自己有沒有用到這個演算法:搜尋專案裡 openssl_encrypt 的呼叫,看演算法名稱是否為 AES key wrap 搭配 padding 那一類(這是我建議的檢查方式,官方沒有提供受影響清單)

我的看法

這次漏洞的觸發條件相當專門,一般的網站程式大多用 AES-256-CBC 或 GCM 加密,不會碰到 AES-WRAP-PAD,所以不必恐慌。但我自己的習慣是:PHP 官方標明「這是安全版本」的小版本,就排進下一次維護時間升級,因為同一批更新常常還夾帶別的修正,像這次的 Phar 與 GD 部分,對上傳功能多的網站就比較有感。

另外幫接案的人提個醒:很多客戶的舊主機還停在好幾個小版本以前,沒有人在更新。與其等漏洞出了才處理,不如在維護合約裡把「每季檢查 PHP 版本」寫進去。

名詞小辭典

  • CVE:資安漏洞的公開編號,像漏洞的身分證字號。
  • 緩衝區(Buffer):程式暫時放資料的記憶體區塊,大小要事先配置好。
  • CVSS:漏洞嚴重程度的評分,滿分 10 分,數字越高越危險。
  • Phar:PHP 的打包檔格式,可以把多個檔案包成一個檔案。

資料來源

常見問題

我的網站一定會受到 CVE-2026-14355 影響嗎?
不一定。依漏洞描述,問題出在 openssl_encrypt 使用 AES-WRAP-PAD 這個演算法時,只有程式真的用到這個演算法才可能踩到(這是依描述的推測,官方沒有列出受影響的應用)。不過同一批更新還有其他修正,建議照常升級。
要升到哪個版本?
8.5 系列升到 8.5.8、8.4 系列升到 8.4.23、8.3 系列升到 8.3.32、8.2 系列升到 8.2.32。小版本更新不改語法,通常不需要改程式。
PHP 8.6 是不是也出了?
同一天 PHP 公布了 8.6.0 Alpha 1,這是給開發者測試用的早期版本,官方明講不要用在正式環境;下一個 Alpha 2 預計 7 月 16 日釋出。
LINE