三分鐘結論
問題在 PHP 本身
升級 WordPress、Laravel 或外掛無法修補漏洞,必須更新 PHP 執行環境。
修補後必須重新啟動
FPM、Apache、IIS 與容器中的舊 worker 不會因套件更新自動消失。
先快照再修復
工具備份只涵蓋它管理的 PHP;整機快照仍是首選回溯方式。
發生了什麼
PHP 官方修復兩個位於解釋器核心、可造成未認證遠端程式碼執行的重大漏洞。它們與應用框架無關,影響所有處理 Web 請求的 PHP SAPI:PHP-FPM、Apache mod_php、php-cgi、FrankenPHP 與 LiteSpeed。
CVE-2026-109618 利用記憶體耗盡時的異常退出;請求記憶體尚未完整初始化時,清理階段可能把損壞資料當成有效狀態。CVE-2026-109619 是跨請求 use-after-free:前一請求留下的全域狀態在記憶體釋放後,仍被同一 worker 的後續請求使用。
哪些版本受影響
PHP 8.2、8.3、8.4、8.5 應升級到各自修復版。PHP 8.1 及更早已停止上游安全維護;PHP 僅提供 7.4、8.0、8.1 最小原始碼回溯補丁,沒有新的官方二進位版本。
| 分支 | 受影響 | 官方修復 |
|---|---|---|
| PHP 8.5 | < 8.5.12 | 8.5.12 |
| PHP 8.4 | < 8.4.27 | 8.4.27 |
| PHP 8.3 | < 8.3.36 | 8.3.36 |
| PHP 8.2 | < 8.2.35 | 8.2.35 |
| PHP 8.1 及更早 | 上游 EOL | 升級或使用廠商回溯補丁 |
為何不能只升級網站程式
攻擊發生在應用程式碼執行之前的 PHP 請求初始化、解析或清理階段。更新 WordPress、Drupal、Joomla、Laravel 或安全外掛都不能取代 PHP 更新。
- PHP 認為 mod_php 風險最高:已證明未認證請求可在應用程式碼執行前觸發。
- PHP-FPM 不應視為安全。原始碼分析支持其易受影響,且另一個 CVE 已在 mod_php 與 FPM 上驗證。
- 安裝套件不等於完成修復。舊 FPM、Apache、IIS worker 仍可能執行舊二進位。
- Docker 必須拉取修復映像並重建容器;docker restart 只會重新啟動舊映像。
我們的排查路徑
我們先以唯讀掃描器盤點 CLI、FPM、CGI、Apache 模組、Docker、Windows 服務、擴充與相關 INI,再從實際 Web 入口確認版本,而不是只相信單一 php -v 輸出。
- 檢查 PATH、/www/server/php、/usr/local、/opt、FPM pool、Apache 模組、IIS FastCGI、登錄檔與容器。
- 比對套件安裝時間與 worker 啟動時間,找出「已升級但仍執行舊程序」。
- 隱藏 PHP 版本、CDN 與 WAF 只能降低暴露,不能證明後端執行環境已修復。
- 第三方設備、NAS、控制面板與產品內嵌 PHP 必須另外查廠商公告。
安全修復順序
官方唯一完整修復是升級。以下順序適用 Linux、Windows Server、寶塔、IIS 與容器部署。
- 在雲端或虛擬化平台建立整機快照,記錄 PHP、SAPI、擴充、服務與 pool 設定。
- 備份 PHP 目錄、php.ini、FPM/Apache/IIS 設定與二進位檔,確認回溯腳本可讀。
- 安裝同分支官方修復版,或發行版明確標示修復 CVE 的套件。
- Docker 拉取新映像並重建容器;套件更新後完整重新啟動 FPM/Apache/IIS/長駐 worker。
- 驗證登入、上傳、付款、佇列、快取與關鍵 API,並從真實 Web 入口確認 SAPI 版本。
- 若修復前曾暴露公網,繼續排查 webshell、異常子程序、新排程、異常外連與憑證存取。
無法立即升級時的臨時措施
臨時設定只能阻斷部分已知路徑,不代表系統安全。補丁與完整重新啟動仍是唯一完整修復。
- CVE-2026-109618:在應用無法覆寫的 FPM/Apache 設定中強制 memory_limit=-1、降低 post_max_size,並在代理層限制 body、part、header 與巢狀數量。不要用 RLIMIT_AS/RLIMIT_DATA 取代。
- CVE-2026-109619:在請求初始化前設定 session.upload_progress.enabled=0 並完整重啟 worker;PHP 8.5 同時設定 fatal_error_backtraces=0。
- 不要依賴 .user.ini 或 ini_set() 作為關鍵緩解,它們對部分攻擊路徑生效太晚。
- Cloudflare WAF 等邊界防護只能作縱深防禦,且只覆蓋經由該代理的流量。
回溯與工具邊界
首選回溯始終是整機快照。伺服器腳本會在 Linux 的 /root/php2shell-fullfix/<時間戳>/ 或 Windows 的 C:\ProgramData\PHP2ShellFullFix\<時間戳>\ 產生報告、備份清單與 rollback 腳本。
自動修復只涵蓋可驗證的寶塔 PHP、限定 Debian PHP 官方映像容器與 Windows 官方 PHP ZIP 安裝;未知原始碼、發行版套件與第三方內嵌 PHP 不做盲目修改。
本次應變工具
掃描器只做無害的版本與設定盤點;伺服器修復腳本預設只檢查,變更前要求三次確認並產生回溯檔。
權威來源
產品判斷優先採用 PHP 官方與 GitHub Security Advisory;CISA、CERT-EU、NCSC-NL 與雲端廠商公告用於交叉核驗。
- PHP official security advisory · 2026-10-21
- CVE-2026-109618 · GHSA-w8hw-w9fx-j79w
- CVE-2026-109619 · GHSA-6wmf-4rv5-p3rp
- PHP 8.2.35 official release record
- NCSC-NL · php2shell operational information
- CISA CSAF/VEX · VA-26-295-01
- Canadian Centre for Cyber Security · AL26-026
- CERT-EU Security Advisory 2026-018
- Cloudflare · php2shell WAF protection
HTTP 掃描看不到隱藏版本;不能把「未識別」當成「安全」。
免費取得報價