PHP 漏洞 php2shell 已遭利用,PHP 沒更新的 WordPress 等網站都在範圍內:不必登入就可能遠端執行程式,請更新到 8.5.12、8.4.27、8.3.36 或 8.2.35
趨勢新聞2026 年 10 月 28 日
PHP 是一種寫網站用的程式語言:訪客打開網頁,主機上的 PHP 執行網站程式、把頁面產生出來,WordPress 就是用 PHP 寫的。PHP 專案 10 月 21 日修了兩個漏洞,攻擊者不必登入,送出特製的網頁請求,就可能讓主機執行他指定的程式(資安術語叫「遠端執行程式碼」)。美國網路安全暨基礎設施安全局(CISA)10 月 26 日(美國時間)確認已有人實際拿來攻擊。本站的讀法:WordPress 網站、用 PHP 寫的官網或購物網站,只要主機上的 PHP 還沒換成修補版,就在影響範圍內;這是 PHP 本身的問題,更新 WordPress 或外掛修不到。該做的事是請主機商或維護廠商確認 PHP 已更新到 8.5.12、8.4.27、8.3.36 或 8.2.35(或 Linux 發行版的修補套件),並重啟 PHP。
我會不會受影響?
- 網站用 PHP 處理網頁,PHP 又還沒修補(例如 WordPress、WooCommerce):在範圍內,對外開放的先處理。CISA 寫的是「所有處理網頁請求的 PHP 安裝」都受影響,WordPress 是本站舉的例子。
- 網站放在虛擬主機或代管廠商:本站的讀法是先問主機商 PHP 由誰維護、修了沒有、哪一天修的。
- 還在用 PHP 8.1 或更舊版本:PHP 專案不再更新,先問供應商有沒有回補。沒修補又無法馬上升級的,CISA 建議先讓系統下線。
- 網站和相關服務都沒用 PHP 處理網頁請求:這兩個漏洞不適用(本站的讀法)。但前台是靜態頁不代表沒事,後台或其他軟體可能內含 PHP。
「已有人利用」不等於所有 WordPress 都被駭了。CISA 沒有說是誰在攻擊、打了哪些目標,勒索軟體欄寫「未知」。風險在於 PHP 沒更新的網站,攻擊者不必帳號密碼就有機會進去。
名詞先講清楚
CVE 是漏洞的國際統一編號,這次是 CVE-2026-109618 與 CVE-2026-109619,CISA 把兩者合稱「php2shell」。KEV 是 CISA 的「已遭利用漏洞目錄」,只收已確認有人實際拿來攻擊的漏洞。CVSS 是 0 到 10 的嚴重度分數,PHP 給兩者 9.2 分(CVSS 4.0 版),屬最高的「重大」級。BOD 是約束性作業指令,適用的美國聯邦文職行政部門機關必須照辦的資安命令。
兩個漏洞各是什麼
CVE-2026-109618 出在記憶體用完時的處理。PHP 在讀取請求內容時就可能把記憶體上限用完,跳出時內部資料只準備了一半,事後的清理程序卻把它當成完好的來用,造成記憶體毀損(程式內部資料被弄亂,攻擊者可藉此控制程式)。PHP 的 GitHub 安全公告說,在 Apache 直接載入 PHP 的 mod_php 上,「這完全發生在任何網站程式碼開始執行之前」(本站譯),預設設定下已驗證能遠端執行。另起服務處理 PHP 的 PHP-FPM,公告說原始碼分析支持它也受影響、但還沒有完整示範;PHP 基金會部落格則寫已在 FPM 上確認,本站兩邊照錄。
CVE-2026-109619 是上一個請求留下、沒清掉的內部狀態。PHP 的工作程序會接連處理多個請求,前一個請求出錯中斷時,有些狀態仍指著已經釋放的記憶體,下一個請求讀到就出事。已確認的路徑有兩條:PHP 8.5 開啟 fatal_error_backtraces 時(mod_php),以及預設開啟的「上傳進度追蹤」(mod_php 與 FPM 都驗證過,FPM 需要網站程式有特定操作)。被利用後,程式以處理網頁的那個系統帳號權限執行。受影響的環境還包括 php-cgi、FrankenPHP 與 LiteSpeed。
怎麼修,來不及更新怎麼辦
PHP 公告寫得很直接:沒有完整的緩解辦法,更新是唯一安全的選擇。Linux 發行版與長期支援廠商事前拿到修補,回補套件的版本號未必是上面四個數字,要向套件來源確認。8.1 及更舊版本官方不再發布更新,安全團隊只把精簡修正移植到 7.4、8.0、8.1 的原始碼,給自行編譯的人用;8.2 將在 2026 年 12 月 31 日停止支援。CISA 另建議盤點所有跑 PHP 的系統(PHP 常包在其他軟體裡,不一定看得出來),對外的優先修;網站應用程式防火牆(WAF)或許能擋一部分;並監看 PHP 工作程序有沒有開啟 shell(接收並執行系統指令的程式)或下載工具。
真的來不及的,PHP 列了幾項暫時設定,並說都不能讓系統變安全:設 memory_limit=-1、session.upload_progress.enabled=0,PHP 8.5 另設 fatal_error_backtraces=0,都要寫在 php.ini 或伺服器設定裡並重啟所有工作程序,用 ini_set() 或 .user.ini 改不算;把錯誤訊息藏起來也沒用。PHP 10 月 23 日補充,還有另一條條件少見的攻擊途徑 CVE-2026-115560,建議在下一個例行版本前維持關閉上傳進度追蹤。請求大小限制等完整清單,以下方原文的 PHP 公告為準。
期限給誰,利用從何時開始
KEV 的處理期限是 10 月 29 日,依 BOD 26-04 訂定,約束的是美國聯邦文職行政部門機關,不是一般企業;兩筆另標要做鑑識初判,也就是在期限內修補或緩解之外,還要檢查系統是否已遭入侵;實際期限會看資產是否對外暴露而調整。CISA 10 月 27 日在 CVE 紀錄上把利用狀態列為「active」。PHP 基金會寫,截至 10 月 21 日修補發布當下,安全團隊檢查過網路上出現的概念驗證程式,沒有發現能用的攻擊程式;利用是哪一天開始的,官方文件都沒有寫。
修補原定 10 月 22 日發布。基金會說,2024 年就看到記憶體問題的跡象,修法反覆停擺,「這個延誤是結構性的失敗」(本站譯);2026 年 8 月 11 日資安公司 Calif 回報可遠端執行,OpenAI 獨立回報同一根因,Wiz 與 OpenAI 之後又補上其他攻擊途徑。10 月 20 日兩個編號連同錯誤的 10.0 評分在網路上流傳,PHP 便提前一天,在台灣時間 10 月 21 日 22:00 發布。基金會另記兩件事:回報者之一 Calif 誤發一段展示攻擊的影片,透露了少量細節;Chainguard 比協調好的時間早六小時以上公開含修補的容器映像檔,基金會寫這「無視了許多單位數週來的協調工作」(本站譯)。另外,PHP 10 月 26 日更新的 Windows 套件(版本號後加 -1)修的是本站報過的 Brotli 漏洞,PHP 本身的版本不變。
後續:CISA 10 月 28 日另把 Linux 核心漏洞 CVE-2026-46300 列入 KEV,並說它能和 php2shell 串連,網站被打進來後可能再取得主機的 root 權限。詳見〈Linux 核心漏洞 CVE-2026-46300 已遭利用〉。