PHP2Shell Ubuntu 安全升級 (三分鐘攪掂)

嚴重資訊安全警告:PHP2Shell (CVE-2026-109618 / CVE-2026-109619)
假設目前的環境已經過時 (Ubuntu 22.04 + Apache mod_php + PHP 8.1),存在極高的遠端程式碼執行 (RCE) 風險。由於 mod_php 與網頁伺服器共用記憶體,攻擊者可輕易觸發記憶體耗盡 (OOM) 錯誤,在無需身分驗證的情況下完全接管伺服器。您必須立即升級至支援的 PHP 8.3 或 8.4 版本。
本指南將帶領您一步步在 Ubuntu 伺服器(搭配 Apache)上升級至安全的 8.3.36 版本,以徹底防範近期爆發的 PHP2Shell 遠端程式碼執行漏洞。
1 關於 PHP2Shell 漏洞 (CVE-2026-109618 / 109619)
PHP2Shell 是存在於 PHP 核心記憶體管理中的嚴重漏洞。當使用 Apache 的 mod_php 模組時,攻擊者可以透過構造特定的惡意請求(例如觸發記憶體耗盡),利用釋放後使用 (Use-After-Free) 的缺陷,在未經身分驗證的情況下於伺服器上執行任意程式碼 (RCE)。
2 新增 Ondřej Surý PPA 軟體庫
Ubuntu 預設的軟體庫通常不包含最新版本的 PHP。我們需要加入由 Debian PHP 維護者 Ondřej Surý 所提供的官方信任 PPA。
sudo apt update sudo apt install -y software-properties-common sudo add-apt-repository ppa:ondrej/php sudo apt update
3 安裝 PHP 8.3 與相關擴充套件
接下來,安裝 PHP 8.3 核心、Apache 模組以及您網站可能需要的常見擴充套件(如 MySQL、cURL、GD 等)。
sudo apt install -y php8.3 libapache2-mod-php8.3 php8.3-mysql php8.3-xml php8.3-curl php8.3-mbstring php8.3-zip php8.3-gd php8.3-bz2 php-memcached
4 切換 Apache 模組 (停用舊版)
安裝完成後,您必須告訴 Apache 停止使用舊版且易受攻擊的 PHP 模組(假設您原本使用的是 PHP 8.1),並啟用全新的 PHP 8.3 模組。
sudo a2dismod php8.1 sudo a2enmod php8.3
php8.1 替換為您對應的舊版本號。
5 重啟服務與驗證
重新啟動 Apache 伺服器以套用新的模組設定,並在命令列檢查當前的 PHP 版本。
sudo systemctl restart apache2 php -v
執行 php -v 後,您應該會看到類似以下的終端輸出,確認版本已成功升級至安全版本:
PHP 8.3.12 (cli) (built: Sep 26 2026 14:02:11) (NTS) Copyright (c) The PHP Group Zend Engine v4.3.12, Copyright (c) Zend Technologies