2026年10月20日,網絡安全界迎來另一個「Log4Shell時刻」。PHP核心被揭發兩個嚴重遙距代碼執行漏洞,CVSS v4.0評分同為9.2,攻擊者毋須登入、毋須應用程式有任何漏洞、理論上只需向一個接受POST請求的PHP伺服器發送一個特製請求,即可在伺服器上執行任意代碼,或竊取工作進程記憶體中的密碼、權杖及API金鑰。漏洞被研究人員統稱為「PHP2Shell」,名字直接向2021年的Log4Shell致敬。最令管理員心寒的是,漏洞細節在協調披露前一日已遭洩漏,PHP團隊被迫將緊急修復提前,而修補推出前已有攻擊活動被記錄。以下“PHP2Shell漏洞懶人包”,整合事件時序、兩個漏洞的技術原理、影響範圍、修復與緩解措施、香港角度及快問快答。
事件時序:由洩漏到修補的48小時
| 時間(2026年) | 事件 |
|---|---|
| 10月20日 | 兩個PHP RCE漏洞的細節在協調披露前遭洩漏,Hacker News及社交平台流傳相關資訊,一個非官方命名的「PHP2Shell」利用工具亦在網上出現 |
| 10月20日 | PHP安全團隊發布預告,宣布將於10月21日14:00 UTC(香港時間晚上10時)發布緊急安全更新 |
| 10月20日 | CERT-EU發布安全公告2026-018 |
| 10月21日 08:36 UTC | 首個PHP2Shell探測請求已被ELLIO的感應器記錄,距離修補公開尚有5個半小時 |
| 10月21日 14:00 UTC | PHP正式發布8.5.12、8.4.27、8.3.36及8.2.35,修復兩個漏洞;PHP 8.1、8.0及7.4亦獲回溯修補 |
| 10月21日 | Cloudflare及watchTowr報告在修補推出前已觀察到野外攻擊;CISA同日發布警報,要求立即修補 |
| 10月22日 | 原定協調披露日期,但修補已提前一日完成 |
兩個漏洞技術拆解:一個耗盡記憶體 一個殘留狀態
兩個漏洞都位於PHP解釋器核心,在應用程式代碼執行之前就已觸發,意味住無論上層跑的是WordPress、Drupal、Joomla、Laravel還是自訂應用,只要PHP版本未修補,風險一樣存在。
CVE-2026-109618:透過記憶體耗盡(OOM)觸發的記憶體損壞。 當PHP在處理請求期間耗盡記憶體,會直接跳出記憶體分配器,令請求的記憶體處於「半初始化」狀態,而請求關閉時又會對這塊記憶體進行清理。攻擊者可以透過multipart表單解析器控制記憶體何時耗盡,例如發送沒有可用Content-Length的請求體、在單一part中塞入大量標頭、利用不計入上傳限制的空檔案控制項,或使用極深嵌套的欄位名稱。這個漏洞不涉及session,亦不針對特定欄位,PHP確認在Apache mod_php的預設設定下即可被利用。
CVE-2026-109619:透過殘留全域狀態觸發的釋放後使用(use-after-free)。 一個請求若在錯誤時機死亡——致命錯誤、超時或記憶體耗盡——可以在PHP工作進程中留下狀態。同一個工作進程處理的後續請求,可以在該狀態被釋放後仍然讀取它。已確認的攻擊路徑包括session上傳進度處理(PHP_SESSION_UPLOAD_PROGRESS),以及PHP 8.5的致命錯誤回溯。session上傳進度功能預設開啟,即使應用程式從未呼叫session_start()亦可能被觸及。
漏洞 技術類別 觸發途徑 利用條件 CVE-2026-109618 記憶體耗盡損壞(OOM corruption) multipart請求解析,控制記憶體耗盡時機 免認證,mod_php預設設定可觸發 CVE-2026-109619 釋放後使用/全域狀態殘留(stale global state) session上傳進度、致命錯誤回溯 免認證,功能預設開啟
影響範圍:由PHP 5.4到8.5 幾乎無一倖免
漏洞的影響範圍極廣。洩漏的資訊指漏洞影響PHP 5.4.0起的所有版本,而PHP安全公告則確認所有處理網頁請求的PHP安裝均受影響,包括PHP-FPM、Apache mod_php、php-cgi、FrankenPHP及LiteSpeed。修復僅覆蓋仍受支援的8.2至8.5分支,但由於嚴重性極高,PHP亦為已停止支援的8.1、8.0及7.4提供了回溯修補。PHP 7.3及更早的版本,沒有官方修復。
分支 受影響版本 修復版本 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/8.0/7.4 全部 已提供回溯修補 PHP 7.3及更早 全部 沒有官方修復
有網絡安全研究團隊估計,廣泛利用可能在修補發布後的15分鐘內開始。而在修補正式推出前,已有掃描器被記錄為兼作殭屍網絡投放器,反映攻擊者早已準備就緒。
修復與緩解:更新是唯一完整解方 停用上傳進度可作臨時止血
PHP官方明確表示,更新是兩個漏洞的唯一完整修復方案。在無法即時更新的情況下,可考慮以下臨時緩解措施,但全部只能降低風險,不能根治:
停用session上傳進度:在PHP-FPM pools中設定php_admin_flag session.upload_progress.enabled Off,或在php.ini中停用相關功能。這可以切斷CVE-2026-109619的主要攻擊路徑之一。
在反向代理層攔截multipart請求:在nginx或Apache層面封鎖或限制multipart/form-data請求,可以增加CVE-2026-109618的利用難度,但可能影響正常的檔案上傳功能。
限制或隔離對外PHP應用:在修補可用前,考慮暫時隔離直接面向互聯網的PHP應用,或至少確保其不在關鍵網絡位置。
清查所有PHP資產:包括網頁伺服器、控制面板、第三方軟件中的嵌入式PHP,確保無遺漏。
重啟PHP工作進程:主機即使已更新,仍須重啟PHP工作進程(PHP-FPM或Apache),因為殘留在舊工作進程中的狀態不會自動清除。
香港角度:大量中小企網站及CMS恐成目標
香港有大量中小企網站、網上商店及內容管理系統使用PHP搭建,不少仍運行已停止支援的舊版本。PHP2Shell的「免認證、免應用漏洞」特性,意味住即使網站本身沒有寫錯任何一行代碼,只要PHP核心未修補,就可能被直接接管。對於依賴WordPress、WooCommerce、Discuz等PHP應用的香港商戶而言,風險尤其實在。修補的迫切性不在於「會不會被攻擊」,而在於「幾時被掃描到」。
快問快答
問:PHP2Shell係咩嚟?
答:PHP2Shell係研究人員對兩個PHP核心遙距代碼執行漏洞(CVE-2026-109618及CVE-2026-109619)的統稱,名字向Log4Shell致敬。
問:兩個漏洞有幾嚴重?
答:CVSS v4.0評分同為9.2,屬嚴重級別,可讓未經認證的攻擊者遙距執行任意代碼或讀取伺服器記憶體。
問:攻擊需唔需要登入或應用程式漏洞?
答:不需要。漏洞在PHP解釋器解析請求時觸發,早於任何應用程式代碼執行,攻擊者只需網絡上能向PHP伺服器發送請求即可。
問:邊啲PHP版本受影響?
答:PHP 5.4.0起的幾乎所有版本,包括8.5、8.4、8.3、8.2、8.1、8.0、7.x及5.x。
問:修復版本係邊幾個?
答:PHP 8.5.12、8.4.27、8.3.36及8.2.35;8.1、8.0及7.4已獲回溯修補;7.3及更早沒有官方修復。
問:修補推出前有冇攻擊發生?
答:有。Cloudflare及watchTowr報告在修補推出前已觀察到野外攻擊,首個探測請求在修補公開前5個半小時已被記錄,有掃描器兼作殭屍網絡投放器。
問:如果唔能夠即時更新,可以點做?
答:停用session.upload_progress、在反向代理攔截multipart請求、隔離對外PHP應用、清查所有PHP資產,但全部屬臨時緩解,更新才是唯一完整修復。
問:更新之後仲有咩要做?
答:必須重啟PHP工作進程(PHP-FPM或Apache),因為殘留在舊工作進程的狀態不會自動清除。
問:香港有冇風險?
答:有。香港大量中小企網站、網店及CMS使用PHP搭建,部分仍運行舊版本,免認證攻擊特性令未修補的網站面臨直接接管的風險。




