PHP2Shell vulnerabilities found by AI take down government websites in multiple countries
English text is being prepared.
Two vulnerabilities discovered by AI in the PHP core are collectively called PHP2Shell, both with an official severity score of 9.2; attackers may be able to remotely take control of servers without logging in, and institutions in Finland, the Netherlands, France, Germany and other countries took websites offline preventively around the patch release. The vulnerabilities were found by Calif using models provided through OpenAI's Patch the Planet program, while Wiz independently reproduced them at the same time using Gemini 4 Argon and GPT-5.6 Sol; within three weeks the two companies hit the same set of vulnerabilities from two directions. The article notes that AI has cut the cost of finding and verifying vulnerabilities from months for a top-tier team to one person for one week, and old-code vulnerabilities that were previously set aside because attacking them was too costly are now being exposed again.
Why read this
AI score 83
The article places the PHP2Shell incident on a two-year timeline, showing how AI vulnerability discovery has evolved from a tech-news story into real-world pressure at the level of governments shutting down websites.
Topics
Body
10 月 21 日晚,如果你有在社交媒体冲浪的习惯,可能会发现一个奇怪的网站关闭潮:几乎是在同一时间,全球多个国家和地区的各种重要基础设施网站纷纷宣布临时关闭。
周三。芬兰政府把所有对外的网络服务关掉了;荷兰国家网络安全中心连自己的官网也撤了下来,鹿特丹港、荷兰足协、五大政党的网站和多家医院紧随其后;法国内政部让各省政府网站暂时下线,德国联邦 IT 服务商关掉了多个站点,比利时外交部、维基媒体基金会、任天堂,也相继停掉了部分服务。
荷兰政府宣布 DigiD 等网站预防性下线|图片来源:Rijksoverheid
但这些网站其实都没有被黑,而是自己主动关掉的。
原因是 PHP 的两个漏洞:PHP 是世界上用得最多的网站后端语言,W3Techs 的统计里,能识别出后端语言的网站约七成跑在它上面。这两个漏洞被合称为 PHP2Shell,攻击者不需要登录,就有可能远程控制整台服务器。
不过 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
幽灵漏洞复活
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 把第一个漏洞的「模式」总结成一份可复用的技能文件,专门用来搜寻同一类缺陷。第二个漏洞,就是靠这份技能文件找到的。
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 就够了。
防守方的时间窗口
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 或更老的版本。对它们来说,「理论上有漏洞,实际上没人会打」的那份安全感,已经没有了。
*头图来源:Wiz
本文来自微信公众号 “极客公园”(ID:geekpark),作者:张勇毅,36氪经授权发布。