PHP2Shell:AI 發現 PHP 核心關鍵 RCE
PHP2Shell: AI uncovers critical RCE in PHP
**AI輔助研究團隊在 PHP 核心中發現多個高危 RCE 漏洞,並於 2026 年 10 月釋出修補程式,影響 70% 網站。
- 漏洞型別**:記憶體安全缺陷,包含 use‑after‑free、資料洩漏與遠端程式碼執行,CVSS 9.2。
AI輔助發現 PHP 核心關鍵 RCE,揭示長期隱蔽漏洞成即時威脅,讀者可評估 AI 在漏洞挖掘與修補中的實務價值。
執行摘要
Wiz Research 發現核心 PHP 中存在多項關鍵漏洞,PHP 是一種受歡迎的通用指令碼語言,為全球 70% 網站提供支援。成功利用這些漏洞可能讓攻擊者掌控受影響的伺服器、竊取敏感資料,甚至破壞其上執行的網站。
PHP 是網路的支柱:它是 WordPress、Joomla、Drupal、維基百科的 MediaWiki 等多個平臺的程式語言。
這些漏洞包括記憶體洩露和未經身份驗證的遠端程式碼執行 在 PHP 本身,與其上執行的應用程式無關,使每個受影響的網站立即處於風險之中。
在過去十年內發布的每一個 PHP 版本都至少受到其中一項漏洞的影響,追溯至 5.4 版。攻擊者可遠端利用這些漏洞,在某些情況下相當容易。強烈建議立即修補。
2026 年 10 月 21 日,PHP 釋出了修補程式,修復了核心引擎中的多個記憶體安全漏洞。
這些發現被評為 PHP 中最嚴重的漏洞之一,甚至可說是軟體史上最嚴重的。這些根本缺陷已存在數十年,但證明其可利用性 需要極為複雜的步驟鏈,接近人類研究者實際可達成的極限。前沿 AI 模型大幅降低了這一障礙,將長期存在的缺陷轉化為可利用的漏洞。
概覽
在本文中,我們說明瞭前沿 AI 如何協助我們發現並修復在 PHP 程式碼庫中隱藏超過十年的漏洞。以下所述的問題皆源於關鍵架構決策,其中一些在十年前就已作出,並被歸類為兩個 CVE,嚴重程度達 CVSS 9.2。這項工作發展成跨產業的合作,保護客戶、尋找變種、部署偵測與緩解措施,並在協同披露時驗證修補程式。
幾乎每個 PHP 版本都至少受到其中一項問題的影響,包括追溯至 PHP 5.4 的版本。這些漏洞可能允許未經身份驗證的攻擊者在受影響的伺服器上執行程式碼,或讀取敏感的程序記憶體。該記憶體可能包含其他請求或伺服器自身的密碼、身份驗證令牌、API 金鑰和憑證。
PHP 是許多網路平臺背後的程式語言,為 WordPress、Drupal 和 MediaWiki(維基百科所使用的軟體)提供動力。其核心引擎中的缺陷可能影響整個生態系統中的網站,即使其自身應用程式程式碼安全。
某些漏洞成為轉捩點,因為它們挑戰了對安全性的基本假設。2014 年 Heartbleed 暴露了保護網際網路的共享基礎設施的脆弱性。2021 年 Log4Shell 揭示了深度嵌入的軟體相依性如何造成廣泛的曝露,組織難以識別。 我們相信 PHP2Shell 可能成為 AI 時代的類似轉捩點,說明 AI 如何改變長期漏洞的實際可利用性。構建此漏洞利用需要連結多個缺陷,並透過不斷測試與除錯來適配每個目標的記憶體佈局。前沿模型對於使此過程實用至關重要,使我們能在數小時內在多個應用程式中開發並調整可用的利用程式。隨著完成此工作所需的時間與專業知識下降,複雜性可能不再提供實質性的障礙,改變我們對實際可被利用漏洞的定義。
Wiz Research 感謝 PHP 團隊、Calif 與 OpenAI 在漏洞發現、協調與補丁驗證方面的工作。OpenAI 與 Calif 亦釋出了包含漏洞細節—歷史、技術細節以及披露流程洞見的部落格。PHP 也有釋出。
我們亦想向 Automattic、Akamai、AWS、Cloudflare、Fastly、Google、Imperva、Microsoft、Vercel 以及其他許多公司表達誠摯感謝,感謝他們協助準備指引與即插即用的緩解措施,供無法立即套用補丁的客戶使用。
Wiz 如何協助?
Wiz 客戶應參考 Wiz 威脅情報中心 PHP2Shell 警示,其中包含無代理與執行時漏洞偵測、透過 Wiz Defend 與 Sensor 的利用偵測、以及自動回應政策,並提供修復與威脅偵查指引。
Sensor 客戶亦可啟用內建回應政策,自動終止表現出典型 PHP2Shell 利用行為的程序:
漏洞
所有已公佈的漏洞都是記憶體安全問題,源於 PHP 在處理請求時對致命錯誤(尤其是記憶體不足錯誤)的處理缺陷。這些缺陷可能在請求意外結束後留下損毀的內部 PHP 狀態。後續的請求或工作者可能會重複使用該陳舊狀態,導致記憶體洩漏或破壞。
以下表格示範了我們向 PHP 報告的每個缺陷所示範的影響型別。下列列出的應用程式是我們選擇用於 RCE 示範的目標。它們是代表性目標——利用並不需要其中任何一個 CMS,因為易受攻擊的程式碼位於 PHP 本身。
| 追蹤編號 | 漏洞 | 攻擊者可達成的目標 | 我們示範的內容 |
|---|---|---|---|
| CVE-2026-109618 | 上傳進度反序列化器使用後釋放漏洞 遠端程序記憶體外洩 | 破壞程序記憶體並執行程式碼 未驗證的 PHP 工作者記憶體外洩 | WordPress、Drupal 與 Joomla 的預驗證遠端程式碼執行 與應用無關的遠端記憶體外洩 |
| CVE-2026-109619 | 致命錯誤回溯使用後釋放漏洞 OPcache 型別混淆 | 破壞程序記憶體並執行程式碼 破壞共享 PHP 狀態並執行程式碼 | Drupal 的預驗證遠端程式碼執行 WordPress 的預驗證遠端程式碼執行 |
雖然這篇部落格只涵蓋了四個可利用的漏洞(分為兩個 CVE),但在 PHP 程式碼庫中還有其他已追蹤且可能未追蹤的此問題變體。這些變體在利用上有不同的需求,且可能導致不同型別的影響。無論如何,PHP 團隊提供的修補程式在核心上解決了此問題,並在修補版本中消除了所有變體。
影響
我們將這些漏洞整合成單一利用指令碼 php2shell,並證明它可以在 WordPress (wordpress:latest)、Drupal (drupal:latest) 與 Joomla (joomla:latest) 的部署上遠端執行程式碼,且不需要身份驗證,使用的是測試時最新的容器映像。
這些平臺說明瞭影響,但漏洞實際在 PHP 本身。利用不取決於應用程式程式碼中的缺陷:即使是一個簡單的「Hello World」程式在受影響的 PHP 版本上執行,也可能易受攻擊。
另外,我們證明攻擊者能夠從 PHP 程式的記憶體中讀取敏感資料,包括密碼、令牌與 API 金鑰,而無需實現遠端程式碼執行。
PHP2Shell 在 Wordpress、Joomla 與 Drupal 的示範:
AI 的分水嶺
此漏洞程式碼已存在超過十年。將這些缺陷轉化為可運作的利用指令碼,需要連結多個漏洞並考慮 PHP 在不同請求之間如何分配與重複使用記憶體。記憶體漏洞以其複雜性聞名;PHP 版本、設定與應用行為的差異可能打破利用指令碼所依賴的假設。對一個部署有效的攻擊,對另一個部署可能需要大量調整,每一次都須進一步分析、測試與除錯。AI 出現前,這些手動工作難以實施,更難擴充套件。
有了 AI,這不再是障礙。大型語言模型可協助將利用指令碼適配至不同的 PHP 版本、設定與記憶體佈局。結合測試與除錯工具,模型能分析失敗並迭代調整,降低每個目標所需的專業人力。這大幅降低了在不同部署之間擴大攻擊的門檻。
這改變了發現與利用的經濟學。隨著 AI 減少開發與調整複雜利用指令碼所需的努力,以前不切實際的漏洞現在成為可行的攻擊目標。
我們在整個研究中使用了 Wiz Atlas、Gemini 4 Argon 與 GPT-5.6 Sol。值得注意的是,Gemini 4 Argon 在發現漏洞、開發利用指令碼、偵測攻擊以及驗證補丁方面提供了不可或缺的貢獻。
利用 Gemini 4 Argon,Wiz 團隊展示了前沿 AI 為網路防禦帶來的革命性變化。十多年來,這些關鍵漏洞一直未被處理,因為漏洞發現與利用極為複雜。我們很高興看到 Gemini 4 Argon 協助防禦者彌合這一差距,發現漏洞並協助修補。
Raluca Ada Popa,Google DeepMind Gemini Security 主管
行業級合作
在公開披露前,Wiz Research 與 PHP 團隊、Calif 以及 OpenAI 合作進行發現、協調與補丁驗證。我們亦與 Google Cloud、Cloudflare、AWS、Microsoft、Automattic、Fastly、Akamai、Imperva、Vercel 以及其他多家公司合作,為無法即時更新的組織準備客戶指導、偵測與即插即用的緩解措施。
核心 PHP 的漏洞遠不止單一應用程式。PHP 執行於雲端、託管服務商、內容分發網路及數以百萬計獨立管理的伺服器上。在技術細節公開前降低風險,需要整個生態系統協調合作。
技術深度剖析
漏洞:上傳進度反序列化器使用後釋放
PHP 的 Session 模組可以在同一個預初始化視窗內,在上傳進度處理期間解碼會話資料。解碼器將請求所有的簿記資訊存於 BG(unserialize)。嚴重的分配失敗會中斷此流程,破壞請求堆疊並留下反序列化器的全域狀態被公佈。
在同一工作者處理的後續請求中,PHP 會將攻擊者回收的記憶體當作活躍的反序列化器簿記。過期的狀態成為強大的記憶體破壞原語。我們將其與記憶體洩露結合,消除位址不確定性,並在 WordPress、Drupal 與 Joomla 上實現未經身份驗證的遠端程式碼執行。
WordPress、Drupal 與 Joomla 的攻擊鏈為代表性示範。底層原語存在於 PHP 引擎層級,可影響任何執行於易受攻擊版本的 PHP 應用程式。
這些問題在應用層以下執行,因此應用程式日誌可能缺乏足夠的上下文。除非系統已修補,防禦者應特別留意異常的多部件請求,隨後出現記憶體限制錯誤或重複的 HTTP 500 回應、意外的大或格式錯誤的 PHPSESSID 回應 cookie,以及無法解釋的 PHP 工作者輪替。這些訊號可協助調查。套用 PHP 安全更新仍是唯一完整的補救措施。
漏洞:遠端程序記憶體洩露
PHP 在請求啟動時解析 RFC1867 多部件請求,早於正常模組初始化完成。Session 上傳進度處理可在此早期階段初始化 Session 狀態,並在 PS(id) 中公佈會話 ID。記憶體不足錯誤可能在清理完成前中止請求。PHP 隨後摧毀請求堆疊,可能留下 PS(id) 指向已釋放的分配。
後續由同一工作者處理的多部件請求可在正常 Session 初始化重設該指標前進入上傳進度清理路徑。PHP 將過期的指標與長度視為活躍的 zend_string,並將回收的堆疊內容 URL 編碼到 PHPSESSID 回應 cookie。即使應用程式從未呼叫 session_start(),攻擊仍能成功,故此問題與應用程式無關。我們示範了未經身份驗證的洩露,攻擊者可取得相當於其自身大小、包含來自請求外部資料的活躍工作者記憶體區域。
漏洞:致命錯誤回溯使用後釋放
在受影響的版本中,PHP 會將最近一次致命錯誤的回溯儲存在 EG(last_fatal_error_backtrace)。一次致命的記憶體不足錯誤會在未取消定義該執行者全域值的情況下摧毀請求堆疊。工作者仍存活,且全域仍指向前一次請求的記憶體。
如果同一個工作程序在下一個請求中早期發出診斷訊息,它可以在執行器重新初始化該狀態之前存取該指標。PHP 接著會銷毀或更新懸掛的回溯,並跟隨攻擊者重新佔用的記憶體。由此產生的跨請求 use-after-free 可被發展成受控的記憶體損毀。我們利用此原始技術對 Drupal 展示了未經身份驗證的遠端程式碼執行。
錯誤:OPcache 型別混淆
OPcache 將編譯好的 PHP 結構儲存在共享記憶體中,並為每個工作程序的執行時指標對映指派索引。工作程序透過共享前沿協調這些索引。在 zend_accel_script_persist() 期間,PHP 會推進程序本地的 CG(map_ptr_last) 前沿。它只在持久化完成後發布相應的共享前沿。在這兩個事件之間若發生分配失敗,程序本地的推進將保持不變,並且部分已持久化的物件會參照共享狀態仍視為可用的槽位。
當另一個工作程序稍後將其中一個槽位重新用於不同的執行時物件時,過時的共享元資料會解析為錯誤型別的指標。這種不匹配會產生跨工作程序的型別混淆並破壞共享的 OPcache 狀態。我們利用此原始技術為 WordPress 建立了未經身份驗證的 RCE 鏈。
這四個錯誤之外還存在其他變體。雖然我們最初將這四個問題報告給 PHP,但透過本次研究,我們發現漏洞深植於 PHP 程式碼庫,需進行全面修復。其他變體也應歸入相同的兩個 CVE。
結論
影響到 70% 的網際網路,PHP2Shell 的衝擊不容低估。它標誌著 AI 的分水嶺。這段易受攻擊的程式碼已存在十年以上——AI 之所以改變,正是因為能理解這些弱點並將其轉化為可執行的攻擊。憑藉前沿 AI 模型與合適工具,單一研究員在一週內完成了過去需要世界級團隊數月才能完成的工作。
這改變了發現與利用的經濟學。曾經看似難以利用的漏洞如今成為可行目標。相同的能力也為防禦者提供機會,發現並修復多年審查仍存的缺陷。
Wiz 在整個研究中使用了 Wiz Atlas、Gemini 4 Argon 和 GPT-5.6 Sol,其中 Argon 對於發現並協助修復漏洞做出了特別重要的貢獻。
機會在於將此工作常規化:系統化發現現有軟體中的缺陷,並在它們進入生產環境前捕捉新缺陷。我們與 PHP、OpenAI 以及 Calif 的協調努力推進了這一目標,將 AI 應用於加強我們共同分享的軟體基礎。
負責任披露時間表
2026 年 8 月 19 日: Wiz Research 使用 Wiz Atlas、Gemini 4 Argon 和 GPT-5.6 Sol 發現第一個 PHP 漏洞。
2026 年 8 月 20 日: 未經身份驗證的 RCE 在 Drupal 上得到確認。
2026 年 8 月 21 日: 未經身份驗證的 RCE 在 WordPress 上得到確認。
2026 年 8 月 24 日: Wiz Research 將漏洞報告給 PHP 安全團隊。
2026 年 9 月 21 日: PHP 確認報告並開始開發協調修復。
2026 年 10 月 21 日: 已修補的 PHP 版本可供下載。
2026 年 10 月 21 日: 公開披露。
保持聯絡
嗨!我們是 Sagi Tzadik、Shir Tamari、Nir Ohfeld 以及 Tomer Schwartz,來自 Wiz Research Team (@wiz_io)。我們是一群資深白帽駭客,目標只有一個:讓雲端對每個人都更安全。我們專注於發現雲端軟體中的新攻擊向量,並揭露組織依賴系統中的隔離問題。若您想聯絡我們,歡迎在 X 或 research@wiz.io 聯絡。