AI 自动挖漏洞到底靠不靠谱?北京时间 10 月 21 日晚 10 点,PHP 官方紧急发布四个安全更新版本,修复两个允许未经认证的远程代码执行的严重漏洞,官方 CVSS v4.0 评分 9.2,安全圈把它们统称为 PHP2Shell。 安全公司 watchTowr 甚至直接给危险程度打了满分。 这一次,最先找到它们的不是人类团队,而是 AI。机器之心极客公园
所以第一个问题已经有答案:AI 能找到真漏洞,而且用人力和成本远低于过去任何一支团队。但“靠谱”二字还需要拆开——哪些环节是 AI 干的,哪些仍然是人干的,以及这场事故为什么会让各国政府主动关掉网站。程序员圈子里更关心的是第二层:这个藏在 PHP 引擎里超过十年的漏洞,改写了这门老语言的安全规则。
漏洞不是新的,AI 是第一个“愿意干脏活”的
PHP2Shell 最反常的地方在于,它根本不是新发现。首个发现它的安全公司 Calif 在技术文章里把源头追溯到 2004 年——研究员 Stefan Esser 当年就发现过 PHP 在内存耗尽时的同类问题;2020 年有人提交过相关的 bug 报告,几乎没人理会;2024 年,一次第三方资助的 PHP 安全审计又碰到了相关问题,但因为没能证明它真的可以被利用,最后没有修。 随后的修复方案在内部陷入了僵局,PHP 基金会在事后复盘中坦承,决策流程多次停滞和重启,这是一次“结构性失败”,根源在于决策机制和资源不足。极客公园机器之心
原因不是没人想到,而是不值得做。独立作者 Nick Rogers 给这种状态起了个名字:security by exhaustion,靠攻击者累到放弃来保证安全。 把这类内存缺陷串成可用的攻击链,需要数周枯燥的手工调试,全世界愿意付这个成本的人屈指可数。极客公园
转折来自 OpenAI 今年 6 月启动的“Patch the Planet”计划:出钱、出模型,请安全公司去审计那些被全世界依赖的开源软件。Calif 是参与者之一,它把目标定在了 PHP,研究员从 8 月 1 日开始带着 AI 审计,AI 在这次审计里是“审计搭档”,负责梳理内核代码、追踪执行路径;8 月 11 日上报 PHP 之后,团队让 AI 把第一个漏洞的“模式”总结成一份可复用的技能文件,专门用来搜寻同一类缺陷,第二个漏洞就是靠这份文件找到的。极客公园
几乎同一时间,Alphabet 旗下的 Wiz 也借助多款 AI 工具独立撞上了同一组漏洞,并估计它已在无人察觉的情况下存在逾十年,其结论是:借助前沿 AI 模型和合适的工具,一名研究员在一周内完成了此前世界级团队数月才能完成的工作。华尔街见闻
机制用大白话讲:PHP 解释器用 C 写成,内存全靠手动记账。一个漏洞(CVE-2026-109618)是 PHP 往哈希表里加数据时“先把计数加一、再分配存数据”,如果恰好在两步之间耗尽内存,后续清理程序照着计数处理的就是从没正确初始化的脏数据;另一个(CVE-2026-109619)是致命错误在错误的时点发生,内部状态仍指向上一个请求的内存,属于典型的释放后使用。攻击入口藏在文件上传的请求解析层,安全研究者的拆解显示,只要用多层嵌套的表单字段让 PHP 自己急剧放大内存开销,就能用不到 8MB 的请求体,撑爆 128MB 的默认内存上限。 这也是为什么影响面不限于某类建站框架:问题出在 PHP 引擎本身,几乎所有处理网页请求的 PHP 部署方式都在射程之内。雷峰网
靠谱的部分是真的,误报也是真的
需要先把“自动”两个字打个折。这次审计里,AI 承担了代码梳理和模式匹配,但漏洞的最终验证、风险判定和官方上报由人完成;OpenAI 把它称作“防御者窗口”——前沿 AI 在攻击者之前发现了这些漏洞,为维护者和安全供应商争取到了修复和部署防护的时间窗口。 这是对 AI 能力的证明,也是对“非全自动”的证明。机器之心
另一面同样真实:日常状态下,AI 报出来的“漏洞”绝大多数只是可疑位置。一位开发者用扫描工具对 Java 项目跑出 15 条高危告警,结果挨个点进去核对了一下午才发现,扫描器找的根本不是漏洞,只是可疑的代码位置——有的攻击路径根本走不到,有的框架本身已有防护,必须结合业务权限才能判断。 AI 擅长找到“看起来像某种模式”的东西,不擅长证明“它真的能触发”。当前可靠的形态是 AI 提供线索、人做最终确认。PHP2Shell 的标志意义不是“AI 独自挖出漏洞”,而是“人带着 AI,用普通团队付得起的成本,挖到了过去只有顶尖专家才碰得到的层级”。知乎
一次泄密,把两个月的窗口压成不足一天
漏洞原本处在保密期,但 10 月 20 日,有人在 Hacker News 和地下论坛 BreachForums 上放出了消息,watchTowr 当天确认漏洞是真的,PHP 官方被迫把补丁提前一天。 混乱还没完:Calif 团队误发了一段概念验证(PoC)攻击视频。 一家做容器镜像的公司又比约定时间提前 6 个多小时,把已经打好补丁的版本发了出去,PHP 基金会直接开骂,称此举无视了多方数周的协调工作。极客公园机器之心数字生命卡兹克
而在 AI 时代,补丁本身就是漏洞说明书:懂行的人拿新旧两版代码让 AI 直接暴力对比,很快就能知道漏洞在哪,再用 AI 逆向分析漏洞、开发攻击程序。数字生命卡兹克
攻击随之赛跑。Cloudflare 方面披露,在漏洞公开披露前 10 小时,其系统已识别出数千次利用尝试,公告发布后两小时内飙升至数十万次,随后进一步增至数百万次。 据网络测绘机构 Censys 的数据,全球 260 万台运行 PHP 的主机里,约 150 万台在当时还没有打上补丁。 原本给防守方留了两个多月的窗口,被一次提前泄露压到了几个小时。华尔街见闻雷峰网极客公园
各国的处置因此升级:美国国家安全局(NSA)直接建议无法立即更新的网站关闭服务,英国 NCSC 发出类似警告、提醒警惕后门。 10 月 22 日,中国工信部网络安全威胁和漏洞信息共享平台也发布了防范这两个远程代码执行超危漏洞的紧急提示。机器之心华尔街见闻
关停潮随之而来。21 日这天,荷兰的数字身份系统、议会网站,连国家网络安全中心自己的网站都挨个下线。 日本的冲击尤为明显,《赛马娘》《碧蓝幻想》《公主连结》等多款游戏以及大量电商网站暂时停服。 攻防两侧用的是同一代模型:watchTowr 的研究员观察到,诱饵服务器上攻击尝试中使用的一部分工具,就是借助 AI 写出来的。 发现漏洞的速度已经远快于修补漏洞的速度,攻防竞速成了常态,而不是例外。数字生命卡兹克机器之心极客公园
程序员的解读:真正的大头是“拿不到补丁”的网站
从程序员视角读这次事件,第一层信息是:你网站自身的防护基本无效。这两个漏洞藏在 PHP 引擎的请求解析层,跑在 WordPress、Laravel 这些业务代码之前,安全插件、`disable_functions`、上传大小限制、应用层中间件和登录校验统统拦不住——PHP 核心开发者的原话是,唯一的缓解措施就是打补丁升级。知乎
第二层才是趋势所在。这次修复只覆盖仍在支持的 8.2 到 8.5 四个分支,受影响的版本却从 5.4 一直延伸到 8.5,覆盖了过去十多年间发布的所有主流版本。 8.1 及更早版本已停止维护,永远等不到官方补丁,而 10 月 20 日对外暴露且报出 PHP 版本的主机约 150 万台,其中约 88.4 万台报的是 8.1 或更老的版本,占 59%。 这批“漏洞公开、无补丁可打”的站点,是本次事件之后全球互联网最大的风险存量。国内的情况类似:大型平台早已迁离 PHP,普通网民日常服务基本不受影响,风险集中在常年不更新的中小企业官网、学校医院站点和老式论坛,其中不少是一键建站工具默认安装的停止维护版本。机器之心知乎
由此能看清 PHP 安全的三个新趋势。其一,互联网底层的存量老代码正式进入 AI 的无差别检索范围,“利用太难所以安全”的默契被撕掉了——PHP 驱动着全球约 70% 的网站,而把这类问题挖出来的成本已经被 AI 打了下来。其二,瓶颈从“发现”转移到“修复”:PHP 基金会在复盘末尾表示,当前的安全工作依赖一小群基金会资助的开发者和有限的志愿者支持,这对于一个驱动全球七成网站的语言来说远远不够。 OpenAI 同时给了一个判断:未来几个月,类似的发现会急剧增加。机器之心极客公园
其三,“少写会记错内存账的语言”被提上日程:OpenAI 在博文里把从源头编写安全代码、推动向内存安全语言迁移、引入形式化验证、加强沙箱隔离列为长期方向。机器之心
判断“AI 挖洞还会不会更猛”,不必等大词,看两个信号就够。第一个信号是 AI 公司的名字有没有继续成批出现在厂商安全公告里:10 月 20 日发布的 Chrome 156 一个版本修复了 353 个安全漏洞,一年前的 Chrome 141 和 142,这个数字分别是 21 和 26。 第二个信号在你自己的服务器上:`php -v` 打出来的版本,还在不在受支持的分支里。前者是行业的趋势,后者是今晚就要处理的风险。极客公园