10 月 21 日晚,芬兰政府关闭了所有对外的网络服务,荷兰国家网络安全中心撤下自己的官网,鹿特丹港、荷兰足协、五大政党网站和多家医院随后跟进;法国内政部让各省政府网站暂时下线,德国联邦 IT 服务商关停了多个站点,比利时外交部、维基媒体基金会和任天堂也停掉了部分服务。这些网站并没有被入侵,是运营方主动关闭的。

AI 找到的 PHP 漏洞,让多国政府在同一天关闭网站

起因是 PHP 的两个漏洞,被合称为 PHP2Shell。PHP 是使用最广的网站后端语言,按 W3Techs 的统计,能识别出后端语言的网站约七成跑在它上面。这两个漏洞出在 PHP 最底层的内存管理,与网站自身代码写得好不好无关,攻击者无需登录就可能远程控制整台服务器。PHP 官方给两个漏洞的严重程度评分均为 9.2(满分 10),安全公司 watchTowr 直接打了满分。官方称所有处理网页请求的 PHP 都受影响,Cloudflare 表示受影响版本可追溯到十多年前的 PHP 5.4,PHP 基金会的 Volker Dusch 把它与 2014 年的“心脏出血”相提并论。

最先找到漏洞的是 AI。据目前的公开报道,这是第一次由 AI 挖出的漏洞让数个国家的政府在同一天关掉自己的网站。漏洞原本处于保密期,按惯例应先备好补丁再公开,但 10 月 20 日有人在 Hacker News 和 BreachForums 上放出消息,watchTowr 当天确认属实,PHP 官方当晚紧急宣布补丁提前一天,于 21 日 14:00(UTC)发布。Cloudflare 的 CTO Dane Knecht 在补丁发布前近六小时表示已看到早期攻击出现。美国国家安全局、英国国家网络安全中心与欧盟网络安全机构 CERT-EU 的建议基本一致:来不及打补丁的系统,先下线。

这个漏洞并不新。安全公司 Calif 把它的源头追溯到 2004 年,安全研究员 Stefan Esser 当年就发现过 PHP 内存耗尽时的同类问题;2020 年有人提交相关 bug 报告,几乎无人理会;2024 年一次第三方资助的 PHP 安全审计又碰到相关问题,因未能证明其可被利用而没有修复。独立作者 Nick Rogers 分析说,把这类漏洞做成可用的攻击需要数周枯燥的手工调试,他把这种状态称为 security by exhaustion。今年 6 月,OpenAI 启动“Patch the Planet”计划,出钱、出模型,请安全公司审计被全世界依赖的开源软件,Calif 是参与者之一,将目标定在 PHP;8 月 1 日,Calif 研究员 Ryan Austin 带着 AI 开始了审计。