PHP 緊急修補 PHP2Shell 兩項重大漏洞:未經驗證即可遠端執行程式碼,影響 PHP 5.4 至 8.5
2026-10-21
事件摘要
PHP 專案於 10 月 21 日(台灣時間當晚 10 點左右)發布緊急安全更新,修補兩項合稱「PHP2Shell」的重大漏洞。漏洞細節在 10 月 20 日、協調揭露期結束前就已在 Hacker News 論壇等處外流,PHP 團隊隨即發布預告,並把原定的發布時間提前。兩項漏洞都能讓未經身分驗證的攻擊者在網頁伺服器上遠端執行程式碼(RCE),PHP 官方以 CVSS v4.0 評為 9.2 分(重大),資安公司 watchTowr 則自行評為 10 分。
| 漏洞 | 成因 |
|---|---|
| CVE-2026-109618 | 記憶體不足(OOM)錯誤處理不當,請求資料只初始化了一部分,之後在清理階段被拿來使用 |
| CVE-2026-109619 | 記憶體釋放後,內部狀態仍殘留,同一個 worker 處理下一個請求時觸發「釋放後使用」(use-after-free) |
受影響的執行環境包括 PHP-FPM、Apache mod_php、php-cgi、FrankenPHP 與 LiteSpeed,PHP 維護者認為 mod_php 風險最高:研究人員已驗證在預設設定下,可透過 HTTP 對 mod_php 進行未經驗證的攻擊。依維基百科的整理,受影響版本為 PHP 5.4 到 8.5。
修補版本為 PHP 8.5.12、8.4.27、8.3.36 與 8.2.35;已停止支援的 7.4、8.0、8.1 只提供原始碼層級的修補,沒有官方二進位檔,更舊的版本則需向作業系統發行版或長期支援廠商確認。
攻擊情況
Cloudflare 技術長表示在公開修補前就看到早期攻擊跡象,並部署了暫時性的 WAF 規則,但強調這只是權宜之計,不能取代更新。watchTowr 表示在 10 月 21 日透過蜜罐網路觀察到實際的攻擊嘗試;美國 CISA 則表示截至當天尚未觀察到漏洞被利用。網路上流傳的攻擊程式碼未經驗證,資安公司也警告其中可能夾帶惡意程式。
應對方式
- 唯一完整的解法是更新:PHP 維護者表示,調整設定無法完全緩解這兩項漏洞;關閉 session upload progress 只能擋住已確認的攻擊路徑,其他變形仍可能有效。
- 更新 WordPress 不等於修補:WordPress 或外掛的更新無法取代伺服器端 PHP 的更新,使用虛擬主機的網站應向主機商確認 PHP 執行環境已經修補。
- 無法立即更新的系統:多國資安機關建議先把面對網際網路的應用隔離或暫時下線,詳見本站的各國應變報導。
技術意義解讀
「釋放後使用」與記憶體狀態錯誤,是 C 語言這類需要手動管理記憶體的程式語言最常見的漏洞類型;PHP 的直譯器正是用 C 寫成的。這類漏洞可能潛藏多年,因為它只在特定的錯誤路徑、特定的請求順序下才會觸發。這次的漏洞是由研究人員借助 AI 模型稽核原始碼發現的,詳見AI 協助發現 PHP2Shell 的報導。
原文報導
訂閱 RoboTech Lab 電子報
每週一封,整理新的教學、論文導讀與機器人業界動態。隨時可以取消訂閱。