確認主機上安裝的 PHP 版本是否在受影響範圍內。已修復版本為 8.2.35、8.3.36、8.4.27、8.5.12 及以上。
$ php --version
PHP 8.1.2-1ubuntu2.28 (cli) (built: Oct 19 2026 18:54:45) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
with Zend OPcache v8.1.2-1ubuntu2.28
記錄目前安裝的 PHP 套件,以便升級後安裝對應版本。同時確認 PHP 透過何種 SAPI 對外服務。
$ dpkg -l 'php8.1-*' | grep '^ii' | awk '{print $2}'
php8.1-cli php8.1-common php8.1-opcache php8.1-readline php8.1-sqlite3
$ apache2ctl -M | grep -i php
php_module (shared) ← mod_php 直接曝露,受影響
檢查 Apache 啟用的站台設定,確認哪些網站正透過有漏洞的 PHP 對外服務。
$ ls /etc/apache2/sites-enabled/ $ systemctl list-units --type=service --state=running | grep -iE 'php|apache|nginx'
000-default.conf www.smallh.org-le-ssl.conf www.smallh.org.conf apache2.service loaded active running The Apache HTTP Server
| 項目 | 狀態 | 風險 |
|---|---|---|
| PHP 版本 | 8.1.2 (EOL) | Critical |
| 執行方式 | Apache mod_php | 直接曝露 |
| 對外站台 | www.smallh.org (HTTP + HTTPS) | 生產環境 |
| Ubuntu 更新 | 無可用修補 | 需手動升級 |
由於 PHP 8.1 已 EOL,Ubuntu 官方倉庫不會提供修補。使用 Ondřej Surý(Debian/Ubuntu 官方 PHP 維護者)的 PPA 取得 PHP 8.3.36 已修復版本。
$ sudo add-apt-repository -y ppa:ondrej/php $ sudo apt-get update
$ apt-cache policy php8.3-cli
php8.3-cli:
Installed: (none)
Candidate: 8.3.36-1+ubuntu22.04.1+deb.sury.org+1
根據 Step 2 記錄的模組清單,安裝對應的 PHP 8.3 套件。模組名稱只需將 8.1 替換為 8.3。
$ sudo apt-get install -y \ php8.3 \ php8.3-cli \ php8.3-common \ php8.3-opcache \ php8.3-readline \ php8.3-sqlite3 \ libapache2-mod-php8.3
dpkg -l 'php8.1-*' | grep '^ii' 取得完整清單。
安裝時若偵測到舊版模組已啟用,不會自動切換。需手動停用 8.1 模組、啟用 8.3 模組,再重啟 Apache。
$ sudo a2dismod php8.1 $ sudo a2enmod php8.3 $ sudo systemctl restart apache2
Module php8.1 disabled. Considering dependency mpm_prefork for php8.3: Module mpm_prefork already enabled Enabling module php8.3. --- apache2 restart --- Exit code: 0
從三個面向驗證:CLI 版本、Apache 載入的模組、網站回應狀態。
$ php --version
PHP 8.3.36 (cli) (built: Oct 21 2026 14:31:50) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.36, Copyright (c) Zend Technologies
with Zend OPcache v8.3.36
$ apache2ctl -M | grep -i php $ curl -s -o /dev/null -w "%{http_code}" https://www.smallh.org/
php_module (shared) ← PHP 8.3 mod_php 200 ← 網站正常回應
| 項目 | 修復前 | 修復後 |
|---|---|---|
| PHP 版本 | 8.1.2 | 8.3.36 |
| Apache 模組 | mod_php8.1 | mod_php8.3 |
| CVE-2026-109618 | 受影響 | 已修復 |
| CVE-2026-109619 | 受影響 | 已修復 |
| 網站狀態 | 200 OK | 200 OK |
sudo apt purge php8.1*sudo apt autoremove 清理不再需要的相依套件。