1. 檢查
列出已安裝的 PHP 套件(Ubuntu 官方部落格的指令):
apt list '?installed ?name(^php[0-9.]+$)'拿版本對照公告。USN-8948-1(2026-10-21 發布):
| 發行版 | 套件 | 修補版 |
|---|---|---|
| 26.10 | php8.5(含 libapache2-mod-php8.5、php8.5-cgi、php8.5-cli、php8.5-fpm) | 8.5.9-0ubuntu2.1 |
| 26.04 LTS | php8.5(同上四個套件) | 8.5.4-0ubuntu1.5 |
| 24.04 LTS | php8.3(libapache2-mod-php8.3、php8.3-cgi、php8.3-cli、php8.3-fpm) | 8.3.6-0ubuntu0.24.04.13 |
| 22.04 LTS | php8.1(libapache2-mod-php8.1、php8.1-cgi、php8.1-cli、php8.1-fpm) | 8.1.2-1ubuntu2.28 |
USN-8948-2(同日發布,需要 Ubuntu Pro):
| 發行版 | 修補版 | 取得方式 |
|---|---|---|
| 20.04 LTS(php7.4) | 7.4.3-4ubuntu2.29+esm5 | Ubuntu Pro |
| 18.04 LTS(php7.2) | 7.2.24-0ubuntu0.18.04.17+esm14 | Ubuntu Pro |
| 16.04 LTS(php7.0) | 7.0.33-0ubuntu0.16.04.16+esm22 | Ubuntu Pro 的 Legacy Support 附加元件 |
| 14.04 LTS(php5) | 5.5.9+dfsg-1ubuntu4.29+esm18 | Ubuntu Pro 的 Legacy Support 附加元件 |
這些是 Ubuntu 回移植後的版號,數字看起來比 php.net 的修補版舊,但已經修好。判讀方式見我受影響嗎?。
註:回移植
- 回移植
- 發行版不升級大版本,只把安全性修補搬回舊版套件。7.4、8.0、8.1 這次有官方最小化原始碼回移植,沒有新的官方安裝包。確認時要看發行版安全公告,不要只對 php.net 版號。
ondrej/php PPA
很多主機用 ondrej/php PPA 裝其他 PHP 分支。它不是 Ubuntu 官方套件,上面的 USN 不涵蓋它,但 PPA 在 2026-10-21 已上架修補版(例如 24.04、22.04 的 8.3.36-1+ubuntu24.04.1+deb.sury.org+1)。PPA 的版號就是上游版號,對照版本矩陣即可。
分辨套件從哪裡來:
apt-cache policy php8.3-fpm*** 標的那一行是已安裝的版本,下面列出它來自哪個套件庫。
2. 更新
Ubuntu 部落格寫出兩種做法,擇一:
sudo apt update && sudo apt upgradesudo apt update && sudo apt install --only-upgrade '?name(^php[0-9.]+$)'20.04 LTS 以前的修補需要先啟用 Ubuntu Pro(16.04、14.04 另需 Legacy Support 附加元件)。
註:LTS
- LTS
- Long-term support。Linux 發行版與 LTS 廠商事先拿到修補。版號可能仍是廠商自己的編號,要以該廠商的安全公告為準。
3. 重啟
使用 mod_php 時,Ubuntu 部落格寫的是重啟 Apache,或直接重新開機:
註:mod_php
- mod_php
- 把 PHP 嵌進 Apache 行程的模組。未驗證的請求可在應用程式碼開始前碰到漏洞;官方稱預設設定下已展示完整 RCE。worker 會跨請求重複使用的部署,過期狀態更有機會留下來。
sudo systemctl restart apache2sudo reboot使用 PHP-FPM 時,服務名稱帶分支號(例如 php8.3-fpm)。先列出有哪些,再逐一重啟:
註:PHP-FPM
- PHP-FPM
- 以獨立行程池處理請求的常見跑法。基金會確認經應用層路徑可以 RCE。官方沒有把 PHP-FPM 寫成安全,只是沒有把它排在 mod_php 前面。
systemctl list-units --type=service 'php*-fpm*'
sudo systemctl restart php8.3-fpm同一台裝了好幾個分支時,每一個都要重啟。前面還有 nginx 時不用重啟 nginx;用 mod_php 的 Apache 才要重啟。
4. 驗證
- 再跑一次第 1 步的
apt list,確認版本等於或新於公告上的修補版。 - 向正在接流量的那一支 PHP 確認,不只看命令列的
php -v,做法見我受影響嗎?。
來源
查詢日期:。官方公告優先列出;內容如與 PHP 官方公告不一致,以官方公告為準。