AI 發現 PHP2Shell 漏洞,多國政府及重要網站預防性下線
AI 到处挖漏洞一整年,终于给人类爆了个大的
AI 審計發現 PHP2Shell 的兩個漏洞後,多國政府及重要網站在修補程式發布前預防性下線;漏洞讓攻擊者無需登入便有機會遠端控制伺服器。PHP 官方評定兩個漏洞的嚴重程度為 9.2/10;Cloudflare 指受影響版本可追溯至 PHP 5.4。Calif 把 AI 發現首個漏洞的方法整理成可重用技能文件,再用來搜尋同類缺陷並找到第二個漏洞。
PHP2Shell 個案呈現可重用漏洞搜尋技能如何降低發現與驗證成本,並結合消息提前外洩,説明防守方可用的應對時間如何縮短。

「存在感太低所以安全」的時代結束了。
作者|張勇毅
編輯|靖宇
10 月 21 日晚,如果你有在社交媒體衝浪的習慣,可能會發現一個奇怪的網站關閉潮:幾乎是在同一時間,全球多個國家和地區的各種重要基礎設施網站紛紛宣佈臨時關閉。
週三。芬蘭政府把所有對外的網絡服務關掉了;荷蘭國家網絡安全中心連自己的官網也撤了下來,鹿特丹港、荷蘭足協、五大政黨的網站和多家醫院緊隨其後;法國內政部讓各省政府網站暫時下線,德國聯邦 IT 服務商關掉了多個站點,比利時外交部、維基媒體基金會、任天堂,也相繼停掉了部分服務。
荷蘭政府宣佈 DigiD 等網站預防性下線|圖片來源:Rijksoverheid
但這些網站其實都沒有被黑,而是自己主動關掉的。
原因是 PHP 的兩個漏洞:PHP 是世界上用得最多的網站後端語言,W3Techs 的統計裏,能識別出後端語言的網站約七成跑在它上面。這兩個漏洞被合稱為 PHP2Shell,攻擊者不需要登錄,就有可能遠程控制整台服務器。
最先找到它們的,是 AI。
不過 AI 找到漏洞早就不是新聞了。但據目前的公開報道,這是第一次,一個由 AI 挖出來的漏洞,讓好幾個國家的政府在同一天關掉了自己的網站。它真正宣告結束的,是網絡安全裏一條從沒寫進教科書、卻一直在起作用的規矩:很多漏洞之所以安全,只是因為攻擊它們太累了。
PHP 官方給這兩個漏洞的嚴重程度評分都是 9.2(滿分 10),安全公司 watchTowr 直接打了滿分。
它們都出在 PHP 最底層的內存管理上,和網站自己的代碼寫得好不好無關。PHP 官方的説法是,所有處理網頁請求的 PHP 都受影響;Cloudflare 説,受影響的版本一路追溯到十多年前的 PHP 5.4。PHP 基金會的 Volker Dusch 拿它和 2014 年的「心臟出血」比,説這是十多年來最嚴重的 PHP 安全問題。
讓各國政府緊張的,是接下來混亂的 48 小時:漏洞原本處在保密期,按照行業慣例,軟件方先把補丁準備好,再和發現者一起公開。
但 10 月 20 日,有人在 Hacker News 和地下論壇 BreachForums 上放出了消息,watchTowr 當天確認漏洞是真的。當晚,PHP 官方緊急宣佈,補丁提前一天,在 21 日 14:00(UTC)發佈。
補丁出來之前,攻擊嘗試就開始了。Cloudflare 的 CTO Dane Knecht 在補丁發佈前近六小時就在 X 上説,「我們看到早期攻擊正在出現」。美國國家安全局、英國國家網絡安全中心、歐盟網絡安全機構 CERT-EU 給出的建議幾乎一致:來不及打補丁的系統,先下線。
於是就有了開頭那一幕。
三家公司聯合披露了這組漏洞|圖片來源:PHP2Shell
01
幽靈漏洞復活
PHP2Shell 最反常的地方在於,它並不新,它甚至並不是昨天剛剛發現的。
首個發現它的安全公司 Calif 在技術文章裏,把它的源頭追溯到 2004 年。在 20 年前,安全研究員 Stefan Esser 就發現過 PHP 在內存耗盡時的同類問題。2020 年,有人提交過相關的 bug 報告,幾乎沒人理會;2024 年,一次第三方資助的 PHP 安全審計又碰到了相關問題,但因為沒能證明它真的可以被利用,最後沒有修。
這個漏洞在 PHP 裏躺了十多年,不止一次被人摸到了邊,卻一直沒有人把它做成真正的攻擊。
2020 年的 bug 報告,幾乎沒人理會|圖片來源:Calif
原因不是沒人想到,而是太費勁。獨立作者 Nick Rogers 在分析文章裏説,把這類漏洞做成能用的攻擊,需要「數週枯燥的手工調試」,過去沒有人願意為它付出這個成本。他給這種狀態起了個名字:security by exhaustion,靠攻擊者累到放棄來保證安全。
互聯網底層大量的老代碼,都處在這種詭異但擰巴的狀態裏。理論上有漏洞,但真要打起來各路神仙都又覺得太費勁,所以就這麼一直放着。
改變這件事的,是今年 6 月 OpenAI 啓動的一個計劃「Patch the Planet」:出錢、出模型,請安全公司去審計那些被全世界依賴的開源軟件。Calif 是參與者之一,它把目標定在了 PHP。
8 月 1 日,Calif 的研究員 Ryan Austin 帶着 AI 開始審計。按照 Calif 公開的技術文章,AI 在這次審計裏是「審計搭檔」,也是 agent:它梳理 PHP 內核代碼、追蹤程序的執行路徑,第一個漏洞的關鍵缺陷,就是 agent 在內核代碼裏發現的。開始審計後僅僅幾天,第一個問題就浮出了水面。
8 月 11 日,Calif 把漏洞報告給了 PHP:團隊讓 AI 把第一個漏洞的「模式」總結成一份可複用的技能文件,專門用來搜尋同一類缺陷。第二個漏洞,就是靠這份技能文件找到的。
AI 找到一個漏洞之後,可以把找到它的方法打包,再去找下一個。
Calif 用漫畫還原了 AI 審計的現場|圖片來源:Calif
哦順道一提,按 OpenAI 在官方博文裏的説法,Calif 這次沒有使用類似 Daybreak 等專用 AI 網絡攻防工具,也沒有使用類似 Astra 這樣的前沿旗艦模型,而是 GPT-5.6 Sol 這樣更便宜的模型。
幾乎同一時間,另一家安全公司 Wiz 也撞上了同一組漏洞。8 月 19 日,Wiz 的研究員藉助自家工具 Wiz Atlas、Google 的 Gemini 4 Argon 和 OpenAI 的 GPT-5.6 Sol,獨立發現了第一個漏洞。第二天,他們在 Drupal 上驗證了遠程執行代碼;第三天,在 WordPress 上也驗證成功。
Wiz 在博客裏寫道,前沿模型幫團隊分析失敗原因、反覆調整,「幾小時內」就讓攻擊在多種應用上跑通。它的結論是:「一名研究員一週完成了過去需要世界頂尖團隊數月的工作。」Wiz 把這次發現裏最大的功勞給了 Gemini 4 Argon,Google DeepMind 的 Gemini 安全負責人 Raluca Ada Popa 也出來説,這展示了「為什麼前沿 AI 會改變網絡防禦的格局」。
兩家公司、三個 AI 模型,三週之內,從兩個方向撞上了同一組漏洞。OpenAI 和 Google 各自強調自家模型的貢獻,這本身就説明,用 AI 找漏洞已經成了頭部 AI 公司正面競爭的賽道。
AI 改變的,似乎並不只是「能不能發現」,更多在於「值不值得做」。當找漏洞、驗證漏洞、把攻擊適配到不同環境的成本,從「頂尖團隊幾個月」降到「一個人一週」,甚至「幾個小時」,過去那些「太累了不值得」的漏洞,就全都變成了值得。Rogers 的説法是,AI 第一次把網絡攻擊的邊際成本「推向了零」。
這也解釋了為什麼兩家公司會在三週內撞上同一組漏洞。Calif 特別説明,最初發現漏洞時,「沒有使用特殊的工具,也沒有使用普通人拿不到的模型」。防守方用公開的模型能找到它,攻擊方同樣可以。
把 PHP2Shell 放回過去兩年,能看到一條逐漸引燃導火索:2024 年 11 月,Google 宣佈它的 AI 項目 Big Sleep 在數據庫軟件 SQLite 裏找到一個此前未知的漏洞,稱這是 AI 第一次在廣泛使用的真實軟件裏發現可利用的漏洞。
今年 4 月,Anthropic 稱 Claude Mythos 預覽版在測試中找到了數千個零日漏洞,其中包括 OpenBSD 裏一個存在了 27 年的漏洞,因為能力太強,這個模型沒有公開,只提供給 40 多家維護關鍵軟件的機構。
7 月,由 AI 發現的 WordPress 核心漏洞鏈 wp2shell 公開,隨後被攻擊者大規模利用。
從「能找到」到「讓政府關站」,用了兩年|圖片來源:極客公園
從「AI 能找到漏洞」,到「AI 找到的漏洞太危險,模型不敢公開」,再到「AI 找到的漏洞讓政府網站關了門」。AI 對網絡安全的改變,第一次從安全圈內部的技術新聞,變成了整個社會都感受得到的現實。
對當下這種亂成一鍋粥的局面,OpenAI 在博文裏也挽尊了一下:幫助發現漏洞的同一種能力,「也能幫攻擊者快速開發攻擊工具」。
這已經不是假設。PHP2Shell 公開當天,watchTowr 的研究員 Jake Knott 説,他們在誘餌服務器上觀察到的攻擊嘗試,用的工具部分就是藉助 AI 寫出來的。「到目前為止還沒有人成功,但我們不認為這能持續很久。」
過去一年,攻擊者用 AI 的案例在急速升級。2025 年 11 月,Anthropic 披露,一個被它認定有國家背景的組織利用 Claude Code 對約 30 個目標發起入侵,攻擊中 80% 到 90% 的戰術操作由 AI 自主完成。
今年 5 月,Google 威脅情報團隊報告,一個攻擊者藉助 AI 開發出了可用的零日漏洞攻擊,計劃發起大規模攻擊,被 Google 提前攔了下來,這被認為是攻擊者第一次成功用 AI 造出零日攻擊。Google 威脅情報首席分析師 John Hultquist 説,AI 不僅能大規模審查代碼找漏洞,還能「做出可用的攻擊,而這曾經是一道很高的門檻」。
到了 9 月,Anthropic 的威脅情報報告裏,案例已經變成了規模化作業:一個疑似與俄羅斯情報機構有關的組織,用 AI agent 在安全軟件報警後自動重寫惡意程序,目標包括 20 多家政府部門和國防機構;一羣講中文的操作者用 AI「agent 集羣」做偵察和漏洞開發,其中一條流程在一個月裏產出了十幾個疑似零日漏洞;一名獨立的黑客行動者,靠 AI 寫出一個 WordPress 零日攻擊,在 42 個目標裏至少攻破了 14 個。
Anthropic 在報告裏的説法是,AI 把成本又轉嫁回了防守方。過去發起一次複雜攻擊需要一個團隊,現在一個人加上幾個 AI agent 就夠了。
02
防守方的時間窗口
PHP2Shell 公開當天,OpenAI 還給了一個判斷:未來幾個月,類似的發現會急劇增加。
這句話已經有數據在印證。PHP2Shell 公開的前一天,10 月 20 日,Google 發佈了 Chrome 156 正式版,這一個版本修復了 353 個安全漏洞。一年前的 Chrome 141 和 142,這個數字分別是 21 和 26。
一年時間,單版本修復數漲了十倍以上|圖片來源:極客公園
報告人的名單也變了。Chrome 156 裏最高等級的 6 個「嚴重」漏洞,有 4 個由 Anthropic 的研究員 Xinyang Ge 報告,其中一個明確標註「由 Claude 協助」;另有 1 個來自 OpenAI 的 Codex Security。AI 公司的名字,已經成批出現在全球用戶最多的瀏覽器的安全公告裏。
6 個嚴重漏洞,5 個由 AI 公司報告|圖片來源:極客公園
為什麼會急劇增加,第一個原因就是找漏洞的方法可以複製了。PHP2Shell 裏那份技能文件就是例子:過去,一個頂尖安全研究員的經驗很難複製;現在,它可以變成一個文件,交給無數個 agent 同時去跑。
事實上,如今互聯網上仍等着被挖的「存量」太大了。互聯網的底層,是幾十年積累下來的老代碼,PHP、瀏覽器、操作系統、各種開源庫。像 PHP2Shell 這樣「早就有人摸到邊、只是太難打」的漏洞,在這些代碼裏還有多少,沒人數得清。過去它們靠「太累了」被保護着,這層保護正在消失。
這也是為什麼各家前沿 AI 研究機構都在加碼。Anthropic 把 Mythos 提供給 40 多家關鍵軟件機構,OpenAI 為 Patch the Planet 拿出 10 億美元等值的使用額度,Google 有 Big Sleep,Wiz 這次也押上了 Gemini。頭部 AI 公司都把「用 AI 找漏洞」當成了展示模型能力的主戰場。但別忘了,攻擊者手裏的 AI,和防守方用的往往也是同一代模型。
OpenAI 把發現漏洞到攻擊者開始利用之間的這段時間,叫做「防守方窗口」。PHP2Shell 的窗口原本有兩個多月,一次提前泄露,就把它壓縮到了幾個小時。
AI 讓找到漏洞變得前所未有地容易,修補卻還得一台服務器一台服務器地做。PHP 只為 8.2 到 8.5 四個版本發佈了正式修復,安全公司 Mallory 統計,補丁發佈前一天,互聯網上約有 88 萬台服務器還在對外顯示 PHP 8.1 或更老的版本。對它們來説,「理論上有漏洞,實際上沒人會打」的那份安全感,已經沒有了。
政府網站因為一個 AI 挖出的漏洞集體關門,這次應該是第一次,但看起來,很難是最後一次。
來源:新浪科技 · finance.sina.com.cn