一次看懂 PHP2Shell:這個 PHP 漏洞影響誰、該怎麼檢查與修補

Picture of Charlie Chou

Charlie Chou

Marketing Specialist
PHP2Shell 重大漏洞影響 PHP 5.4 以後所有版本,攻擊者不需登入即可控制伺服器。一次看懂哪些網站受影響、如何檢查 PHP 版本,以及升級與 WAF 防護等修補建議。

2026 年 10 月 21 日,PHP 官方發布緊急安全更新,修補兩個代號「PHP2Shell」的重大漏洞(CVE-2026-109618、CVE-2026-109619,CVSS v4.0 評分 9.2)。攻擊者不需要任何帳號密碼,只要對網站送出特製的請求,就可能在伺服器上執行任意程式。若你的網站或系統使用 PHP 5.4 以後的版本,請立即檢查。

什麼是 PHP?

PHP 是一種在伺服器端執行的程式語言,專門用來產生網頁。當你登入會員、送出表單或上傳檔案時,後台往往就是 PHP 在處理這些請求,再把結果組成網頁回傳。

全球約七成的網站使用 PHP,WordPress、Drupal、Joomla、Magento 等常見的官網與電商平台都建構在 PHP 之上。換句話說,即使你的團隊沒有人寫 PHP,你的官網、活動頁或內部系統也很可能正在執行它。

這次發生了什麼?

Wiz Research、Calif.io、OpenAI 與 Quarkslab 等研究團隊聯合發現,問題出在 PHP 本身,而不是某個外掛或網站程式。PHP 在處理請求時若遇到記憶體不足等致命錯誤而中斷,可能留下沒清理乾淨的內部資料;下一個請求若剛好由同一個 PHP 程序處理,就可能誤用這些殘留資料。

舉例來說:餐廳出餐到一半突然停電,桌上還留著上一位客人的帳單,服務生沒收拾就讓下一位客人入座。攻擊者做的,就是刻意製造「停電」,再利用那張沒收拾的桌子。

  • CVE-2026-109618:記憶體不足導致中斷時,PHP 可能把尚未初始化完成的資料當成有效資料使用。
  • CVE-2026-109619:致命錯誤中斷請求後,PHP 仍保留指向已釋放記憶體的參照,後續請求可能誤用。

研究人員已在 WordPress、Drupal、Joomla 的官方容器映像上,成功示範不需登入的遠端程式碼執行。即使只是一個最簡單的 PHP 頁面,只要版本受影響就可能成為目標。

Wiz Research 在 8 月發現漏洞後,先通報 PHP 官方安全團隊,雙方協調修補時程,等修補版本就緒才公開細節。Cloudflare 等基礎設施廠商也在揭露前就部署了防護,但同時也指出漏洞細節在正式公告前已經外流,並已觀察到實際攻擊流量,攻擊者還不斷變化手法試圖繞過防護。

日期事件
2026-08-19Wiz Research 發現第一個漏洞
2026-08-24通報 PHP 官方安全團隊
2026-09-21PHP 官方確認並啟動協調修補
2026-10-20PHP 官方發布緊急更新預告
2026-10-21 03:02 UTCCloudflare 為客戶上線 WAF 防護規則
2026-10-21修補版本釋出並公開揭露

有什麼影響?

  • 範圍極廣:PHP 5.4 以後的版本全部受影響,涵蓋過去十年以上的版本
  • 不需登入:攻擊者不需要帳號,網站也不必有其他漏洞
  • 伺服器被接管:可能被植入後門、勒索軟體或挖礦程式
  • 資料外洩:記憶體中的 session、資料庫密碼、API 金鑰可能被讀出
  • 服務中斷:PHP 程序反覆崩潰,導致網站無法使用
  • 只更新網站不夠:更新 WordPress 或外掛無法修補,問題在 PHP 執行環境本身

如何檢查自己有沒有受影響?

  1. 盤點所有執行 PHP 的地方:官網、活動網站、WordPress 部落格、電商、內部系統、容器映像,以及委外廠商或代管主機。最容易漏掉的是「很久沒人管」的舊站。
  2. 查詢 PHP 版本:在伺服器或容器內執行下列指令;使用代管主機者請直接詢問供應商。

    # 主機上
    php -v
    php-fpm -v
    # 容器內
    docker exec <容器名稱> php -v

  3. 對照修補版本:低於下表版本即為受影響。透過 Linux 發行版套件(apt、yum)安裝的 PHP,版本號可能不變但已內含修補,請以發行版安全公告為準。
版本分支安全版本
8.58.5.12 以上
8.48.4.27 以上
8.38.3.36 以上
8.28.2.35 以上(2026-12-31 停止支援)
8.1 及更舊官方不再發布更新,需升級或向作業系統供應商取得修補
  1. 檢查是否已有可疑跡象:
    • 大量檔案上傳格式(multipart)的請求後,緊接著出現記憶體不足錯誤或連續 HTTP 500
    • 回應中出現異常冗長或格式怪異的 PHPSESSID cookie
    • PHP 程序無故頻繁重啟

      # 搜尋記憶體不足錯誤(請依環境調整日誌路徑)
      grep -i “allowed memory size” /var/log/php*-fpm.log /var/log/nginx/error.log

該怎麼解決?

  1. 立即升級 PHP:升級後重啟所有 PHP 程序。容器環境要用新版基底映像重新建置並部署,只拉新映像不夠
  2. 在網站入口加上防護(WAF):在修補完成前先擋下惡意請求。使用 Cloudflare 的網站,相關規則已預設啟用:免費方案自動生效;Pro 以上方案請確認 Managed Ruleset 已部署並設為「阻擋(Block)」,並可到 Security > Security Analytics > Events 查看是否已有攻擊被擋下。也請設定來源伺服器只接受來自 Cloudflare 的連線,避免攻擊者直接連到來源 IP 繞過防護。尚未使用 WAF 的網站,建議盡快在入口部署,並關閉不必要的上傳功能、限制上傳大小
  3. 全面盤點所有受影響的資產:手動盤點容易遺漏。建議用雲端資產與弱點掃描工具,依 CVE 編號找出所有執行受影響 PHP 版本的虛擬機、容器與映像檔,優先處理對外開放的系統
  4. 若懷疑已被入侵:檢查網站目錄是否有不明的 PHP 檔案(網頁後門),並更換資料庫密碼、API 金鑰與 session 密鑰

面對這種影響範圍廣、又已出現攻擊的漏洞,關鍵是「先擋住、再找全、最後修好」。如需協助評估,歡迎聯絡思想科技 Master Concept 專業顧問。

參考資料:

思想科技 Master Concept
微信公众号:Master_Concept

歡迎您與我們聯絡
我們會協助您取得最佳解決方案!