最近 PHP 被爆出一個重大漏洞 「PHP 遠端程式碼執行 (CVE-2024-4577)」。
此漏洞由「戴夫寇爾研究團隊」在前瞻攻擊研究期間發現,影響範圍相當廣泛。由於 PHP 在網站開發中應用非常普及,尤其是 Windows 作業系統環境,這對開發者與站點管理者構成極大威脅。
漏洞描述
根據研究團隊公布的資訊,該漏洞源於:
- PHP 在設計時忽略了 Windows 作業系統內部「字元編碼轉換(Best-Fit)」的特性。
- 導致未認證的攻擊者可利用特定字元序列,繞過舊有的 CVE-2012-1823 保護,並在遠端 PHP 伺服器上執行任意程式碼。
這表示在 Windows 上執行 PHP 時,若未進行相應防護,駭客可透過此漏洞取得遠端程式碼執行的能力。
影響範圍
本次弱點影響所有安裝於 Windows 作業系統 上的 PHP 版本,包括但不限於:
- PHP 8.3 < 8.3.8
- PHP 8.2 < 8.2.20
- PHP 8.1 < 8.1.29
注意: PHP 8.0、PHP 7 與 PHP 5 的官方維護已經停止,若仍使用這些更舊版本,存在更高的風險。
如何確認自己易遭受攻擊?
研究團隊在文章中列出兩種方式來檢查伺服器易受攻擊的情境:
- 其中一項情境特別提及 XAMPP for Windows 的預設設定,也代表只要安裝 XAMPP for Windows(所有版本)並未特別修改,就可能預設受此弱點影響。
- 在 繁體中文、簡體中文及日文語系 的 Windows 作業系統上,此漏洞更容易被利用。
如果目前的網站是使用 Apache HTTP Server + PHP 的組合,建議盡快檢查設定與 PHP 版本,以評估是否存在安全風險。
修補建議
1. 升級至最新 PHP 版本:
強烈建議所有使用者儘速升級至 PHP 官方最新釋出的版本:
- PHP 8.3.8
- PHP 8.2.20
- PHP 8.1.29
2. 暫時性緩解措施:
- Rewrite 規則阻擋攻擊:若無法立刻更新 PHP,可透過 Rewrite 規則避免攻擊向量。
- 修改 Apache 設定檔:特別是 XAMPP for Windows 使用者,可將 httpd-xampp.conf 中的
ScriptAlias /php-cgi/ "C:/xampp/php/"
這行註解掉,以免預設曝露在弱點中。
作為一名PHP開發者,看到這樣的資安問題,確實讓人感到有些擔憂。不過,幸運的是,研究團隊已經在第一時間回報給PHP官方並且發佈了修復版本。如果有相同或是類似環境,希望大家都能夠盡快更新自己的PHP版本,保證系統的安全。