跳到正文
Hacker News 熱門(buzzing.cc 中文翻譯)·· 2 小時前精選AI 評分91

PHP2Shell:Wiz Research 藉助前沿 AI 發現 PHP 核心遠端程式碼執行漏洞

PHP2Shell:人工智能发现PHP中存在关键的远程代码执行漏洞

AI 導讀

Wiz Research 藉助前沿 AI 發現 PHP 核心多項記憶體安全漏洞,PHP 於 2026 年 10 月 21 日發佈修補版本。漏洞可讓未經驗證的攻擊者在受影響伺服器執行程式碼,或讀取 PHP 工作程序記憶體;研究團隊在 WordPress、Drupal 和 Joomla 示範了遠端程式碼執行。

推薦理由

這項研究連結 PHP 核心記憶體漏洞與跨應用程式利用,呈現前沿 AI 如何降低複雜漏洞轉化為可用攻擊所需的門檻。

正文 · 繁體中文

執行摘要

  • Wiz Research 發現 PHP 核心中存在多項嚴重漏洞。PHP 是一種廣受歡迎的通用指令碼語言,為全球 70% 的網站提供支援。成功利用這些漏洞,攻擊者可能控制受影響的伺服器、竊取敏感資料,以及篡改在其上運行的網站。 

  • PHP 是網絡的重要支柱:這種程式語言為 WordPress、Joomla、Drupal、Wikipedia 的 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 及運行 Wikipedia 的軟件 MediaWiki 提供支援。即使網站本身的應用程式碼安全,其 PHP 核心引擎中的漏洞仍可影響整個生態系統中的網站。

有些漏洞會成為轉捩點,因為它們挑戰了安全方面的基本假設。2014 年,Heartbleed 揭示了保障互聯網安全的共用基礎設施有多脆弱。2021 年,Log4Shell 揭示了深度嵌入軟件中的相依項目如何造成大範圍的安全風險,而機構難以識別這些風險。我們認為,PHP2Shell 可能成為 AI 時代的類似轉捩點,展示 AI 如何改變長期存在漏洞在實際環境中的可利用性。開發這個漏洞利用程式,需要串連多個漏洞,並透過反覆測試和除錯,配合每個目標的記憶體配置。前沿模型對令這個過程切實可行至關重要,讓我們能在數小時內為多個應用程式開發和調整可行的漏洞利用程式。隨着這項工作所需的時間和專業知識減少,複雜性或許不再構成有意義的障礙,並改變我們對實際上哪些項目屬於易受攻擊的定義。

Wiz Research 感謝 PHP 團隊、Calif 和 OpenAI 在漏洞發現、協調及修補程式驗證方面所做的工作。OpenAI 和 Calif 亦發表了網誌文章,詳述漏洞的歷史、技術細節,以及對披露流程的見解。PHP 亦有發佈文章。

我們亦衷心感謝 Automattic、Akamai、AWS、Cloudflare、Fastly、Google、Imperva、Microsoft、Vercel 等協助準備指引和開箱即用的緩解措施,讓無法立即套用修補程式的客戶有所依循。

漏洞

所有已披露的漏洞都是記憶體安全問題,源於 PHP 在處理請求時處理致命錯誤的程式錯誤,尤其是記憶體不足錯誤。這些程式錯誤可能會在請求意外結束後留下已損壞的 PHP 內部狀態。之後的請求或工作程序可能會重用這些過時狀態,導致記憶體資訊披露或損壞。

下表列出我們向 PHP 回報的各項程式錯誤所展示的影響類型。下列應用程式是我們為展示 RCE 而選取的目標。它們具代表性——漏洞利用並不需要使用這些 CMS,因為有問題的程式碼位於 PHP 本身。

追蹤 ID漏洞攻擊者可達成的效果我們展示的效果
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。利用漏洞並不取決於應用程式程式碼是否有缺陷:即使是在受影響 PHP 版本上運行的簡單「Hello World」應用程式,也可能存在漏洞。

另外,我們展示了攻擊者即使無須達成遠端程式碼執行,也能讀取 PHP 程序記憶體中的敏感資料,包括密碼、權杖及 API 金鑰。

使用 Wordpress、Joomla 及 Drupal 的 PHP2Shell 示範: 

AI 帶來的轉捩點

有漏洞的程式碼已存在超過十年。要把這些缺陷轉化為可運作的漏洞利用程式,需要串連利用多個漏洞,並考慮 PHP 如何在不同請求之間配置及重用記憶體。記憶體錯誤一向極為複雜;PHP 版本、設定及應用程式行為的差異,可能令漏洞利用程式所依賴的假設失效。針對某個部署有效的攻擊,可能需要大幅調整才能在另一個部署奏效,而每次調整都需要進一步分析、測試及除錯。在 AI 出現之前,這些人工工作難以實作,更難以擴大規模。 

有了 AI,這已不再是障礙。大型語言模型(LLM)可協助針對不同 PHP 版本、設定及記憶體配置調整漏洞利用程式。配合測試及除錯工具,模型可以分析失敗原因並反覆調整,減少每個目標所需的專業技術投入。這大幅降低了在不同部署環境中擴大攻擊規模的門檻。

這改變了發現及利用漏洞的成本結構。AI 降低開發及調整複雜漏洞利用程式所需的工作量後,過去看似難以實際利用的漏洞,便成為可行的攻擊目標。 

在整項研究中,我們使用了 Wiz Atlas、Gemini 4 Argon 及 GPT-5.6 Sol。值得注意的是,Gemini 4 Argon 對發現漏洞、開發漏洞利用程式、偵測攻擊及驗證修補程式作出了不可或缺的貢獻。

透過 Gemini 4 Argon,Wiz 團隊展示了前沿 AI 對網絡防禦的突破性影響。十多年來,這些重大漏洞一直未獲處理,因為發現及利用漏洞的過程極為複雜。我們很高興看到 Gemini 4 Argon 協助防禦者填補這個缺口,找出漏洞並協助修補。

Google DeepMind Gemini 安全主管 Raluca Ada Popa

業界合作

在公開披露前,Wiz Research 與 PHP 團隊、Calif 及 OpenAI 合作,進行漏洞發現、協調及修補程式驗證。我們亦與 Google Cloud、Cloudflare、AWS、Microsoft、Automattic、Fastly、Akamai、Imperva、Vercel 及其他多方合作,為無法立即更新的機構準備客戶指引、偵測機制及開箱即用的緩解措施。

核心 PHP 中的漏洞,影響遠超單一應用程式。PHP 廣泛運行於雲端平台、託管服務供應商、內容傳遞網絡,以及數以百萬計各自獨立管理的伺服器。要在技術細節公開前降低受漏洞影響的風險,需要整個生態系統協調合作。

技術深入剖析

漏洞:上載進度反序列化器釋放後使用

PHP 的 Session 模組可在處理上傳進度時,於同一個初始化前階段解碼工作階段資料。解碼器會將請求所屬的管理資料儲存在 BG(unserialize)。致命的記憶體配置失敗可中斷此流程、銷毀請求堆積,並令 unserializer 的全域狀態仍處於已發佈狀態。

在同一個 worker 處理的後續請求中,PHP 可將攻擊者重新取得的記憶體當作仍在使用的 unserializer 管理資料。這個過時狀態會成為強大的記憶體破壞原語。我們將其與記憶體資訊洩露結合,排除位址的不確定性,並在 WordPress、Drupal 和 Joomla 上實現了無需驗證的遠端程式碼執行。

WordPress、Drupal 和 Joomla 上的攻擊鏈只是具代表性的示範。底層原語存在於 PHP 引擎層面,任何執行受影響版本的 PHP 應用程式都可能受到影響。

這些問題在應用程式層以下執行,因此應用程式日誌可能只留下很少線索。在系統完成修補前,防禦人員應特別留意不尋常的 multipart 請求後出現記憶體限制錯誤或重複的 HTTP 500 回應、異常龐大或格式錯誤的 PHPSESSID 回應 Cookie,以及無法解釋的 PHP worker 頻繁更替。這些跡象有助調查。安裝 PHP 安全性更新仍是唯一完整的修復方法。

漏洞:遠端程序記憶體資料洩露

PHP 會在請求啟動期間解析 RFC1867 multipart 請求,當時正常的模組初始化尚未完成。Session 的上傳進度處理可在這個早期階段初始化 Session 狀態,並在 PS(id) 中發佈工作階段 ID。記憶體耗盡錯誤可在清理完成前中止請求。PHP 隨後會銷毀請求堆積,並可能令 PS(id) 指向已釋放的配置區塊。

同一個 worker 處理的後續 multipart 請求,可在正常的 Session 初始化重設該指標前進入上傳進度清理流程。PHP 信任這個過時的指標和長度,將它們視為有效的 zend_string,並把回收後的堆積內容以 URL 編碼形式寫入 PHPSESSID 回應 Cookie。即使應用程式從未呼叫 session_start(),攻擊仍然有效,因此不受應用程式影響。我們示範了無需驗證即可洩露攻擊者指定大小的區域,當中包含來自攻擊者請求以外、仍在運作中的 worker 記憶體資料。

漏洞:致命錯誤回溯資訊 use-after-free

在受影響版本中,PHP 會將最近一次致命錯誤的回溯資訊保留在 EG(last_fatal_error_backtrace)。致命的記憶體耗盡錯誤可銷毀請求堆積,卻未清除該執行器全域值。worker 會繼續運作,而該全域值仍指向上一個請求所用的記憶體。

如果同一個 worker 在下一個請求早期輸出診斷訊息,就可能在執行器重新初始化該狀態前存取這個指標。之後 PHP 會銷毀或更新這份懸空的回溯資訊,並跟隨攻擊者重新取得的記憶體。這種跨請求 use-after-free 可進一步發展成受控的記憶體破壞。我們示範了利用此原語,對 Drupal 實現無需驗證的遠端程式碼執行。

漏洞:OPcache 類型混淆

OPcache 會將已編譯的 PHP 結構持久化至共享記憶體,並為每個 worker 的執行階段指標映射表指派索引。各 worker 透過共享分配邊界協調這些索引。在zend_accel_script_persist()期間,PHP 會推進程序本機的 CG(map_ptr_last)分配邊界。只有在持久化完成後,才會更新相應的共享分配邊界。若在這兩個事件之間發生記憶體配置失敗,程序本機的邊界仍會向前推進,而部分持久化的物件會指向共享狀態仍視為可用的槽位。

之後,另一個 worker 若將其中一個槽位重用於不同的執行階段物件,過時的共享中繼資料便會解析出類型錯誤的指標。這種不一致會造成跨 worker 的類型混淆,並破壞共享 OPcache 狀態。我們利用這項原語,構建了一條針對 WordPress 的未經驗證遠端程式碼執行(RCE)攻擊鏈。

除這四個漏洞外,還有其他變體。我們最初向 PHP 報告這四個漏洞,但透過這項研究,我們發現漏洞根源深植於 PHP 程式碼庫,需要全面修正。其他變體也應一併納入相同的兩個 CVE。

Wiz 可以如何提供協助?

Wiz 客戶可參閲 Wiz Threat Intel Center 的 PHP2Shell 公告,瞭解當中內置的無代理程式及執行階段漏洞偵測功能、透過 Wiz Defend 和 Sensor 偵測漏洞利用的功能、自動回應政策,以及修復和威脅狩獵指引。

使用最新版本 (1.0.12768) 的 Sensor 客戶亦可啟用內置回應政策,自動終止出現 PHP2Shell 漏洞利用典型行為的程序:

結論

互聯網有 70% 受影響,PHP2Shell 的影響不容低估。它標誌着 AI 發展的重要轉捩點。易受攻擊的程式碼已存在十多年;AI 帶來的改變,是讓人能夠理解其中的弱點,並將其轉化為可行的漏洞利用程式。有了前沿 AI 模型和合適的工具,單一研究人員一星期內便完成了以往世界級團隊需要數月才能完成的工作。

這改變了漏洞發現和利用的成本效益。過去看似難以實際利用的漏洞,如今也成為可行的攻擊目標。同樣的能力亦讓防守者有機會找出並修復多年來經過審視仍未被發現的缺陷。

在這項研究期間,Wiz 使用了 Wiz Atlas、Gemini 4 Argon 和 GPT-5.6 Sol;Argon 對發現及協助修復漏洞作出了尤其重要的貢獻。 

我們的目標是讓這類工作成為常規:有系統地找出現有軟件中的缺陷,並在新缺陷進入正式環境前發現它們。我們與 PHP、OpenAI 及 Calif 協調合作,推進這個目標,運用 AI 加強所有人共同依賴的軟件基礎。

負責任披露時間表

  • August 19, 2026: Wiz Research 使用 Wiz Atlas、Gemini 4 Argon 和 GPT-5.6 Sol 發現首個 PHP 漏洞。

  • August 20, 2026: 確認可透過未經驗證的方式對 Drupal 遠端執行程式碼。

  • August 21, 2026: 確認可透過未經驗證的方式對 WordPress 遠端執行程式碼。

  • August 24, 2026: Wiz Research 向 PHP 安全團隊報告這些漏洞。

  • September 21, 2026: PHP 確認收到報告,並開始制定協調修正方案。

  • October 21, 2026: 已修補的 PHP 版本正式推出。

  • October 21, 2026: 公開披露。

保持聯絡

大家好!我們是 Wiz Research Team 的 Sagi Tzadik、Shir Tamari、Nir Ohfeld 和 Tomer Schwartz(@wiz_io)。我們是一羣資深白帽黑客,只有一個目標:讓雲端對所有人來説都更安全。我們專注於尋找雲端軟件中的新攻擊途徑,並揭示各機構所依賴系統中的隔離問題。歡迎透過 X 或 research@wiz.io 聯絡我們。

來源:Hacker News 熱門(buzzing.cc 中文翻譯) · wiz.io