一句話重點
2026 年 10 月 21 日,PHP 釋出修補,修掉兩個被稱為 PHP2Shell 的重大漏洞:CVE-2026-109618 與 CVE-2026-109619(CVE 是漏洞的國際編號),嚴重程度都是 CVSS 9.2(CVSS 是嚴重程度分數,滿分 10)。Cloudflare(網路服務公司,很多網站用它擋攻擊)與 Wiz 指出,PHP 5.4 起的未修補版本受影響。
最快的一步:把 PHP 資訊貼給 ChatGPT
用 WordPress 的,到「工具 > 網站健康狀態 > 資訊 > 伺服器」複製 PHP 資訊;其他人從主機控制台找,找不到就問主機商。刪除密碼或金鑰後,連同下面指令貼給 ChatGPT 或 Claude。
下面是我的網站從 WordPress「網站健康狀態 > 資訊 > 伺服器」或主機控制台取得的 PHP 資訊。
請找出 PHP 版本,先和這次修補的上游穩定版本比較(同分支比):8.5.12、8.4.27、8.3.36、8.2.35;8.1 及更舊分支已停止上游支援。
請分開說明「是否達到上游版本門檻」與「是否已修補」。主機商或發行版可能把修補放進舊版號;沒有完整套件版號及適用的安全公告或主機商證明,就把修補狀態寫成「無法確認」,不要只因版號較舊就判定有漏洞。沒有版本、無法辨識或是預發行版本,也不要判定安全。再幫我問主機商:「網站的 PHP 是否已套用 2026 年 10 月 21 日的 PHP2Shell 安全更新?我需要在控制台切換版本嗎?」
(貼上內容)
一分鐘看懂
攻擊者不用登入,就可能讓伺服器執行他的程式。資安公司 Wiz 說,攻擊成功的話,攻擊者可能控制伺服器、偷走敏感資料,還能竄改上面的網站。
漏洞在 PHP 本身,Cloudflare 提醒,只更新網站程式或外掛修不好,要更新的是 PHP;WordPress.org 也表示,這次不需要、也不會出 WordPress 更新。
讓 AI 幫你掃
OpenAI 在 GitHub 公開了 php2shell-checker:檢查網站或本機的 PHP 版本,不送出攻擊請求,用 Node.js,不用另外裝套件。它是兩個給 Codex(OpenAI 的 AI 程式助理)用的 skill,也就是寫給 AI 看的操作說明檔。
只有網址(檢查自己名下的網站)
在 Codex 輸入第一行安裝兩個 skill,再用第二行檢查,網址換成你的:
$skill-installer install both skills from https://github.com/openai/php2shell-checker
$phpcheck-url check 你的網址
結果有三種:
OK:版本高於工具內建、2026 年 10 月 20 日的同分支基準。它只比版本號,不會另外驗證修補。VULNERABLE:版號未超過基準;先查套件公告或問主機商,確認是否須更新。UNKNOWN:看不到版本,或認不出來。UNKNOWN 不代表已修補。
這個檢查只讀網站回應裡的 X-Powered-By 和 Server 標頭,標頭可能被隱藏或改寫;發行版的修補也可能沒改版本號。適合一次掃過自己名下的很多網站,要確定還是得看伺服器端。
有伺服器權限(VPS、自己登入的主機)
先讓 AI 連到網站伺服器,再執行;本機 PHP 不能代表網站。Codex 裝好 skill 後輸入:
$phpcheck-server check the PHP version serving my site
用 Claude Code(Anthropic 的 AI 程式助理)或 Codex,也可以直接貼這段:
請檢查我擁有或管理的網站【填入網址】有沒有受 PHP2Shell(CVE-2026-109618、CVE-2026-109619)影響。
1. 先確認已連到該網站的伺服器;連不到或無法確認網站對應哪套 PHP,就回報「無法確認」。只做唯讀檢查,不建立檢測頁面、不安裝套件、不修改或重啟服務,也不要讀取或回傳密碼、金鑰或憑證。
2. 找出實際在跑網站的 PHP(PHP-FPM 或 Apache),php -v 的結果要跟它核對。
3. 回報 PHP 版本和完整套件版號。確認不了就回報「無法確認」。
4. 跟修補版本比對,同一分支比:8.5.12、8.4.27、8.3.36、8.2.35。用系統套件的話,核對發行版安全公告:Ubuntu USN-8948-1、USN-8948-2,Debian DSA-6574-1。只看設定不能證明已修補。
5. 列出更新和重啟服務的步驟,等我確認後再動手。
6. 不要執行任何攻擊程式或 PoC。
OpenAI 的 skill 也這樣提醒:php -v 看到的要跟網站實際用的 PHP-FPM 或 Apache 核對,發行版可能把修補放進較舊的版號。
虛擬主機/WordPress 後台
用上方指令。
用 AI 掃描要注意
- 只檢查自己擁有或管理的網站,別人的網站不要掃。
- 不用攻擊程式或 PoC(概念驗證攻擊)測試。OpenAI 的兩個 skill 也寫明不執行攻擊探測。
- AI 的判斷是起點,動手前跟主機商或發行版安全公告確認。
修好的版本
自己管伺服器:安裝下表版本或所用套件來源的安全更新,再重啟網站使用的 PHP-FPM 或 Apache 等服務,確認網站已使用修補後的 PHP。
| PHP 分支 | 修好的版本 |
|---|---|
| 8.5 | 8.5.12 |
| 8.4 | 8.4.27 |
| 8.3 | 8.3.36 |
| 8.2 | 8.2.35 |
| 8.1 以下 | 上游停止支援,安裝發行版安全更新或升級 |
看版本時,跟同一個分支比:8.2.20 比 8.2.35 舊,還沒修好;8.2.35 或更新的版本才修好。Ubuntu、Debian 等系統套件不看這張表,要核對完整套件版號是否符合它們的安全公告。
PHP 8.1 以下:PHP 專案已停止支援;7.4、8.0、8.1 另有原始碼修補。發行版的安全更新也能修好,請核對完整套件版號;Ubuntu 20.04 LTS 的修補需 Ubuntu Pro。自己管主機、PHP 又低於 8.2 的人,無法立即修補時,WordPress.org 建議考慮暫時下線。
有用 Cloudflare:Cloudflare 表示,免費與付費 WAF(網站防火牆)自台灣時間 10 月 21 日 11:02 起提供預設防護;付費方案應確認受管理規則已部署並設為阻擋。仍須更新 PHP。
事件經過:AI 先找到,消息先走漏
OpenAI 表示,據他們所知,這些漏洞是最先進的 AI 比攻擊者先找到的,替防守方爭取到一段先修補的時間。PHP 基金會公布的經過:
- 8 月 11 日:Calif 研究員 Ryan A 回報無條件的 RCE(遠端執行程式碼:讓伺服器跑攻擊者的程式),OpenAI 同一天也獨立回報相同的根本原因。OpenAI 表示,Calif 在 Patch the Planet 計畫中使用 GPT-5.6 Sol,Wiz 也獨立找到並回報。
- 10 月 20 日約 23:00(台灣時間):兩個 CVE 編號在網路上流出,附上錯誤的 CVSS 10.0,沒有技術細節。PHP 把釋出時間提前一天。
- 10 月 21 日:Calif 在消息走漏後誤發 PoC 影片,刪除後仍被轉傳,加快攻擊程式開發。Chainguard 在 15:41(台灣時間)提早發布修補映像檔,打破 embargo(約定好公布前不能外流)。PHP 原訂當天 22:00(台灣時間)釋出修補。
- 今年稍早:PHP 基金會也用 Claude Mythos 掃過 PHP。
Cloudflare 表示,消息走漏期間已觀察到攻擊流量。資安公司 Huntress 表示,截至台灣時間 10 月 21 日 22:00,未在合作客戶中看到實際利用。PHP 安全團隊則說,釋出時在其檢查的公開 PoC 中,未找到能運作的攻擊程式。
OpenAI 也承諾透過 Daybreak for Frontline Defenders,提供價值 10 億美元的 Daybreak 使用補助,對象是資安資源有限、守護重要服務的組織。
小企鵝的總結
這次找到漏洞的有 AI,幫你檢查網站的也可以是 AI。
今晚就能做:有伺服器的,讓 Codex 或 Claude Code 跑一次唯讀檢查;用虛擬主機的,把控制台的 PHP 資訊貼給 AI,再問主機商。AI 負責查,更新和重啟由你確認後再動手。