跳到正文
DEV Community· Reza Pratama·· 1 小時前精選AI 評分77

PHP2Shell(CVE-2026-109618、CVE-2026-109619):如何檢查及修補 PHP 版本

PHP2Shell (CVE-2026-109618, CVE-2026-109619): how to check and patch your PHP version

AI 導讀

PHP 專案於 2026 年 10 月 21 日為 PHP2Shell(CVE-2026-109618、CVE-2026-109619)發布修補;兩項漏洞均可讓未經認證的攻擊者遠端執行程式碼,CVSS v4.0 評分均為 9.2。

推薦理由

文章列出 PHP2Shell 的修補版本及檢查方式,並指出命令列版本未必對應實際處理網頁請求的 PHP 環境,提醒管理員核對供應商的修補資訊。

正文 · 繁體中文

PHP 專案於 21 Oct 2026 為 PHP 引擎中的兩個嚴重漏洞發布修補程式,兩者合稱 PHP2Shell(php.net):

  • CVE-2026-109618,透過記憶體耗盡狀態損毀執行遠端程式碼。
  • CVE-2026-109619,透過過時的全域狀態執行遠端程式碼。

兩者均可能導致未經驗證的遠端程式碼執行,CVSS v4.0 評分均為 9.2(CVE-2026-109618、CVE-2026-109619)。漏洞位於 PHP 本身,因此更新框架、佈景主題或外掛並不能修復問題。Cloudflare 指出,管理員「需要更新執行其應用程式的 PHP 軟件」(Cloudflare)。

影響範圍

PHP 專案表示,「所有處理網頁請求的 PHP 安裝環境」均有風險,包括 PHP-FPM、Apache with mod_php、php-cgi、FrankenPHP 和 LiteSpeed。Wiz 表示,過去十年發布的所有 PHP 版本,追溯至 5.4,至少受到其中一個漏洞影響(Wiz)。Wiz 亦表示,前沿 AI 模型協助其研究人員找出漏洞,並將漏洞轉化為可實際運作的漏洞利用程式。

已修補版本

PHP 分支 修補版本
8.5 8.5.12
8.4 8.4.27
8.3 8.3.36
8.2 8.2.35

8.2 以下沒有官方 PHP2Shell 發行版本;請透過供應商回補修補程式或升級。PHP 安全團隊為 7.4、8.0 和 8.1 發布了最精簡的原始碼回補修補程式,供自行從原始碼建置,或沒有長期支援供應商的人使用。

檢查實際處理請求的執行環境

  1. 主機控制台或主機服務商。大部分控制台會顯示各網站使用的 PHP 版本。以書面方式詢問主機服務商是否已安裝 PHP2Shell 修補程式。
  2. WordPress:工具 > 網站健康狀況 > 資訊 > 伺服器。
  3. 自己網站的回應標頭。部分伺服器會傳送 X-Powered-By: PHP/8.x.y。很多伺服器會隱藏這項資訊;即使沒有相關標頭,也不能證明任何一方的情況。

Qualys 提出兩點注意事項。第一,php -v 在命令列顯示的版本「可能屬於另一個安裝環境,而非處理網頁請求的環境」。第二,發行版和支援供應商可能會提供自行修補的套件,但保留較舊的版本號,因此應查閲供應商的公告,而不能只看版本號(Qualys)。

不要為了檢查而把 phpinfo() 頁面留在線上。任何人都能透過該頁面查看伺服器詳細資料。

緩解措施不能取代修補

PHP 專案表示,暫時性緩解措施可減少部分攻擊途徑,但「不能確保安裝環境安全」。Cloudflare 表示,其 PHP2Shell 防護功能「已自動部署於所有已啟用 WAF 的方案,包括免費用戶」,但仍建議客戶安裝修補程式。WAF 可在你更新期間爭取時間,但不能取代更新。

漏洞利用情況

Amazon Threat Intelligence 發現一次可追溯至 17 Oct 2026 的 PHP2Shell 漏洞利用嘗試,時間比漏洞披露早四天;發布修補程式後,AWS 表示「PHP2Shell 現正於實際環境中遭到廣泛利用」(AWS Security Blog)。CISA 同日發布的警示則表示:「截至發布時,CISA 尚未觀察到有人利用這些漏洞」(CISA)。AWS 的説法反映較近期的情況。AWS 亦表示,調查應從 17 Oct 開始。

使用 8.1 或更舊版本時

PHP 8.1 已於 31 Dec 2025 終止支援,PHP 8.0 已於 26 Nov 2023 終止支援,PHP 7.4 則已於 28 Nov 2022 終止支援。CISA 表示,無法立即更新,或仍在使用 PHP 8.1 或更舊版本的機構,「應將以 PHP 為基礎的系統下線,直至可以套用修補程式或更新」。PHP 8.2 的安全性支援將於 31 Dec 2026 結束,8.3 則支援至 31 Dec 2027;如果本來就要升級,建議升級至 8.3 或更新版本。

五個步驟

  1. 找出你營運的所有 PHP 應用程式和網站,包括測試環境,以及任何內置 PHP 的產品(NCSC-NL 列有這類產品的清單)。
  2. 檢查處理請求的執行環境版本,而不只是 CLI。
  3. 更新至 8.5.12、8.4.27、8.3.36 或 8.2.35,或要求主機服務商或供應商以書面確認已修補的版本。
  4. 修補期間啟用防火牆。
  5. 留意情況。自 17 Oct 起檢查 Search Console 的「安全性問題」報告;如發現任何異常,請輪替密碼、權杖和 API 金鑰。Wiz 顯示,這些漏洞可從伺服器記憶體洩漏「密碼、權杖和 API 金鑰」。

開發人員常忽略的 SEO 部分

你的 SEO 工具會檢查 PHP 版本嗎?Search Console 只有在網站遭入侵後才會告訴你:只有在 Google 判定網站「遭到入侵,或表現出可能危害訪客或其電腦的行為」後,其「安全性問題」報告才會顯示調查結果。Google 的遭入侵網站指南指出,「較舊且不安全的 Drupal、Joomla! 或 WordPress 版本」可能是入侵途徑;遭入侵的網站可能會被標示為「此網站可能已遭入侵」,並從搜尋結果及 AI Overviews 中消失。

我在 Serpair 工作。我們的免費檢查會查看你的網站是否公開顯示受 PHP2Shell 和已知 CVE 影響的 PHP/CMS 版本。這項檢查是被動的,只會讀取公開顯示的版本,因此不會傳送攻擊流量。可能的檢查結果包括「版本已隱藏/未公開」;但隱藏不代表已修補。被動檢查並非完整的安全審核。你會透過工作電郵收到部分報告,然後可在 Serpair 註冊以取得完整報告。免費使用,毋須信用卡。資料來源和檢查工具見原帖:PHP2Shell 漏洞:檢查你的網站是否受影響

你的技術堆疊修補情況如何?你的發行版或主機服務商有沒有提供回移植修補程式?php -v 的結果是否與網頁伺服器實際執行的版本相符?

來源:DEV Community · dev.to