AI 協助發現 PHP 嚴重漏洞,修補前已出現攻擊
PHP Got Hacked by AI
AI 協助研究人員發現 PHP 兩項嚴重漏洞,PHP 隨後於 2026 年 10 月 21 日提前發布修補版本。兩項漏洞評分均為 9.2/10,Cloudflare 在補丁發布前已觀察到攻擊。文章指出,AI 加快漏洞搜尋和攻擊適配,但維護資源有限及補丁部署不均,仍令修補工作面臨阻礙。
文章串連 Calif 與 Wiz 的案例,呈現 AI 加快漏洞挖掘和攻擊適配的過程,並指出漏洞修補與網站部署補丁之間仍有落差。
原刊於 Medium。
2026年10月21日星期三晚上9:55,在日本東京,首相高市早苗敦促網站管理員檢查是否有執行 PHP,並在安全修補程式推出後盡快套用。
如果無法安裝修補程式,她建議暫時停用網站的部分區域。
約一小時後,PHP 發佈了兩項嚴重漏洞的修補程式。
美國國家安全局發出更嚴厲的警告:如果無法安裝修補程式,就讓系統離線。
事件至今發展
要明白原因,就要了解整起事件,而這一切早在 AI 出現之前已開始。
2004年,安全研究員 Stefan Esser 發現 PHP 處理記憶體限制方式中的首個遠端漏洞。
2020年,有人提交 PHP 錯誤 #78876,指出長表單變數可能導致 PHP 耗盡記憶體。
當時大家認為它無害。
2024年,OSTIF 和 Quarkslab 的審計重新發現了同一個記憶體耗盡問題。
沒有人能證明它可被利用,因此一直未獲修復(Calif)。
這些漏洞的實際情況
PHP 在記憶體耗盡時會停止處理請求。
如果在建立內部資料結構的過程中途發生這種情況,PHP 會略過清理程序。
記憶體會被釋放,但指向該記憶體的指標仍然存在。
下一個由同一個工作程序處理的請求會信任已釋放的記憶體,而攻擊者已在其中填入自己的資料。
Calif 證明,在 PHP 預設的 8 MiB 上載限制下,只需一次精心構造的上載,就能耗盡其預設的 128 MiB 記憶體限制。
無需登入,也不需要網站自身的程式碼有任何漏洞。
PHP 將漏洞列為兩個 CVE:CVE-2026–109618(記憶體耗盡造成的記憶體損壞)及 CVE-2026–109619(會延續至下一個請求的過時狀態)。
兩者評分均為 10 分中的 9.2 分(php.net)。
漏洞的發現
2026年7月30日,OpenAI 邀請保安公司 Calif 參與 Patch the Planet,這是其協助開源軟件維護者的計劃。
Calif 的 Ryan Austin 選擇了 PHP。
8月1日,他與 OpenAI 的 GPT-5.6 Sol 合作,成功實現針對 WordPress 的遠端程式碼執行。
Calif 於8月11日向 PHP 報告首個漏洞,並於8月14日提交了可運作的漏洞利用程式。
8月19日,Wiz Research 使用 Gemini 4 Argon、GPT-5.6 Sol 及自家的 Wiz Atlas 工具,獨立發現同一類漏洞,並於8月24日報告其變體(Wiz)。
平靜期
在約11週期間,PHP 維護者編寫修補程式,OpenAI 則協調各方聯盟。
Linux 發行版提早收到修補程式。
Cloudflare、AWS、Google、Microsoft、Fastly、Akamai 等公司準備了防火牆規則。
OpenAI 向白宮的 Super Intelligence Force、國家網絡總監辦公室及 CISA 作簡報(OpenAI)。
消息外洩
計劃於10月22日公開披露。
10月20日,一則匿名的 Hacker News 貼文聲稱這些漏洞確實存在。
貼文被刪除,但截圖連同 Calif 私人漏洞利用工具 PHP2Shell 的圖片和短片,在 X 和 Mastodon 上流傳(Alexandre Daubois)。
PHP 將發佈時間提前至10月21日 14:00 UTC。
watchTowr 亦確認這些漏洞確實存在。
Cloudflare 於 UTC 07:43 發現首宗攻擊,當時距離任何修補程式推出還有六個多小時(Sansec)。
修補程式
PHP 8.5.12、8.4.27、8.3.36 及 8.2.35 如期推出。
美國國家安全局、FBI、CISA、英國國家網絡安全中心及 CERT-EU 均發出警報。
荷蘭的 DigiD、MijnOverheid、眾議院網站,以及荷蘭國家網絡安全中心的官方網站均離線(Patchstack 引述 NOS)。
Cloudflare 股價當日上升約 5% (Investing.com)。
找出漏洞已不再是難事
Calif 的説法最清楚。
Austin 從一個推論入手:Esser 於 2004 年發現的漏洞的「同類」仍潛藏在程式碼中。
他要求模型尋找觸發可控記憶體不足錯誤的方法,然後再尋找可在工作執行到一半時遭中斷的程式碼。
模型發現,PHP 在完成建立新表項目之前,便已將其計作有效項目。
Austin 隨後讓模型把這項發現轉化為可重複使用的搜尋模式,隨即找到更多變體 (Calif)。
Calif 表示,沒有使用特別的測試框架,也沒有使用公眾無法取得的模型。
當中的教訓是,瞭解目標仍然重要。專家提供方向,模型則提供速度。
Wiz 從漏洞利用的角度講述了相同情況。
要建立可行的攻擊,就要串連多個漏洞,並配合每個目標的記憶體配置調整。
藉助前沿模型,它只需數小時便能跨應用程式調整漏洞利用方法;Wiz 表示,單一研究員一星期完成的工作,以往需要世界級團隊花上數月 (Wiz)。
AI 尋找漏洞的速度,快於維護者修補漏洞的速度。
如果問題只在於找出漏洞,PHP2Shell 早在 2020 年或 2024 年便已修補。
但事實並非如此,PHP Foundation 已説明原因。
事件發布後,PHP Foundation 解釋説,早在 2024 年便有人推測可能存在可行的漏洞利用方式。
當時找不到具體的攻擊途徑,而影響更明確的其他問題則獲優先處理。
有能力修補漏洞的專家還有許多其他職責,因此修補工作數月間一再停滯又重啟 (ABC News)。
OpenAI 表示,這些漏洞是它已發現的數個重大漏洞之一,並預期未來幾個月這類發現會「急劇增加」。
PHP 原始碼中的修補程式,要在伺服器上執行後才能真正保護任何人。
最後一步由網站營運者負責,而 PHP2Shell 顯示這一步的落實情況參差不齊。
漏洞披露後,Cloudflare 表示,漏洞利用嘗試次數由數千次躍升至數百萬次 (Yahoo Finance)。
10 月 20 日,保安公司 Mallory 統計出約 884,000 台對外連接互聯網的主機,顯示使用 PHP 8.1 或更舊版本 (The Hacker News)。
PHP 不再為這些版本發布修補程式。
因此,NSA 的建議包括將無法修補的系統下線,日本首相亦建議關閉網站功能 (NSA)。
荷蘭政府網站一度停擺,顯示資源充裕的機構也採取了這種做法。
下一個 PHP2Shell
一國首相要求全國一夜之間為程式語言打上修補程式,聽起來像是一次性的事件,但可能並非如此。
OpenAI 預期此類發現會陸續出現,而攻擊者已能以數千美元發動 AI 攻擊活動。
來源:DEV Community · dev.to